feat(ui): 实现深色/浅色主题切换功能
- 添加 CSS 变量定义浅色和深色主题色板 - 扩展 Tailwind 配置支持语义化颜色 (surface-*, fg-*, line-*, code) - 创建 useTheme hook 管理主题状态和持久化 - 创建 ThemeToggle 组件支持三种模式 (light/dark/system) - 迁移所有组件从硬编码 gray-* 到语义化颜色 - 支持系统主题偏好检测 (prefers-color-scheme) - 添加主题初始化脚本防止闪烁 (FOUC)
This commit is contained in:
@@ -9,6 +9,26 @@ export default {
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// 语义化颜色 (引用 CSS 变量)
|
||||
surface: {
|
||||
base: 'rgb(var(--color-bg-base) / <alpha-value>)',
|
||||
subtle: 'rgb(var(--color-bg-subtle) / <alpha-value>)',
|
||||
muted: 'rgb(var(--color-bg-muted) / <alpha-value>)',
|
||||
emphasis: 'rgb(var(--color-bg-emphasis) / <alpha-value>)',
|
||||
},
|
||||
fg: {
|
||||
DEFAULT: 'rgb(var(--color-text-primary) / <alpha-value>)',
|
||||
secondary: 'rgb(var(--color-text-secondary) / <alpha-value>)',
|
||||
muted: 'rgb(var(--color-text-muted) / <alpha-value>)',
|
||||
subtle: 'rgb(var(--color-text-subtle) / <alpha-value>)',
|
||||
},
|
||||
line: {
|
||||
DEFAULT: 'rgb(var(--color-border-default) / <alpha-value>)',
|
||||
muted: 'rgb(var(--color-border-muted) / <alpha-value>)',
|
||||
},
|
||||
// 代码块背景
|
||||
code: 'rgb(var(--color-code-bg) / <alpha-value>)',
|
||||
// 保留现有 primary 色板
|
||||
primary: {
|
||||
50: '#f0f9ff',
|
||||
100: '#e0f2fe',
|
||||
|
||||
Reference in New Issue
Block a user