# 主题变量与 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` | ---