# shadcn UI 配色系统完整指南 ## 概述 shadcn UI 使用基于 CSS 变量的分层配色系统,通过语义化的变量名来管理整个应用的色彩方案。系统分为亮色主题(`:root`)和暗色主题(`.dark`)两套配色。 ## 🎨 颜色层级分类 ### 1. 核心系统颜色 (Core System Colors) #### 主要交互色 (Primary Colors) - **`--primary`**: 应用主题色,用于最重要的交互元素 - 亮色: `hsl(349.5238 100% 87.6471%)` - 粉红色 - 暗色: `hsl(330 100.0000% 80%)` - 粉红色 - **`--primary-foreground`**: 主要色上的文字/图标颜色 - 亮色: `hsl(0 0% 0%)` - 黑色 - 暗色: `hsl(0 0% 0%)` - 黑色 **用途**: 按钮、链接、选中状态、重要高亮等主要交互元素 #### 次要交互色 (Secondary Colors) - **`--secondary`**: 次要按钮和元素背景色 - 亮色: `hsl(197.4000 71.4286% 72.5490%)` - 蓝色 - 暗色: `hsl(120 60.0000% 50%)` - 绿色 - **`--secondary-foreground`**: 次要色上的文字/图标颜色 - 亮色: `hsl(0 0% 0%)` - 黑色 - 暗色: `hsl(0 0% 0%)` - 黑色 **用途**: 次要按钮、标签、分页器等辅助交互元素 #### 强调色 (Accent Colors) - **`--accent`**: 悬停和强调状态 - 亮色: `hsl(60 100% 50%)` - 黄色 - 暗色: `hsl(197.4000 71.4286% 72.5490%)` - 蓝色 - **`--accent-foreground`**: 强调色上的文字/图标颜色 - 亮色: `hsl(0 0% 0%)` - 黑色 - 暗色: `hsl(0 0% 0%)` - 黑色 **用途**: 悬停状态、选中背景、高亮区域 ### 2. 背景和前景色 (Background & Foreground) #### 基础背景色 - **`--background`**: 应用主背景色 - 亮色: `hsl(200 23.0769% 97.4510%)` - 浅蓝灰 - 暗色: `hsl(220.0000 14.7541% 11.9608%)` - 深蓝灰 - **`--foreground`**: 主要文字颜色 - 亮色: `hsl(0 0% 20%)` - 深灰 - 暗色: `hsl(0 0% 89.8039%)` - 浅灰 #### 卡片背景色 - **`--card`**: 卡片和弹出层背景 - 亮色: `hsl(0 0% 100%)` - 纯白 - 暗色: `hsl(197.1429 6.9307% 19.8039%)` - 深蓝灰 - **`--card-foreground`**: 卡片上的文字颜色 - 亮色: `hsl(0 0% 20%)` - 深灰 - 暗色: `hsl(0 0% 89.8039%)` - 浅灰 #### 弹出层背景色 - **`--popover`**: 弹出层、下拉菜单背景 - 亮色: `hsl(0 0% 100%)` - 纯白 - 暗色: `hsl(197.1429 6.9307% 19.8039%)` - 深蓝灰 - **`--popover-foreground`**: 弹出层文字颜色 - 亮色: `hsl(0 0% 20%)` - 深灰 - 暗色: `hsl(0 0% 89.8039%)` - 浅灰 ### 3. 弱化和辅助色 (Muted & Support) #### 弱化元素 - **`--muted`**: 弱化背景色 - 亮色: `hsl(50.4000 26.8817% 81.7647%)` - 浅黄灰 - 暗色: `hsl(0 0% 26.6667%)` - 深灰 - **`--muted-foreground`**: 弱化文字颜色 - 亮色: `hsl(0 0% 43.1373%)` - 中灰 - 暗色: `hsl(0 0% 63.9216%)` - 中浅灰 **用途**: 禁用状态、占位符、不重要的信息 ### 4. 边框和输入色 (Border & Input) - **`--border`**: 边框颜色 - 亮色: `hsl(0 0% 83.1373%)` - 浅灰 - 暗色: `hsl(0 0% 26.6667%)` - 深灰 - **`--input`**: 输入框边框色 - 亮色: `hsl(0 0% 83.1373%)` - 浅灰 - 暗色: `hsl(0 0% 26.6667%)` - 深灰 ### 5. 危险和警告色 (Destructive) - **`--destructive`**: 危险操作色(删除、警告等) - 亮色: `hsl(0 84.2365% 60.1961%)` - 红色 - 暗色: `hsl(0 84.2365% 60.1961%)` - 红色 - **`--destructive-foreground`**: 危险色上的文字颜色 - 亮色: `hsl(0 0% 100%)` - 白色 - 暗色: `hsl(0 0% 100%)` - 白色 **用途**: 删除按钮、错误提示、警告信息 ### 6. 焦点和环色 (Ring) - **`--ring`**: 焦点环颜色 - 亮色: `hsl(349.5238 100% 87.6471%)` - 粉红色 - 暗色: `hsl(330 100.0000% 80%)` - 粉红色 **用途**: 键盘焦点环、表单验证高亮 ### 7. 图表色 (Chart Colors) - **`--chart-1`**: 图表主色 (粉色系) - **`--chart-2`**: 图表次要色 (蓝色/绿色系) - **`--chart-3`**: 图表第三色 (黄色/蓝色系) - **`--chart-4`**: 图表第四色 (黄色系) - **`--chart-5`**: 图表第五色 (黄绿色系) ### 8. 侧边栏色 (Sidebar Colors) - **`--sidebar`**: 侧边栏背景色 - **`--sidebar-foreground`**: 侧边栏文字色 - **`--sidebar-primary`**: 侧边栏主要交互色 - **`--sidebar-primary-foreground`**: 侧边栏主要文字色 - **`--sidebar-accent`**: 侧边栏强调色 - **`--sidebar-accent-foreground`**: 侧边栏强调文字色 - **`--sidebar-border`**: 侧边栏边框色 - **`--sidebar-ring`**: 侧边栏焦点环色 ## 🏗️ 使用优先级和层级 ### 1. 主要色 (Primary) - 最高优先级 - 主按钮 - 重要链接 - 选中状态 - 进度指示器 - 主要数据展示 ### 2. 次要色 (Secondary) - 中等优先级 - 次要按钮 - 标签和徽章 - 分页组件 - 辅助交互元素 ### 3. 强调色 (Accent) - 低优先级 - 悬停状态 - 选中背景 - 高亮区域 - 过渡效果 ### 4. 弱化色 (Muted) - 最低优先级 - 禁用状态 - 占位符文本 - 辅助信息 - 背景装饰 ## 🎯 实际应用示例 ### 按钮组件 ```jsx // 主要按钮 // 次要按钮 // 危险按钮 ``` ### 卡片组件 ```jsx
辅助信息