关于 design-system-audit
用于审查设计系统的 Skill,覆盖组件、设计令牌、文档、无障碍、采用情况和治理流程。它为设计与工程团队生成结构化评估及按优先级排列的改进路线图。
主要功能
- 01检查组件覆盖度与质量
- 02审查令牌一致性和偏差
- 03评估文档与无障碍状况
- 04检查采用情况和贡献流程
- 05制定优先级改进路线图
- 06使用 notugly 计算对比度并检查令牌
适用场景
- 01评估共享组件库
- 02发现无障碍和令牌问题
- 03规划设计系统改进
- 04审查系统采用与治理情况
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mohitagw15856/ pm-claude-skills --skill design-system-audit安装后在 Claude Code 中输入/design-system-audit确认已加载。
详细介绍
设计系统审计技能
此技能可生成一份结构化的设计系统审计报告,涵盖组件覆盖率、令牌一致性、文档质量、无障碍合规性、贡献流程和采用情况。报告可供设计系统团队、设计管理层或评估共享组件库的工程团队直接使用。
必需输入
如果用户未提供以下信息,请询问:
- 设计系统名称以及服务于哪些产品
- 审计范围——组件库 / 设计令牌 / 文档 / 贡献流程 / 以上全部
- 当前使用的工具——Figma / Storybook / Zeroheight / 自定义 / 组合使用?
- 使用团队——有多少位设计师和工程师,有多少个产品?
- 已知痛点——团队最常抱怨什么?
- 治理模式——集中式团队 / 联邦式贡献者 / 没有专职团队?
- 审计目标——提高采用率 / 为品牌重塑做准备 / 帮助新团队入门 / 证明投资的合理性?
程序化辅助工具
对比度无法凭肉眼判断。AA 标准线为 4.5:1,白色背景上的 #777777
为 4.478(不通过),而 #767676 为 4.54(通过)——无论怎么看
截图都无法分辨。请计算:
npx --yes notugly fix "#8ab4f8" "#ffffff" # ratio, APCA, and the nearest passing colour
npx --yes notugly onepager <url> --out review.html # every pairing, printable
npx --yes notugly vision # which colours merge for colour-blind viewers
notugly fix 会返回对比度、APCA 明度对比度,以及与已选颜色最接近且符合要求的颜色——色相和色度相同。请将这些数值填入下方的表格,而不是估算。
结果确定、零依赖,且不会调用模型——运行无需成本,每次结果都相同。
对于令牌一致性和无障碍部分,请直接指定令牌文件:
npx --yes notugly tokens tokens.json # W3C design tokens or a Figma variables export
这样会通过语义名称指出未通过的颜色对——color.text.danger on surface.default is 2.99:1 — needs 4.5——这就成了有负责人跟进的 bug,而不是笼统的对比度问题。它还会标出以多个令牌名称定义的同一种颜色,这通常意味着系统是在复制粘贴中逐渐扩展的。
若要跟踪随时间产生的偏差,npx notugly watch <url> baseline.json 可以区分“新颜色”和“与已有颜色相差 0.003 的颜色”,后者通常是因为有人找不到对应的令牌。
输出结构
设计系统审计:[System Name]
服务的产品:[产品 / 应用列表] 审计范围:[完整 / 仅组件 / 仅令牌 / 文档] 审计者:[姓名 / 团队] 日期:[日期] 利益相关者:[设计负责人、工程负责人、CPO 等]
整体健康评分
| 维度 | 评分(1–5) | 状态 |
|---|---|---|
| 组件覆盖率 | [X/5] | 🟢/🟡/🔴 |
| 令牌一致性 | [X/5] | 🟢/🟡/🔴 |
| 文档质量 | [X/5] | 🟢/🟡/🔴 |
| 无障碍合规性 | [X/5] | 🟢/🟡/🔴 |
| 采用率 | [X/5] | 🟢/🟡/🔴 |
| 贡献流程 | [X/5] | 🟢/🟡/🔴 |
| 整体 | [X/5] | 🟢/🟡/🔴 |
摘要:[用 2–3 句话概述设计系统的整体状况、最主要的 2 个问题和最大的优势。]
1. 组件覆盖率审计
**评估方法:**将设计系统中的组件与产品中的实际 UI 模式进行比较。所有已在生产环境中使用、但未纳入系统的模式,都是覆盖缺口。
组件清单
| 类别 | 已有组件 | 覆盖率 | 缺口 |
|---|---|---|---|
| 导航 | [Navbar, Sidebar, Breadcrumb, Tabs] | [80%] | [缺少:Mega menu、移动端抽屉] |
| 表单与输入 | [Text input, Dropdown, Checkbox, Radio, Toggle, Date picker] | [90%] | [缺少:Multi-select、Rich text editor] |
| 反馈与提醒 | [Toast, Banner, Modal, Tooltip] | [60%] | [缺少:行内验证、进度指示器、骨架屏加载器] |
| 数据展示 | [Table, Card, Badge, Avatar] | [50%] | [缺少:数据网格、统计卡片、时间线、甘特图] |
| 布局 | [Grid, Container, Divider, Spacer] | [70%] | [缺少:响应式断点工具类] |
| 按钮与操作 | [Button, Icon button, FAB, Link] | [100%] | [无] |
覆盖率得分: [设计系统覆盖的生产环境 UI 模式占比为 X%]
影响最大的缺口:
- [系统中缺失的最常用模式——导致重复实现最多]
- [...]
- [...]
2. 组件质量审查
针对每个组件,按照以下质量标准进行评估:
| 组件 | 状态是否完整 | 是否支持响应式 | 无障碍访问 | 暗色模式 | Props 是否有文档 | 代码是否与 Figma 一致 |
|---|---|---|---|---|---|---|
| Button | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Modal | ⚠️ 缺少加载状态 | ✅ | ✅ | ❌ | ⚠️ 部分 | ✅ |
| Table | ❌ 缺少排序状态 | ❌ 无移动端布局 | ⚠️ 无 aria-sort | ❌ | ❌ | ⚠️ 存在偏差 |
| [Component] | [...] | [...] | [...] | [...] | [...] | [...] |
图例: ✅ 完整 — ⚠️ 部分完成/不一致 — ❌ 缺失
存在严重质量问题的组件(优先修复):
- [组件名称]:[具体问题及其阻碍事项的原因]
- [...]
3. 设计令牌审查
令牌覆盖情况:
| 令牌类型 | 已定义 | 使用是否一致 | 问题 |
|---|---|---|---|
| 颜色 | [已定义 X 个令牌] | [⚠️ — 在 Figma 中发现 12 个硬编码的十六进制颜色值] | [不同产品的 CTA 对 primary-500 和 primary-600 的使用不一致] |
| 字体排印 | [已定义 X 个令牌] | [✅] | [无——所有字体样式均使用令牌比例] |
| 间距 | [已定义 X 个令牌] | [⚠️ — X 个组件使用了自定义间距] | [工程师在 X 个组件中使用任意 px 值,而非间距令牌] |
| 边框圆角 | [已定义 X 个令牌] | [❌ — 未定义;每个组件都使用硬编码值] | [Button、Card 和 Modal 使用不同的圆角值,且没有对应令牌] |
| 阴影/层级 | [已定义 X 个令牌] | [⚠️] | [正在使用 3 种不同的投影值;没有层级比例] |
| 动画/动效 | [已定义 X 个令牌] | [❌ — 未定义] | [各组件的过渡时长不一致] |
语义令牌层: [系统是否有语义令牌(例如,基于 color.blue.500 的 color.action.primary),还是只有原始令牌?]
令牌偏差: [代码令牌和 Figma 令牌是否同步?可使用 Token Studio、Style Dictionary 等工具,或进行手动比对。]
4. 文档质量审计
各组件 / 模式的评估:
| 文档类型 | 质量 | 问题 |
|---|---|---|
| 使用指南 | [⚠️ — X% 的组件有使用指南] | [Button 和 Form 组件有文档;Navigation 和 Data Display 大多没有文档] |
| 正例 / 反例 | [❌ — 大多缺失] | [由于意图不明确,工程师经常误用组件] |
| 无障碍说明 | [⚠️ — 部分组件有说明] | [格式不统一;交互组件缺少无障碍说明] |
| 代码示例 | [✅ — 所有 Storybook 组件都有代码示例] | [...] |
| 更新日志 | [❌ — 没有组件级更新日志] | [破坏性变更没有告知,导致 UI 意外回归] |
| 迁移指南 | [❌ — 缺失] | [团队不知道如何升级到新版组件] |
文档评分: [有完整、实用文档的组件占 X%]
设计师 / 工程师最常见的文档相关意见: [例如:“我找不到这个用例应该用 Modal 还是 Drawer——没有相关指南。”]
5. 无障碍审计
WCAG 2.2 合规状态:
| 标准 | 等级 | 状态 | 受影响的组件 |
|---|---|---|---|
| 颜色对比度(文本) | AA | [✅ / ⚠️ / ❌] | [例如:❌ — 3 个组件的禁用状态文本未达到 4.5:1 对比度] |
| 颜色对比度(UI 组件) | AA | [✅ / ⚠️ / ❌] | [...] |
| 键盘导航 | AA | [✅ / ⚠️ / ❌] | [⚠️ — Modal 未实现焦点陷阱;Dropdown 不支持键盘访问] |
| 焦点可见性 | AA | [✅ / ⚠️ / ❌] | [...] |
| 屏幕阅读器支持(ARIA) | AA | [✅ / ⚠️ / ❌] | [❌ — Table 组件缺少 aria-sort;图标按钮没有 aria-label] |
| 触控目标尺寸 | AA | [✅ / ⚠️ / ❌] | [⚠️ — X 个组件在移动设备上的点按目标小于 44×44px] |
| 动效 / 动画 | AA | [✅ / ⚠️ / ❌] | [...] |
关键无障碍阻碍(必须在下次发布前修复):
- [最关键的问题——例如:键盘用户无法关闭 Modal——缺少焦点陷阱]
- [...]
6. 采用情况审计
各团队 / 产品的采用情况:
| 产品 / 团队 | 使用的系统组件 | 在系统之外构建的自定义组件 | 采用评分 |
|---|---|---|---|
| [Product A] | [X% 的 UI 使用系统组件] | [Y 个自定义组件] | [高 / 中 / 低] |
| [Product B] | [...] | [...] | [...] |
团队未采用的原因:
| 阻碍 | 严重程度 | 依据 |
|---|---|---|
| [组件不存在] | 高 | [团队调查中的首要原因] |
| [组件存在,但不符合使用场景] | 中 | [Modal 组件缺少 Product B 所需的 X 状态] |
| [文档过于简略,不清楚如何使用] | 中 | [...] |
| [无人强制要求使用系统——自行构建更容易] | 高 | [...] |
| [系统未能跟上产品当前的视觉语言] | 中 | [...] |
7. 贡献流程审计
| 维度 | 当前状态 | 评估 |
|---|---|---|
| 如何贡献 | [有文档 / 无文档] | [✅ / ❌] |
| 贡献标准 | [明确哪些内容可以纳入系统] | [⚠️ — 不清楚由谁决定某项内容成为系统组件还是保留为本地组件] |
| 审核流程 | [由谁审核贡献,以及需要多长时间] | [❌ — 没有正式审核;贡献提交数周无人审核] |
| 发布节奏 | [系统多久发布一次] | [⚠️ — 发布不规律;没有固定节奏] |
| 破坏性变更政策 | [如何处理和告知破坏性变更] | [❌ — 没有政策;破坏性变更总是令人措手不及] |
| 版本管理 | [是否采用语义化版本管理?] | [✅ — 所有软件包均采用 semver] |
8. 优先级修复路线图
| 优先级 | 计划 | 影响 | 工作量 | 时间安排 |
|---|---|---|---|---|
| P1 | 修复 [X] 个严重的无障碍问题(键盘导航、ARIA) | 严重——影响法律合规和用户 | 中 | Sprint 1–2 |
| P1 | 定义并实施边框圆角和阴影令牌规范 | 高——消除不一致 | 低 | Sprint 1 |
| P1 | 编写使用频率最高的 10 个组件的文档(使用方法和注意事项) | 高——推动采用 | 中 | Sprint 2–4 |
| P2 | 构建骨架屏加载器和行内校验组件(最主要的 2 个缺口) | 高——消除重复的自定义实现 | 高 | Quarter 2 |
| P2 | 建立贡献流程并为评审设定 SLA | 中——助力发展 | 低 | Sprint 3 |
| P3 | 支持深色模式令牌 | 中——实现产品功能对等 | 高 | Quarter 3 |
| P3 | 设计与代码令牌同步工具(Token Studio / Style Dictionary) | 中——减少偏差 | 中 | Quarter 2–3 |
质量检查
- 通过将设计系统与实际生产环境中的 UI 进行比较来识别覆盖缺口,而非凭空假设
- 无障碍问题应注明具体的 WCAG 准则和受影响的组件
- 采用障碍应有证据支持(访谈、调查、使用数据),而非凭空假设
- 修复路线图应包含工作量估算,并按影响排序
- 同时评估 Figma 和代码(Storybook/实现),而不只是 Figma
- 设计、工程和产品领域的相关方均已审阅审计结果
反模式
- 不要只评估 Figma 库而不检查代码实现——Figma 与代码脱节是最常见、代价最高的设计系统问题之一
- 不要在未访谈团队的情况下评估采用情况——审计工具的指标无法揭示团队选择自定义组件而不使用系统组件的背后原因
- 不要将所有组件缺口一视同仁——应根据有多少生产界面依赖自定义实现来确定缺口优先级,而非按字母顺序排列
- 不要在审计文档质量之前建议添加更多组件——没有文档的组件往往比没有组件更糟
- 不要在没有为每项计划指定负责人的情况下安排修复工作——没有明确负责人的设计系统改进往往会停滞不前
示例触发短语
- “审计我们的设计系统,检查一致性和覆盖范围”
- “审查我们的组件库并找出缺口”
- “评估共享设计系统的健康状况”
- “重新打造品牌之前,先进行设计系统审计”
- “我们的设计系统有什么问题?应该先修复什么?”