Communitygithub.com

twltr/design-system

审计、记录或扩展设计系统的令牌、组件和模式。在检查组件间命名不一致或硬编码值时使用,为组件的变体、状态、属性和无障碍编写文档,或设计符合现有系统的新组件或模式。

design-system 是什么?

该技能为AI代理提供了一种结构化的方法来处理设计系统,涵盖审计、文档编写和扩展三大模式。它基于实际源文件(令牌文件、组件代码和设计文件)进行工作,而不是依赖对设计系统的泛泛理解。审计模式能够检测命名不一致、硬编码值(如十六进制颜色和像素值)以及缺失的状态,并通过清晰的表格和优先级行动项目呈现发现。文档模式帮助创建一个全面的组件文档,包括变体、状态、属性和无障碍特性,确保团队能够正确使用组件。扩展模式通过要求先列出现有接近的组件并解释为何它们不能满足需求来防止冗余,并促进基于现有令牌的设计。该技能设计用于类似Claude Code、Cursor或Codex的AI代理,能够运行像`rg`(ripgrep)这样的搜索工具来查找代码中的硬编码值,并支持与Figma等设计工具以及Notion等知识库集成。最终目标是保持设计系统的一致性、可组合性和可维护性,从而维护团队对它的信任。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/twltr/skill-profile/tree/HEAD/skills/design/design-system

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

设计系统

叶技能 范围:设计领域;通过其域名或名称可访问。

设计系统只有在团队信任它时才能节省决策成本。偏离会悄无声息地侵蚀这种信任:一个组件有三个名称,原始十六进制值与它们重复的令牌并列,无人记录的状态。一旦人们停止信任系统,他们就会绕开它。此方法以三种模式运行——审计 现有系统,记录 组件以便正确使用,扩展 系统以适配新模式——并将每种模式都扎根于实际源文件:令牌文件、组件代码和设计文件,而非一个泛泛的设计系统概念。

一个实际审计发现的示例

情景(虚构): 一个带有令牌文件的React库;请求是“审计我们的按钮和卡片”。

命名    Button、IconBtn 和 .btn-link 三个名称指代同一个概念。
        → 采用带有 `icon` 和 `link` 变体的 Button;将旧名称作为别名保留一个发布版本。
令牌    Card 和 Modal 中有 23 个硬编码颜色。其中 18 个等于现有令牌(机械替换);5 个不匹配任何令牌。
        → 这 5 个需要决策:是缺失的令牌,还是需要修复的设计错误。
状态    Card 没有焦点状态,尽管它是可点击的。

可复用的选择在于区分:一个值与现有令牌重复,这是机械修复;而一个值不匹配任何令牌,则是需要交给人员决定的设计问题。

收集系统信息

在评估之前先阅读现有内容:令牌源文件、组件代码或库、以及文档。例如,搜索 rg -n '#[0-9a-fA-F]{3,8}\b|[0-9]+px' src/components 可以找到代码中的硬编码值;请根据技术栈调整模式。

标有 ~~ 的部分命名的是工具类别,而非具体产品:如 ~~设计工具(例如 Figma)或 ~~知识库(例如 Notion)。请使用宿主提供的该类别下的任何可用工具;如果没有可用工具,则跳过该步骤。

使用 ~~设计工具,检查设计文件中的组件名称、变体、图层结构和令牌使用情况,并与代码进行比较。使用 ~~知识库,查找现有的组件页面和使用指南,仅在用户要求时才将更新后的文档发布到那里。

一个系统包含三个层次;审计和文档覆盖每个层次:

层次内容
令牌颜色(品牌色、语义色、中性色)、排版、间距、圆角和边框、高度、动效持续时间和缓动函数
组件变体、状态(默认、悬停、焦点、激活、禁用、加载、错误)、大小、行为、无障碍
模式表单、导航、数据展示、反馈——组合起来解决常见问题的组件

当令牌在工具之间移动时,设计令牌社区组格式(首个稳定版本2025.10,2025年10月)是通用交换格式;请遵循项目已使用的格式。

原则

  1. 一致性优于新颖性。 系统存在是为了让团队不再重复决定相同的事情;一个一次性变体需要一个系统缺少的理由。
  2. 在约束内可组合。 优先使用变体或现有组件的组合,而不是创建新组件。
  3. 未记录即不可用。 一个没人能找到的状态或变体会被重做。
  4. 版本化与迁移。 破坏性的重命名或删除需要迁移路径,例如一个版本的别名和一个代码转换工具或搜索工具来查找所有使用点。

审计

报告数量和证据,而不是分数:没有标准的数字会掩盖哪个问题更重要。

## 设计系统审计:[范围]

**审核内容:** [组件、令牌文件] | **发现:** [按类别统计数量]

### 命名
| 问题 | 位置 | 建议 |
|---|---|---|

### 令牌覆盖
| 类别 | 已定义令牌 | 硬编码值 | 匹配现有令牌 |
|---|---|---|---|

### 组件完整性
| 组件 | 状态 | 变体 | 文档 | 无障碍 |
|---|---|---|---|---|
| Button | 完整 | 部分:无纯图标尺寸 | 缺失 | 存在焦点环 |

### 优先行动
1. [最高用户或团队影响优先,附所需工作量]

文档

为所有使用该组件的用户记录一个可复用的组件。属性(props)和代码示例应从真实组件中获取,而非虚构的 API。

## 组件:[名称]

[它是什么以及何时使用——以及何时使用其他组件]

### 变体
| 变体 | 使用场景 |
|---|---|

### 属性
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|

### 状态
| 状态 | 视觉效果 | 行为 |
|---|---|---|

### 无障碍
- **角色:** [角色或原生元素]
- **键盘:** [Tab, Enter, Space, Escape, 方向键]
- **屏幕阅读器:** [宣告为…]

### 注意事项
| 做法 | 不要做 |
|---|---|

### 示例
[项目框架中的简短代码片段]

扩展

在提出任何新内容之前,列出接近的现有组件并说明为什么每个都不够;大多数请求最终会变成一个新的变体。新组件应重用现有令牌,并仅在必要时提出新令牌及其理由。

## 提议的组件:[名称]

### 问题
[用户需求或缺口]

### 现有选项
| 组件 | 共同点 | 不足之处 |
|---|---|---|

### 设计
属性、变体和状态参照文档模板;使用的令牌。

### 无障碍
角色、键盘和屏幕阅读器行为。

### 待定问题
[需要设计评审的决策]

系统的组件和令牌是此方法的主题。单个功能或屏幕的规范表,以及新产品的视觉方向,属于独立的设计工作;系统审计也不能替代 WCAG 审计。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能