Files
wiki/.claude/design-tokens.md
T
zdh 798200cdd2
Deploy Wiki to Production / deploy (push) Has been cancelled
feat: 设计系统迁移至 Microsoft Fluent 2 / Windows 11 风格
- 品牌色 #1677FF → #0078D4 (Fluent Communication Blue)
- 中性色升级为 11 级 Fluent 2 阶梯 + 8 级 alpha 透明色
- 新增材质效果 (Acrylic/Mica/Smoke)、动效缓动、完整 Type Ramp
- 阴影升级为 6 级 Elevation 体系 (shadow2-64 + z-index 映射)
- index.html 全面重设计:亚克力顶栏、Fluent 卡片、Tab 风格 Chip
- 响应式断点改为 Fluent 2 标准 (639/1023/1024px)
- 字体优先 Segoe UI Variable,行高 1.4285 (20px)
- design-tokens.md 新增向后兼容矩阵与非标准文件清单
2026-06-05 18:59:22 +08:00

570 lines
19 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.
# UI 设计规范 — Microsoft Fluent 2 / Windows 11
> 本项目设计系统已从 Ant Design v5(阿里云风格)迁移至 **Microsoft Fluent 2**Windows 11 风格)。
> 旧 Token 名保留不变(向后兼容),新 Token 使用 `--fluent-*` 前缀。
---
## 0. 变更日志
| 日期 | 版本 | 变更 |
|------|------|------|
| 2026-06-05 | 2.0 | 主设计系统从 Ant Design v5 迁移至 Fluent 2;品牌色 `#1677FF``#0078D4`;新增材质/动效/完整色彩阶梯/字体体系;`index.html` 同步重设计 |
| ~2026-05 | 1.0 | 初始版本,基于 Ant Design v5 + 阿里云控制台风格 |
---
## 1. 品牌色
### 1.1 核心品牌色
| 用途 | Token | 值 | 说明 |
|------|-------|------|------|
| 品牌主色 | `--color-primary` | `#0078D4` | Fluent 2 Communication Blue |
| 悬停态 | `--color-primary-hover` | `#106EBE` | shade-10 |
| 激活态 | `--color-primary-active` | `#005A9E` | shade-20 |
| 浅色背景 | `--color-primary-bg` | `#DEECF9` | tint-30 |
### 1.2 Fluent 2 Tint/Shade 链(新增)
```
tint-40: #EFF6FC 最浅(微妙填充)
tint-30: #DEECF9 浅背景 = --color-primary-bg
tint-20: #C7E0F4 hover 填充 / focus ring
tint-10: #2B88D8 悬停轮廓 / 强调边框
primary: #0078D4 品牌主色 = --color-primary
shade-10: #106EBE 悬停态 = --color-primary-hover
shade-20: #005A9E 激活态 = --color-primary-active
shade-30: #004578 最深(高亮文字 / 深色背景)
```
对应 CSS Token
| Token | 值 |
|-------|-----|
| `--fluent-primary-tint-40` | `#EFF6FC` |
| `--fluent-primary-tint-30` | `#DEECF9` |
| `--fluent-primary-tint-20` | `#C7E0F4` |
| `--fluent-primary-tint-10` | `#2B88D8` |
| `--fluent-primary-shade-10` | `#106EBE` |
| `--fluent-primary-shade-20` | `#005A9E` |
| `--fluent-primary-shade-30` | `#004578` |
---
## 2. 功能色
| 用途 | Token | 值 | Fluent 语义 |
|------|-------|------|------------|
| 成功 | `--color-success` | `#107C10` | Green (深绿,更专业) |
| 警告 | `--color-warning` | `#FF8C00` | Orange (取代琥珀色) |
| 错误 | `--color-error` | `#FF4D4F` | Red (保留 Ant Design 红,对比度更优) |
### 2.1 功能色浅色背景(新增)
| Token | 值 | 说明 |
|-------|-----|------|
| `--fluent-success-bg` | `#DFF6DD` | 成功态浅色背景 |
| `--fluent-warning-bg` | `#FFF4CE` | 警告态浅色背景 |
| `--fluent-error-bg` | `#FDE7E9` | 错误态浅色背景 |
| `--fluent-success-border` | `#A7E3A1` | 成功态边框 |
| `--fluent-warning-border` | `#FFD335` | 警告态边框 |
| `--fluent-error-border` | `#EEACB2` | 错误态边框 |
### 2.2 废弃 Token
| Token | 状态 | 说明 |
|-------|------|------|
| `--color-info` | **已移除** | 0 个文件使用,死 Token |
---
## 3. 中性色
### 3.1 Fluent 2 完整中性阶梯
```css
--fluent-neutral-0: #FFFFFF; 纯白页面/卡片背景
--fluent-neutral-2: #F8F8F8; 微妙灰
--fluent-neutral-4: #F4F4F4;
--fluent-neutral-6: #F2F2F2;
--fluent-neutral-8: #EBEBEB;
--fluent-neutral-10: #E1DFDD; 边框色
--fluent-neutral-20: #C8C8C8;
--fluent-neutral-30: #A6A6A6; 占位文字 / disabled
--fluent-neutral-60: #666666; 次要文字
--fluent-neutral-70: #3C3C3C;
--fluent-neutral-80: #201F1E; 主文字
```
### 3.2 旧 Token → 新值映射(亮色)
| Token | 旧值 (AntD) | 新值 (Fluent 2) | 对应 Fluent Token |
|-------|------------|----------------|-------------------|
| `--bg` | `#F5F5F5` | `#FAF9F8` | neutral-2 |
| `--bg-container` | `#FFFFFF` | `#FFFFFF` | neutral-0 |
| `--bg-elevated` | `#FAFAFA` | `#F3F2F1` | neutral-4 |
| `--border` | `#D9D9D9` | `#E1DFDD` | neutral-10 |
| `--border-light` | `#F0F0F0` | `#EDEBE9` | neutral-8 |
| `--text-primary` | `#141414` | `#201F1E` | neutral-80 |
| `--text-secondary` | `#595959` | `#605E5C` | neutral-70 |
| `--text-tertiary` | `#8C8C8C` | `#8A8886` | neutral-60 |
### 3.3 暗色主题(`[data-theme="dark"]`
| Token | 旧值 (AntD) | 新值 (Fluent 2 Dark) |
|-------|------------|---------------------|
| `--bg` | `#0B0F1A` / `#111111` | `#1F1F1F` |
| `--bg-container` | `#111827` / `#1C1C1E` | `#292929` |
| `--bg-elevated` | `#1A2235` / `#242426` | `#333333` |
| `--border` | `#1E2A3A` / `#3A3A3C` | `#474747` |
| `--border-light` | `#151D2E` / `#2C2C2E` | `#3D3D3D` |
| `--text-primary` | `#E8ECF1` / `#D1D1D6` | `#DADADA` |
| `--text-secondary` | `#8892A4` / `#8E8E93` | `#A0A0A0` |
| `--text-tertiary` | `#5A6478` / `#636366` | `#7A7A7A` |
暗色品牌色:
| Token | 值 |
|-------|-----|
| `--color-primary` (dark) | `#479EF5` |
| `--color-primary-bg` (dark) | `rgba(71,158,245,0.15)` |
### 3.4 透明中性色(Fluent Alpha 系列,新增)
```css
--fluent-alpha-2: rgba(0,0,0,0.02);
--fluent-alpha-4: rgba(0,0,0,0.04);
--fluent-alpha-8: rgba(0,0,0,0.08);
--fluent-alpha-10: rgba(0,0,0,0.10);
--fluent-alpha-20: rgba(0,0,0,0.20);
--fluent-alpha-30: rgba(0,0,0,0.30);
--fluent-alpha-40: rgba(0,0,0,0.40);
--fluent-alpha-80: rgba(0,0,0,0.80);
```
暗色对应 `rgba(255, 255, 255, ...)`
---
## 4. 字体规范
### 4.1 字体族
```css
/* 正文(优先 Windows 11 可变字体) */
--fluent-font-family-text: 'Segoe UI Variable Text', 'Segoe UI', system-ui,
-apple-system, BlinkMacSystemFont, 'PingFang SC', 'Hiragino Sans GB',
'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;
/* 标题 / 大字号展示 */
--fluent-font-family-display: 'Segoe UI Variable Display', 'Segoe UI',
system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
/* 等宽代码 */
--fluent-font-family-monospace: 'Cascadia Code', 'Fira Code', 'SF Mono',
'Menlo', 'Monaco', 'Courier New', monospace;
/* 旧版兼容(无 Segoe UI Variable 的旧系统自动回退) */
--font-family: var(--fluent-font-family-text);
```
### 4.2 字号阶梯(Fluent 2 Type Ramp
| 级别 | 字号 | 行高 | 字重 | 用途 |
|------|------|------|------|------|
| Caption 2 | 10px | 14px | 400 | 极小辅助文字 |
| Caption 1 | 12px | 16px | 400 | 辅助文字 / Tag / 日期 |
| **Body 1** | **14px** | **20px** | **400** | **正文(基准)** |
| Body 1 Strong | 14px | 20px | 600 | 强调正文 |
| Subtitle 2 | 16px | 22px | 600 | 卡片标题 |
| Subtitle 1 | 20px | 26/28px | 600 | 小节标题 |
| Title 3 | 24px | 32px | 600 | 区域标题 |
| Title 2 | 28px | 36px | 600 | 页面标题 |
| Title 1 | 32px | 40px | 600 | 大标题 |
| Large Title | 40px | 52px | 600 | Hero 标题 |
| Display | 68px | 92px | 600 | 超大展示 |
**与旧版(Ant Design)差异**
- 正文行高 `22px → 20px`(更紧凑,Fluent 标准)
- 同一字号提供 Regular/Semibold/Bold 字重变体
- 新增 Display (68px) 和 Large Title (40px) 级别
---
## 5. 圆角规范
### 5.1 旧 Token → 新值
| Token | 旧值 | 新值 (Fluent 2) | 使用场景 |
|-------|------|----------------|---------|
| `--radius-xs` | 2px | 2px | Tag、极小 Badge |
| `--radius-sm` | 6px | **4px** | 按钮、输入框(Fluent 基准) |
| `--radius-md` | 8px | **6px** | 卡片、面板 |
| `--radius-lg` | 12px | **8px** | 弹窗、大容器 |
### 5.2 新增 Fluent 命名 Token
| Token | 值 | 说明 |
|-------|-----|------|
| `--fluent-radius-none` | 0px | 无线条 |
| `--fluent-radius-small` | 2px | = `--radius-xs` |
| `--fluent-radius-medium` | 4px | = `--radius-sm` |
| `--fluent-radius-large` | 6px | = `--radius-md` |
| `--fluent-radius-xlarge` | 8px | = `--radius-lg` |
| `--fluent-radius-circular` | 9999px | 胶囊形 / 圆形 |
---
## 6. 间距规范
### 6.1 旧版(保留,标记 Legacy
基于 8px 基准,仅 3 个文件使用:
| Token | 值 | 状态 |
|-------|-----|------|
| `--space-xs` | 4px | Legacy — 已使用 |
| `--space-sm` | 8px | Legacy — 已使用 |
| `--space-md` | 12px | Legacy — 已使用 |
| `--space-lg` | 16px | Legacy — 已使用 |
| `--space-xl` | 24px | Legacy — 已使用 |
| `--space-2xl` | 32px | Legacy — 已使用 |
| `--space-3xl` | 48px | Legacy — 已使用 |
### 6.2 Fluent 2 间距阶梯(推荐新工作使用)
基于 4px 基准,17 级:
| Token | 值 | 使用场景 |
|-------|-----|---------|
| `--fluent-spacing-2xs` | 2px | 图标对齐微调 |
| `--fluent-spacing-xs` | 4px | 极紧凑 |
| `--fluent-spacing-sm` | 8px | 小间距 |
| `--fluent-spacing-md` | 12px | 中等间距 |
| `--fluent-spacing-lg` | 16px | 标准间距 |
| `--fluent-spacing-xl` | 20px | 紧凑段落 |
| `--fluent-spacing-2xl` | 24px | 大间距 |
| `--fluent-spacing-3xl` | 28px | 区块间距 |
| `--fluent-spacing-4xl` | 32px | — |
| `--fluent-spacing-5xl` | 40px | — |
| `--fluent-spacing-6xl` | 48px | 大区块间距 |
| `--fluent-spacing-7xl` | 56px | 最大间距 |
---
## 7. 阴影与层级
### 7.1 旧 Token → 新值
| Token | 新值 (Fluent 2) |
|-------|----------------|
| `--shadow-sm` | `0 0 2px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.14)` |
| `--shadow-md` | `0 0 2px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.14)` |
| `--shadow-lg` | `0 0 2px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.14)` |
### 7.2 Fluent 2 完整 Elevation 体系(新增)
| Token | z-index 层级 | 使用场景 |
|-------|-------------|---------|
| `--fluent-shadow-2` | 100 | 卡片静止态 |
| `--fluent-shadow-4` | 200 | 卡片悬停 / Tooltip |
| `--fluent-shadow-8` | 300 | 下拉菜单 / Flyout |
| `--fluent-shadow-16` | 400 | 对话框 / Modal |
| `--fluent-shadow-28` | 500 | 抽屉侧栏 / 教学气泡 |
| `--fluent-shadow-64` | 600 | 通知 / Toast |
### 7.3 z-index 层级表
| 层级 | z-index | 元素 |
|------|---------|------|
| Base | 0 | 正文内容 |
| Sticky | 90 | Chip 筛选栏 |
| Header | 100 | 顶栏 / 卡片静止 |
| Overlay | 200 | 遮罩层 / Tooltip |
| Flyout | 300 | 下拉菜单 |
| Modal | 400 | 模态弹窗 |
| Drawer | 500 | 抽屉 |
| Toast | 600 | 通知 |
---
## 8. 材质效果(Fluent 2 独有,新增)
### 8.1 Acrylic(亚克力)
半透明模糊材质,用于导航栏、侧栏面板:
```css
--fluent-acrylic-default: rgba(255, 255, 255, 0.7);
--fluent-acrylic-dark: rgba(47, 47, 47, 0.85);
--fluent-backdrop-blur: 40px;
/* 使用示例 */
.header {
background: var(--fluent-acrylic-default);
backdrop-filter: blur(var(--fluent-backdrop-blur)) saturate(125%);
border-bottom: 0.5px solid var(--fluent-alpha-4);
}
```
### 8.2 Mica(云母)
采样桌面壁纸色调的微弱材质,用于标题栏背景:
```css
--fluent-mica-bg: rgba(243, 242, 241, 0.7);
--fluent-mica-bg-dark: rgba(32, 31, 30, 0.7);
/* 使用示例 */
.title-bar {
background: var(--fluent-mica-bg);
backdrop-filter: blur(8px);
}
```
### 8.3 Smoke(烟雾遮罩)
用于 Modal / Flyout 背后的遮罩层:
```css
--fluent-smoke-default: rgba(0, 0, 0, 0.4);
```
---
## 9. 动效与缓动(新增)
### 9.1 缓动曲线
```css
--fluent-easing-accelerate: cubic-bezier(0.9, 0.1, 1.0, 0.2); /* 元素离开 */
--fluent-easing-decelerate: cubic-bezier(0.1, 0.9, 0.2, 1.0); /* 元素进入 */
--fluent-easing-standard: cubic-bezier(0.8, 0.0, 0.2, 1.0); /* 通用状态变化 */
```
### 9.2 时长
```css
--fluent-duration-faster: 83ms; /* 微交互(ripple、hover 开始) */
--fluent-duration-fast: 100ms; /* hover 进出 */
--fluent-duration-normal: 167ms; /* 标准过渡 */
--fluent-duration-slow: 250ms; /* 面板展开/关闭 */
--fluent-duration-slower: 333ms; /* 页面过渡 */
```
### 9.3 过渡速查
| 场景 | 属性 | 时长 | 缓动 |
|------|------|------|------|
| 链接颜色 | color | 100ms | standard |
| 卡片悬停 | box-shadow | 167ms | standard |
| 按钮 hover | background | 100ms | decelerate |
| 面板展开 | max-height | 250ms | standard |
| 抽屉进出 | transform | 250ms | standard |
| 遮罩淡入 | opacity | 167ms | decelerate |
---
## 10. 布局规范
| 元素 | 值 | 说明 |
|------|------|------|
| 顶栏高度 (`--header-h`) | `64px` | Fluent / Ant Design 通用 |
| 侧栏宽度 (`--sidebar-w`) | `260px` | 桌面端导航 |
| 内容区最大宽度 | `1200px` | 标准内容区 |
| 宽版内容区 | `1600px` | 大屏仪表盘 / Landing |
| 侧边距 | `5%` | 流式响应(Fluent 风格) |
| 移动端内边距 | `16px` | ≤639px |
---
## 11. 响应式断点
Fluent 2 使用自有断点体系(取代 Ant Design 断点):
| 断点 | 值 | 说明 |
|------|------|------|
| sm | 480px | 小手机横屏 |
| md | 640px | 平板竖屏(侧栏隐藏) |
| lg | 1024px | 平板横屏(紧凑侧栏) |
| xl | 1366px | 桌面完整布局 |
| xxl | 1920px | 大屏 |
**本项目使用**
- `≤639px`:移动端 — 隐藏侧栏,显示 Chip 筛选 + 抽屉导航
- `640px1023px`:平板 — 紧凑侧栏(220px
- `≥1024px`:桌面 — 完整布局(260px 侧栏)
---
## 12. 组件规范
### 12.1 卡片 CardFluent 2 风格)
- 背景:`--bg-container`
- 边框:`1px solid --border`
- 圆角:`6px``--radius-md`
- 内边距:`20px`
- 静止态:`box-shadow: var(--fluent-shadow-2)`(极淡阴影)
- 悬停态:`box-shadow: var(--fluent-shadow-4)`(上浮一层),边框色不变
- 过渡:`box-shadow var(--fluent-duration-normal) var(--fluent-easing-standard)`
- **移除**:旧版 `border-color` 变色 + `transform: scale(0.99)` 点击缩放
### 12.2 标签 Badge
- 内边距:`2px 10px`
- 圆角:`2px``--radius-xs`Fluent 直角风格) 或 `12px`(胶囊形,按场景选择)
- 字号:`12px`
- 字重:`600`
- 背景:`--fluent-primary-tint-30`
- 文字色:`--color-primary`
### 12.3 按钮 Button
- 主按钮背景:`--color-primary`
- 主按钮文字:`#FFFFFF`
- 次要按钮背景:`transparent`
- 次要按钮边框:`1px solid --border`
- 圆角:`4px``--fluent-radius-medium`
- 最小高度:`32px`
- hover:背景色上浮至 `shade-10` / `tint-30`
- 过渡:`background var(--fluent-duration-fast) var(--fluent-easing-decelerate)`
### 12.4 输入框 Input
- 边框:`1px solid --border`
- 圆角:`4px``--fluent-radius-medium`
- Focus ring`0 0 0 2px var(--fluent-primary-tint-20)`(外发光,不占布局)
- 内边距:`8px 12px`
- 颜色:`--text-primary`
- 占位符:`--text-tertiary`
### 12.5 表格 Table
- 表头背景:`--bg-elevated`
- 表头字重:`600`
- 单元格背景:`--bg-container`
- 单元格内边距:`10px 14px`
- 边框:`1px solid --border`
- 表头 sticky top: 0
- 行悬停:背景色变为 `--color-primary-bg``tint-30`
- 圆角:`6px`(整表圆角)
### 12.6 代码 Code
- 背景:`--bg-elevated`
- 内边距:`2px 8px`
- 圆角:`4px`
- 字号:`13px`
- 字体:`--fluent-font-family-monospace`
- 颜色:`--color-primary`
### 12.7 代码块 CodeBlock
- 背景:`--bg-elevated`
- 边框:`1px solid --border`
- 圆角:`6px``--radius-md`
- 内边距:`16px`
- 行高:`1.7`
- 字体:`--fluent-font-family-monospace`
### 12.8 导航项 NavItem(侧栏)
- 圆角:`4px``--radius-sm`
- 内边距:`8px 12px`
- 激活态背景:`--fluent-primary-tint-30``#DEECF9`
- 激活态文字:`--color-primary`
- 激活态字重:`500`
- hover 背景:`--bg-elevated`
- 移动端最小高度:`44px`(触控友好)
---
## 13. 渐变色
| 用途 | 值 |
|------|-----|
| 标题渐变 | `linear-gradient(135deg, #0078D4 0%, #2B88D8 100%)` |
| 强调渐变 | `linear-gradient(135deg, #0078D4 0%, #106EBE 100%)` |
> **注意**:旧版标题渐变包含 `#722ED1`(紫色),约 34 个文件在 HTML 中直接硬编码该值。这些文件在独立打开时不使用此规范;通过 `index.html` iframe 导航时才能继承 CSS 变量。
---
## 14. 主题架构
- **索引页(`index.html`**:支持亮色/暗色双主题,通过 `data-theme` 属性切换
- 优先级:`localStorage('wiki-theme')``prefers-color-scheme: dark` 系统偏好 → light
- 暗色模式使用 Fluent 2 暗色中性色 + `#479EF5` 品牌色
- 亮色模式背景使用 `#FAF9F8`Fluent neutral-2
- **报告页**:统一使用**亮色主题**,不定义暗色 CSS 变量。通过 `index.html` iframe 导航时继承 Token 值
---
## 15. 向后兼容矩阵
### 15.1 已迁移(旧名 = 新值)
| 旧 Token | 新值来源 | 视觉变化 |
|----------|---------|---------|
| `--color-primary` | Fluent `#0078D4` | 偏青蓝(原 `#1677FF` 偏紫蓝) |
| `--color-primary-hover` | Fluent shade-10 `#106EBE` | 更深 |
| `--color-primary-active` | Fluent shade-20 `#005A9E` | 更深 |
| `--color-primary-bg` | Fluent tint-30 `#DEECF9` | 几乎一致 |
| `--color-success` | Fluent `#107C10` | **显著变化**:亮绿→深绿 |
| `--color-warning` | Fluent `#FF8C00` | 琥珀→橙色 |
| `--color-error` | 保留 `#FF4D4F` | 不变 |
| `--bg` | Fluent neutral-2 `#FAF9F8` | 微调 |
| `--bg-elevated` | Fluent neutral-4 `#F3F2F1` | 微调 |
| `--border` | Fluent neutral-10 `#E1DFDD` | 微调 |
| `--text-primary/secondary/tertiary` | Fluent neutral-80/70/60 | 暗色文本对比度改善 |
| `--radius-sm/md/lg` | Fluent 4/6/8px | 整体更方正 |
| `--shadow-sm/md/lg` | Fluent elevation 2/4/8 | 更轻、更自然 |
| `--gradient-title` | 纯蓝渐变(移除紫色) | 34 个硬编码文件不受影响 |
### 15.2 未迁移(独立 Token 体系的文件)
以下 7 个文件使用独立的命名体系,不受本次迁移影响:
| 文件 | Token 体系 | 命名示例 |
|------|-----------|---------|
| `深国际综合改革方案/index.html` | 自定 + 部分标准 | `--primary: #1a3a5c`, `--accent: #c8102e` |
| `深国际综合改革方案/报告/*.html` (3 文件) | 自定 + 部分标准 | 同上 |
| `YqBoot系统说明书/系统说明书.html` | Google 风格 | `--primary: #1a73e8` |
| `YqBoot系统说明书/系统说明书-演示文稿.html` | Google 风格 | 同上 |
| `政府审批流解决方案/政府审批流解决方案.html` | 暗红金色 | `--primary: #8B0000`, `--accent: #C9A84C` |
| `中医馆内部管理系统/报告/*.html` (2 文件) | 多色功能色 | `--green/red/orange/purple` |
| `szihl-soe-reform-report.html` | 混合 | 标准 + `--accent: #c8102e` + 暗色模式 |
### 15.3 废弃 Token
| Token | 原因 |
|-------|------|
| `--color-info` | 定义但从未被 `var()` 引用 |
---
## 16. 图标规范
| 规则 | Do | Don't |
|------|----|----- |
| 图标来源 | SVG Icon 库(Heroicons / Lucide | Emoji 作为 UI 图标 |
| 图标尺寸 | 固定 24×24 viewBox`w-6 h-6` | 混合不同尺寸 |
| 品牌 Logo | 从 Simple Icons 获取官方 SVG | 猜测或使用错误路径 |
| 悬停反馈 | `transition-colors duration-200` | 瞬时状态变化 |
| 触控目标 | 最小 44×44px | 不可点击区域 |
---
## 参考资料
- [Fluent 2 Design System](https://fluent2.microsoft.design)
- [Fluent 2 Design Tokens](https://fluent2.microsoft.design/design-tokens)
- [Fluent 2 Typography](https://fluent2.microsoft.design/typography)
- [Fluent 2 Layout](https://fluent2.microsoft.design/layout)
- [Fluent 2 Shapes](https://fluent2.microsoft.design/shapes)
- [Windows 11 Design Principles](https://learn.microsoft.com/en-us/windows/apps/design/design-principles)
- [Windows 11 Typography](https://learn.microsoft.com/en-gb/windows/apps/design/signature-experiences/typography)
- [Fluent UI Web Components Design Tokens](https://learn.microsoft.com/en-gb/fluent-ui/web-components/design-system/design-tokens)