3.4 KiB
3.4 KiB
1. 核心系统与工具
- UI 框架: Vue 3 + Element Plus。
- 样式方案: 原生 CSS + CSS Variables (CSS Custom Properties)。
- 构建工具: Vite。
- 主题策略: 基于 Element Plus 的 Dark Mode 基础,通过全局自定义 CSS (
lux-theme.css) 进行深度覆盖和扩展,实现名为 "Lux" 的深色玻璃拟态(Glassmorphism)风格。
2. 关键文件与结构
frontend/src/styles/lux-theme.css: 核心主题文件。定义了全站的设计令牌(Design Tokens)、背景动效、组件覆盖样式。frontend/src/layout/index.vue: 布局容器。应用.lux-shell类名,承载侧边栏、顶栏和主内容区,并包含背景光球(Orbs)的 DOM 结构。frontend/src/main.js: 入口文件。按顺序引入 Element Plus 基础样式、Dark Mode 变量以及自定义的lux-theme.css。frontend/src/App.vue: 根组件。设置全局字体栈(Inter, PingFang SC, Microsoft YaHei)及抗锯齿渲染。
3. 架构与设计规范
3.1 设计令牌 (Design Tokens)
在 :root 中定义了一套语义化的 CSS 变量,用于保持视觉一致性:
- 背景色:
--lux-page-bg: #0a0e14(深空黑),--lux-card-bg: #1e293b(深蓝灰)。 - 主色调:
--lux-cyan: #38bdf8(青色),--lux-indigo: #6366f1(靛蓝),--lux-violet: #7c3aed(紫罗兰)。 - 文本色:
--lux-text-strong: #e2e8f0(高亮文本),--lux-text-muted: #94a3b8(次要文本)。 - 玻璃效果:
--lux-glass-sidebar: rgba(15, 23, 42, 0.6),配合backdrop-filter: blur(18px)实现毛玻璃质感。
3.2 视觉风格:深色宇宙与玻璃拟态
- 背景动效: 使用
.lux-shell-bg容器包裹三个绝对定位的.lux-orb(光球),通过高斯模糊 (blur(80px)) 和低透明度营造深邃的宇宙氛围。 - 卡片与容器: 所有
.el-card被强制设置为深色背景、圆角 (16px) 和微弱的边框光晕,以在深色背景上凸显层级。 - 交互反馈: 按钮和菜单项在 Hover 状态下使用半透明的白色或青色渐变背景,激活状态则带有内阴影 (
box-shadow inset) 以增强立体感。
3.3 布局约定
- Shell 模式: 整个应用包裹在
.lux-shell中,采用min-height: 100vh和overflow: hidden确保全屏沉浸式体验。 - 侧边栏: 采用玻璃拟态设计,支持折叠(64px)与展开(220px)动画过渡。折叠时显示图标导航栏(Rail),展开时显示完整菜单。
- 顶栏: 悬浮的玻璃态条状区域,包含面包屑和用户操作下拉菜单。
4. 开发者指南
- 类名约束: 所有自定义样式应尽量限制在
.lux-shell作用域下,避免污染全局或影响第三方组件的默认行为。 - 组件覆盖: 修改 Element Plus 组件样式时,优先使用 CSS 变量覆盖。若需强制覆盖,请使用
.lux-shell .el-component的选择器优先级策略,并尽量保持!important的最小化使用(目前主题文件中存在部分!important以对抗组件库默认样式)。 - 颜色使用: 严禁硬编码颜色值。新增样式时应引用
lux-theme.css中定义的--lux-*变量,以确保主题的统一性和后续的可维护性。 - 响应式: 目前布局主要面向桌面端管理后台,侧边栏采用固定宽度逻辑。若需适配移动端,需在
.lux-shell媒体查询中增加侧边栏抽屉式交互的支持。