Files
vscode-workbench/.trae/documents/navbar-theme-variables.md
T

59 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Navbar 主题样式优化计划
## 目标
将 Navbar 组件中的硬编码颜色统一替换为 CSS 变量,确保主题切换时样式完全一致且易于维护。
## 当前问题
1. 亮色模式使用硬编码颜色(如 `white`、`#555`、`#667eea`)
2. 暗色模式有大量硬编码覆盖(如 `#1e293b`、`rgb(139, 92, 246)`)
3. 颜色值分散在多处,修改困难
## 修改方案
### 1. 亮色模式 → CSS 变量映射
| 硬编码值 | CSS 变量 | 用途 |
|---------|----------|------|
| `white` | `var(--card-background)` | 容器背景 |
| `#555` | `var(--text-secondary)` | 菜单项文字 |
| `#667eea` | `var(--primary-color)` | 主色调 |
| `rgb(139, 92, 246)` | `var(--primary-color)` | 主色调(统一) |
| `#333` | `var(--text-primary)` | 用户名文字 |
| `#1a1a1a` | `var(--text-primary)` | 标题文字 |
| `#8c8c8c` | `var(--text-muted)` | 次要文字 |
| `#666` | `var(--text-secondary)` | 副标题文字 |
| `#4a4a4a` | `var(--text-primary)` | 功能特性文字 |
| `#eee` | `var(--border-color)` | 分隔线 |
| `#e8e8e8` | `var(--border-color)` | 分隔线 |
| `#e5e7eb` | `var(--border-color)` | 进度条背景 |
| `#999` | `var(--text-muted)` | 搜索框前缀 |
| `#ccc` | `var(--text-muted)` | 浅灰色文字 |
| `#374151` | `var(--text-primary)` | 等级标题 |
| `#9ca3af` | `var(--text-muted)` | 等级经验值 |
### 2. 暗色模式简化
由于 CSS 变量已在 `[data-theme="dark"]` 中定义,以下规则可以**完全移除**:
- `.navbar-container` 背景 → 由 `var(--card-background)` 处理
- `.ant-menu-item` 颜色 → 由 `var(--primary-color)` 处理
- `.username-text` 颜色 → 由 `var(--primary-color)` 处理
- 所有 `rgb(139, 92, 246)` → 替换为 `var(--primary-color)`
- 所有 `#1e293b` → 替换为 `var(--card-background)`
- 所有 `#334155` → 替换为 `var(--border-color)`
### 3. 需要保留的暗色模式规则
仅保留 CSS 变量无法处理的特殊情况:
- 渐变背景(需要调整暗色下的渐变)
- `rgba` 透明效果
- Ant Design 组件覆盖(需要 `!important`)
## 影响文件
- `chunyu_project_react/src/components/Navbar/Navbar.css`
## 验证步骤
1. 切换日间/夜间模式,确认导航栏颜色正确变化
2. 检查所有菜单项、下拉框、按钮样式一致
3. 确认暗色模式下文字可读性良好