Files
dashboard/.qoder/repowiki/knowledge/zh/双前端风格体系:Element Plus 玻璃拟态 + Soybean Admin UnoCSS/双前端风格体系:Element Plus 玻璃拟态 + Soybean Admin UnoCSS.md
T
2026-07-17 17:17:22 +08:00

3.0 KiB
Raw Blame History

kind, name, category, scope, source_files
kind name category scope source_files
frontend_style 双前端风格体系:Element Plus 玻璃拟态 + Soybean Admin UnoCSS frontend_style
**
frontend/src/styles/lux-theme.css
frontend_v2/uno.config.ts
frontend_v2/src/theme/settings.ts
frontend_v2/src/theme/vars.ts
frontend_v2/src/theme/preset/dark.json
frontend_v2/packages/uno-preset/src/index.ts
frontend_v2/src/styles/css/global.css
frontend_v2/src/layouts/base-layout/index.vue

仓库包含两套独立的前端工程,分别采用不同的视觉与样式体系:

1. frontend(旧版)— Element Plus 自定义 CSS 主题

  • 组件库:Element PlusVue3),通过全局 CSS 覆盖默认样式。
  • 样式入口:src/styles/lux-theme.css,定义完整的 Luxsin CMS Design System——Glassmorphism + Dimensional Layering + Dark Mode OLED。
  • 设计令牌:以 :root CSS 变量集中管理,包括字体族、页面背景/渐变、文本层级、品牌色(cyan/indigo/violet/coral)、玻璃表面(card/table/input/dialog/sidebar/header/tab/dropdown)、模糊等级、阴影、圆角等。
  • 架构约定:所有覆盖均限定在 .lux-shell 作用域内;侧栏、顶栏、卡片、表格、对话框、下拉、消息框等全部实现玻璃拟态效果(backdrop-filter + 半透明背景 + 高光边框)。
  • 布局结构:.lux-shell → .sidebar-glass + .lux-header + .lux-main + .lux-footer,侧栏支持折叠动画。

2. frontend_v2(新版)— Soybean Admin 多包工程

  • 技术栈:Vite8 + Vue3 + TypeScript + NaiveUI + UnoCSS + pnpm workspace。
  • 原子化样式:uno.config.ts 引入 presetWind3({ dark: 'class' }) 与自定义 @sa/uno-preset(提供 flex/absolute/fixed 快捷类),并通过 transformerDirectives() 和 transformerVariantGroup() 启用指令与变体分组。
  • 主题系统:
    • src/theme/settings.ts 定义默认主题设置(主色、圆角、布局模式、header/tab/sider/footer 尺寸等)。
    • src/theme/vars.ts 生成颜色调色板 CSS 变量(primary/info/success/warning/error × 50~950 阶)。
    • src/theme/preset/*.json 提供预设主题(default/compact/dark/azir),运行时可切换。
    • 主题状态由 Pinia storestore/modules/theme)驱动,配合 theme-drawer 面板实时调整。
  • 全局样式:src/styles/css/global.css 仅导入 reset/nprogress/transition 与基础 html/body 样式,具体 UI 样式由 UnoCSS 原子类与 NaiveUI 主题变量组合完成。
  • 布局框架:基于 @sa/materials 的 AdminLayout,支持 vertical/horizontal/vertical-mix/top-hybrid 等多种布局模式,宽度/高度均由 themeStore 配置驱动。

开发者规范

  • 旧版(frontend)新增样式应追加到 lux-theme.css,并限定在 .lux-shell 作用域内,使用 --lux-* 变量而非硬编码色值。
  • 新版(frontend_v2)优先使用 UnoCSS 原子类与 NaiveUI 主题变量;如需扩展快捷类,在 packages/uno-preset/src/index.ts 中注册;主题相关修改集中在 src/theme/ 目录。