# 主题变量与 UnoCSS 类名速查手册
> 🎨 本文档用于快速查找可用的主题变量和 UnoCSS 类名,方便样式开发。
> 📋 基于设计系统规范整理,标注了变量在 theme-lib/palette 中的实际支持情况。
---
## 📋 目录
- [UnoCSS 类名使用规则](#unocss-类名使用规则)
- [CSS 变量使用方式](#css-变量使用方式)
- [1. 中性色彩(背景色)](#1-中性色彩背景色)
- [2. 中性色彩交互状态](#2-中性色彩交互状态)
- [3. 文字&图标色彩](#3-文字图标色彩)
- [4. 主题色&功能色](#4-主题色功能色)
- [实际使用示例](#实际使用示例)
- [SCSS 变量使用](#scss-变量使用)
---
## UnoCSS 类名使用规则
### 基本格式
```
lst-[属性缩写]-[变量名]
```
### 属性缩写
| 缩写 | 完整写法 | 对应 CSS 属性 | 示例 |
| ---- | ------------ | ------------------ | -------------------- |
| `c` | `color` | `color` | `lst-c-brand-color` |
| `bg` | `background` | `background-color` | `lst-bg-brand-color` |
| `b` | `border` | `border-color` | `lst-b-brand-color` |
### 两类变量
#### 1️⃣ 特殊颜色变量(需要加属性前缀)
这些变量必须指定应用到的 CSS 属性:
```html
文字
背景
边框
不生效
```
**特殊颜色变量列表(主题色&功能色):**
- `brand-color` - 品牌色
- `brand-color-hover` - 品牌色 hover
- `brand-color-active` - 品牌色 active
- `brand-color-disabled` - 品牌色 disabled
- `brand-color-focus` - 品牌色 focus
- `brand-color-light` - 品牌色 light
- `error-color` - 错误色
- `error-color-hover` - 错误色 hover
- `error-color-active` - 错误色 active
- `error-color-disabled` - 错误色 disabled
- `error-color-focus` - 错误色 focus
- `error-color-light` - 错误色 light
- `warning-color` - 警示色
- `warning-color-hover` - 警示色 hover
- `warning-color-active` - 警示色 active
- `warning-color-disabled` - 警示色 disabled
- `warning-color-focus` - 警示色 focus
- `warning-color-light` - 警示色 light
- `success-color` - 成功色
- `success-color-hover` - 成功色 hover
- `success-color-active` - 成功色 active
- `success-color-disabled` - 成功色 disabled
- `success-color-focus` - 成功色 focus
- `success-color-light` - 成功色 light
#### 2️⃣ 普通变量(直接使用)
其他变量直接使用 `lst-变量名`:
```html
文字
背景
边框
```
---
## CSS 变量使用方式
### 基本格式
```css
var(--ls-[变量名])
```
### 使用场景
当你需要在 **JavaScript/TypeScript** 或 **内联样式** 中使用主题变量时,可以使用 CSS 变量:
#### 1️⃣ 在 JavaScript 中获取变量值
```typescript
// 获取主题变量值
const brandColor = getComputedStyle(document.documentElement).getPropertyValue(
"--ls-brand-color",
);
// 返回: "#1765FF"
const textColor = getComputedStyle(document.documentElement).getPropertyValue(
"--ls-text-color-primary",
);
// 返回: "rgba(0,0,0,.9)"
```
#### 2️⃣ 在 Vue 内联样式中使用
```vue
动态背景色
```
#### 3️⃣ 在 CSS 中使用
```css
.custom-element {
background-color: var(--ls-bg-color-container);
color: var(--ls-text-color-primary);
border: 1px solid var(--ls-component-border);
}
```
#### 4️⃣ 在 SCSS 中使用
```scss
.custom-element {
background-color: var(--ls-bg-color-container);
color: var(--ls-text-color-primary);
&:hover {
background-color: var(--ls-bg-color-container-hover);
}
}
```
### 变量映射规则
| UnoCSS 类名 | CSS 变量 | 说明 |
| -------------------------- | ------------------------------ | -------- |
| `lst-c-brand-color` | `var(--ls-brand-color)` | 文字颜色 |
| `lst-bg-brand-color` | `var(--ls-brand-color)` | 背景颜色 |
| `lst-b-brand-color` | `var(--ls-brand-color)` | 边框颜色 |
| `lst-bg-color-container` | `var(--ls-bg-color-container)` | 容器背景 |
| `lst-c-text-color-primary` | `var(--ls-text-color-primary)` | 主要文字 |
| `lst-component-border` | `var(--ls-component-border)` | 组件边框 |
### 完整变量名列表
所有主题变量都遵循 `--ls-[变量名]` 的格式,例如:
**中性色彩:**
- `--ls-bg-color-page`
- `--ls-bg-color-container`
- `--ls-bg-color-secondarycontainer`
- `--ls-bg-color-component`
- `--ls-component-stroke`
- `--ls-component-border`
**主题色&功能色:**
- `--ls-brand-color`
- `--ls-brand-color-hover`
- `--ls-brand-color-active`
- `--ls-error-color`
- `--ls-warning-color`
- `--ls-success-color`
**文字色彩:**
- `--ls-text-color-primary`
- `--ls-text-color-secondary`
- `--ls-text-color-placeholder`
- `--ls-text-color-disabled`
- `--ls-text-color-anti`
### 注意事项
1. **变量前缀**:所有 CSS 变量都以 `--ls-` 开头
2. **响应式**:CSS 变量会自动跟随主题切换,无需手动更新
3. **兼容性**:支持所有现代浏览器(Chrome 49+, Firefox 31+, Safari 9.1+)
4. **推荐用法**:
- ✅ 模板中使用 UnoCSS 类名(性能更好)
- ✅ 动态样式使用 CSS 变量
- ✅ SCSS 中优先使用 `useThemeVar()` 函数(见下方 SCSS 章节)
---
## 1. 中性色彩(背景色)
> Light 模式默认全局中性色彩配置
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ----------------------------- | --------------------------------- | --------- | ------------------ | ------------------------------ | --------- |
| `bg-color-page` | `lst-bg-color-page` | `#EEEEF0` | 浅灰(冷色调) | 默认页面底层背景 | ✅ 已支持 |
| `bg-color-container` | `lst-bg-color-container` | `#FFFFFF` | 纯白色 | 主要容器背景、次要层级页面背景 | ✅ 已支持 |
| `bg-color-secondarycontainer` | `lst-bg-color-secondarycontainer` | `#F6F6F7` | 极浅灰(接近白色) | 次要容器背景 | ✅ 已支持 |
| `bg-color-component` | `lst-bg-color-component` | `#E7E8EB` | 浅灰色 | 组件背景、主要容器之上组件背景 | ✅ 已支持 |
| `component-stroke` | `lst-component-stroke` | `#E7E8EB` | 浅灰色 | 默认组件分割线 | ✅ 已支持 |
| `component-border` | `lst-component-border` | `#DCDDE1` | 中浅灰色 | 默认边框 | ✅ 已支持 |
---
## 2. 中性色彩交互状态
> 交互状态(hover、active、disabled)
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ------------------------------------ | ---------------------------------------- | --------- | ------------------ | ------------------------------------------------ | --------- |
| `bg-color-container-hover` | `lst-bg-color-container-hover` | `#F6F6F7` | 极浅灰(接近白色) | 主要容器背景 hover、次要层级页面背景 hover | ✅ 已支持 |
| `bg-color-container-active` | `lst-bg-color-container-active` | `#E7E8EB` | 浅灰色 | 主要容器背景 click、次要层级页面背景 click | ✅ 已支持 |
| `bg-color-secondarycontainer-hover` | `lst-bg-color-secondarycontainer-hover` | `#EEEEF0` | 浅灰(冷色调) | 次要容器背景 hover | ✅ 已支持 |
| `bg-color-secondarycontainer-active` | `lst-bg-color-secondarycontainer-active` | `#DCDDE1` | 中浅灰色 | 次要容器背景 click | ✅ 已支持 |
| `bg-color-component-hover` | `lst-bg-color-component-hover` | `#DCDDE1` | 中浅灰色 | 组件背景 hover、主要容器之上组件背景 hover | ✅ 已支持 |
| `bg-color-component-active` | `lst-bg-color-component-active` | `#A2A6B1` | 中灰色 | 组件背景 active、主要容器之上组件背景 active | ✅ 已支持 |
| `bg-color-component-disabled` | `lst-bg-color-component-disabled` | `#EEEEF0` | 浅灰(冷色调) | 组件背景 disabled、主要容器之上组件背景 disabled | ✅ 已支持 |
---
## 3. 文字&图标色彩
> 默认 Light 模式文字色彩配置
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ------------------------ | ------------------------------ | ---------------------- | ---------------------- | -------------------------- | --------- |
| `text-color-primary` | `lst-c-text-color-primary` | `rgba(0,0,0,.9)` | 深黑(90%透明度) | 主要文字色彩 | ✅ 已支持 |
| `text-color-secondary` | `lst-c-text-color-secondary` | `rgba(0,0,0,.6)` | 中黑(60%透明度) | 次要文字色彩 | ✅ 已支持 |
| `text-color-placeholder` | `lst-c-text-color-placeholder` | `rgba(0,0,0,.4)` | 浅黑(40%透明度) | 占位符文字色彩 | ✅ 已支持 |
| `text-color-disabled` | `lst-c-text-color-disabled` | `rgba(0,0,0,.26)` | 极浅黑(26%透明度) | 文字 disabled 态 | ✅ 已支持 |
| `text-color-anti` | `lst-c-text-color-anti` | `rgba(255,255,255,.9)` | 纯白(90%透明度) | 文字反色色彩(深色背景上) | ✅ 已支持 |
| `text-color-brand` | `lst-c-text-color-brand` | `#1765FF` | 品牌蓝(中等亮度蓝色) | 主题色文字色彩 | ✅ 已支持 |
| `text-color-link` | `lst-c-text-color-link` | `#1765FF` | 品牌蓝(中等亮度蓝色) | 链接文字 | ✅ 已支持 |
---
## 4. 主题色&功能色
> 主题相关配置
### 品牌色
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ---------------------- | ------------------------------------------------------------------ | --------- | ---------------------- | ---------------------------- | --------- |
| `brand-color` | `lst-c-brand-color`
`lst-bg-brand-color`
`lst-b-brand-color` | `#1765FF` | 品牌蓝(中等亮度蓝色) | 品牌色 | ✅ 已支持 |
| `brand-color-hover` | `lst-c-brand-color-hover`
`lst-bg-brand-color-hover` | `#4287FF` | 亮蓝(较浅蓝色) | 品牌色 hover | ✅ 已支持 |
| `brand-color-active` | `lst-c-brand-color-active`
`lst-bg-brand-color-active` | `#0947D9` | 深蓝(较深蓝色) | 品牌色 active | ✅ 已支持 |
| `brand-color-disabled` | `lst-c-brand-color-disabled`
`lst-bg-brand-color-disabled` | `#C4E0FF` | 极浅蓝(接近白色) | 品牌色 disabled | ✅ 已支持 |
| `brand-color-focus` | `lst-c-brand-color-focus`
`lst-bg-brand-color-focus` | `#99C5FF` | 浅蓝(明亮蓝色) | 品牌色 focus | ✅ 已支持 |
| `brand-color-light` | `lst-bg-brand-color-light` | `#F0FAFF` | 极浅蓝(接近白色) | 品牌色 light(交互状态使用) | ✅ 已支持 |
### 错误色
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ---------------------- | ------------------------------------------------------------------ | --------- | ---------------------- | ---------------------------- | --------- |
| `error-color` | `lst-c-error-color`
`lst-bg-error-color`
`lst-b-error-color` | `#F63D46` | 警示红(高饱和度红色) | 错误色 | ✅ 已支持 |
| `error-color-hover` | `lst-c-error-color-hover`
`lst-bg-error-color-hover` | `#FF6B6E` | 亮红(较浅红色) | 错误色 hover | ✅ 已支持 |
| `error-color-active` | `lst-c-error-color-active`
`lst-bg-error-color-active` | `#CF2937` | 深红(较深红色) | 错误色 active | ✅ 已支持 |
| `error-color-disabled` | `lst-c-error-color-disabled`
`lst-bg-error-color-disabled` | `#FFC5C2` | 极浅红(粉色) | 错误色 disabled | ✅ 已支持 |
| `error-color-focus` | `lst-c-error-color-focus`
`lst-bg-error-color-focus` | `#FF9896` | 浅红(明亮红色) | 错误色 focus | ✅ 已支持 |
| `error-color-light` | `lst-bg-error-color-light` | `#FFEFED` | 极浅红(接近白色) | 错误色 light(交互状态使用) | ✅ 已支持 |
### 警示色
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ------------------------ | ------------------------------------------------------------------------ | --------- | ---------------------- | ---------------------------- | --------- |
| `warning-color` | `lst-c-warning-color`
`lst-bg-warning-color`
`lst-b-warning-color` | `#FF7C17` | 警示橙(高饱和度橙色) | 警示色 | ✅ 已支持 |
| `warning-color-hover` | `lst-c-warning-color-hover`
`lst-bg-warning-color-hover` | `#FF9A42` | 亮橙(较浅橙色) | 警示色 hover | ✅ 已支持 |
| `warning-color-active` | `lst-c-warning-color-active`
`lst-bg-warning-color-active` | `#D95C09` | 深橙(较深橙色) | 警示色 active | ✅ 已支持 |
| `warning-color-disabled` | `lst-c-warning-color-disabled`
`lst-bg-warning-color-disabled` | `#FFE6C4` | 极浅橙(淡黄色) | 警示色 disabled | ✅ 已支持 |
| `warning-color-focus` | `lst-c-warning-color-focus`
`lst-bg-warning-color-focus` | `#FFCF99` | 浅橙(明亮橙色) | 警示色 focus | ✅ 已支持 |
| `warning-color-light` | `lst-bg-warning-color-light` | `#FFF9F0` | 极浅橙(接近白色) | 警示色 light(交互状态使用) | ✅ 已支持 |
### 成功色
| 变量名 | UnoCSS 类名 | 颜色值 | 颜色描述 | 用途 | 状态 |
| ------------------------ | ------------------------------------------------------------------------ | --------- | ---------------------- | ---------------------------- | --------- |
| `success-color` | `lst-c-success-color`
`lst-bg-success-color`
`lst-b-success-color` | `#11B832` | 自然绿(中等亮度绿色) | 成功色 | ✅ 已支持 |
| `success-color-hover` | `lst-c-success-color-hover`
`lst-bg-success-color-hover` | `#33C44B` | 亮绿(较浅绿色) | 成功色 hover | ✅ 已支持 |
| `success-color-active` | `lst-c-success-color-active`
`lst-bg-success-color-active` | `#069126` | 深绿(较深绿色) | 成功色 active | ✅ 已支持 |
| `success-color-disabled` | `lst-c-success-color-disabled`
`lst-bg-success-color-disabled` | `#B5EBB8` | 极浅绿(淡绿色) | 成功色 disabled | ✅ 已支持 |
| `success-color-focus` | `lst-c-success-color-focus`
`lst-bg-success-color-focus` | `#85DE8E` | 浅绿(明亮绿色) | 成功色 focus | ✅ 已支持 |
| `success-color-light` | `lst-bg-success-color-light` | `#EEFCED` | 极浅绿(接近白色) | 成功色 light(交互状态使用) | ✅ 已支持 |
---
## 实际使用示例
### 示例 1:卡片组件
```vue
```
### 示例 2:警告提示框
```vue
⚠️
这是一条警告信息
```
### 示例 3:表格样式
```vue
```
### 示例 4:表单输入框
```vue
```
### 示例 5:成功提示框
```vue
✅
操作成功!
```
### 示例 6:按钮组
```vue
```
### 示例 7:弹窗/模态框
```vue
```
### 示例 8:状态标签
```vue
已通过
待审核
已拒绝
进行中
```
---
## SCSS 变量使用
当 UnoCSS 无法满足需求时(如复杂计算、伪元素、媒体查询等),使用 SCSS:
### 基本用法
```vue
```
### 复杂示例
```vue
```
---
## 🎯 常用组合速查
### 文字层次
```html
一级标题
二级标题
正文内容
占位符文字
禁用文字
```
### 卡片/容器
```html
白色卡片
悬浮卡片
灰色背景区域
页面内容
```
### 表单元素
```html
错误信息
操作成功
```
### 状态标签
```html
成功
警告
错误
进行中
```
### 按钮状态
```html
```
---
## ⚠️ 注意事项
### 1. 特殊颜色必须加属性前缀
```html
```
### 2. 不要在样式中硬编码颜色值
```vue
```
### 3. 阴影使用
UnoCSS 暂不支持直接使用阴影变量,需要:
- 使用 UnoCSS 内置的 `shadow-sm`、`shadow-md`、`shadow-lg`
- 或在 SCSS 中使用 `useThemeVar('shadow1')`
### 4. 圆角使用
推荐使用 UnoCSS 内置类名:
- `rounded-sm` = 2px
- `rounded` = 4px
- `rounded-md` = 6px
- `rounded-lg` = 8px
- `rounded-xl` = 12px
或使用主题变量(SCSS 中):
- `useThemeVar('border-radius-sm')` = 2px
- `useThemeVar('border-radius-base')` = 4px
- `useThemeVar('border-radius-md')` = 8px
- `useThemeVar('border-radius-lg')` = 10px
- `useThemeVar('border-radius-xl')` = 15px
---
## 🔍 调试技巧
### 在浏览器中查看当前主题变量
1. 打开开发者工具(F12)
2. 切换到 Elements 面板
3. 选中 `` 元素
4. 查看 Computed 样式中的 `--ls-*` 变量
5. 点击变量值可以实时修改预览
### 切换主题查看效果
在控制台执行:
```javascript
// 切换到暗色主题
document.documentElement.classList.add("ls-theme__dark");
document.documentElement.classList.remove("ls-theme__light");
// 切换到亮色主题
document.documentElement.classList.add("ls-theme__light");
document.documentElement.classList.remove("ls-theme__dark");
```
---
## 🎯 快速参考卡片
### 最常用变量 TOP 10
| 排名 | 变量 | 用途 | UnoCSS 类名 |
| ---- | ----------------------------- | --------- | --------------------------------- |
| 1 | `text-color-primary` | 标题/正文 | `lst-c-text-color-primary` |
| 2 | `text-color-secondary` | 次级文字 | `lst-c-text-color-secondary` |
| 3 | `bg-color-container` | 白色背景 | `lst-bg-color-container` |
| 4 | `bg-color-secondarycontainer` | 灰色背景 | `lst-bg-color-secondarycontainer` |
| 5 | `brand-color` | 品牌色 | `lst-c-brand-color` |
| 6 | `component-border` | 边框 | `lst-component-border` |
| 7 | `error-color` | 错误色 | `lst-c-error-color` |
| 8 | `success-color` | 成功色 | `lst-c-success-color` |
| 9 | `warning-color` | 警告色 | `lst-c-warning-color` |
| 10 | `component-stroke` | 分割线 | `lst-component-stroke` |
---