DESIGN.md 是一个纯文本设计系统文档,采用 Google Stitch 九段式格式,供 AI 智能体读取以生成风格一致的 UI。它是设计意图(来自 /shape 的 .design-context.md)与实现(/minoan-frontend-design)之间的令牌层。
三条工作流
工作流 A:获取参考 DESIGN.md
使用 getdesign CLI 从包含 68 个品牌设计系统的库中获取:
npx getdesign@latest add <brand> # 将 DESIGN.md 放入项目根目录
npx getdesign@latest add stripe --out ./docs/DESIGN.md # 自定义输出路径
npx getdesign@latest list # 显示全部 68 个可用品牌
可用品牌包括:airbnb、apple、claude、cursor、figma、framer、linear.app、nike、notion、shopify、spotify、stripe、supabase、tesla、vercel 等共 68 个。每个文件约 350 行,包含精确的十六进制色值、字体栈、组件规格、阴影系统和响应式断点。
获取后,/minoan-frontend-design 在实现过程中会读取 DESIGN.md(其 QA 规范化步骤会将输出与项目 DESIGN.md 令牌对齐)。
预取库
全部 68 个品牌 DESIGN.md 文件可预取到本地参考库:
bash ~/.claude/skills/design-md/scripts/fetch_all_design_md.sh # 获取全部 68 个
bash ~/.claude/skills/design-md/scripts/fetch_all_design_md.sh --force # 重新获取
库位于 ~/.claude/skills/design-md/library/<brand>/DESIGN.md。无需运行 npx 即可直接读取任意品牌:
cat ~/.claude/skills/design-md/library/stripe/DESIGN.md
library/ 目录已被 gitignore——它是本地缓存,不随技能分发。
工作流 B:生成自定义 DESIGN.md
从现有项目的 CSS 中提取设计令牌并搭建 DESIGN.md:
python3 ~/.claude/skills/design-md/scripts/generate_design_md.py <project-path>
python3 ~/.claude/skills/design-md/scripts/generate_design_md.py . --output DESIGN.md
该脚本扫描包含 @theme 块(Tailwind CSS 4)、:root 自定义属性、字体声明、阴影、边框圆角和断点的 CSS 文件。它将提取的令牌整理为九段式格式,并为需要人工或 Claude 完成的叙述性段落(视觉主题、Do's/Don'ts)保留 TODO 占位符。
生成脚手架后,使用项目上下文填写叙述性段落——概念方向、氛围、设计护栏。格式规范见 references/design-md-format.md。
工作流 C:使用 Google CLI 校验与导出
使用 @google/design.md(九段式格式的上游 CLI)进行 lint、diff 和导出:
npx @google/design.md lint DESIGN.md # 8 条校验规则,JSON 输出
npx @google/design.md diff OLD.md NEW.md # 令牌级 diff,出现回归时退出码为 1
npx @google/design.md export --format tailwind DESIGN.md # Tailwind 主题 JSON
npx @google/design.md export --format dtcg DESIGN.md # W3C Design Token Format JSON
- 生成后 lint:在工作流 B 之后运行 lint,在完成叙述性内容前发现缺失段落、断裂引用和对比度问题。
- 交接前 lint:在将 DESIGN.md 传给 /minoan-frontend-design 之前运行 lint。干净的 lint(退出码 0)确认结构完整。
- 导出用于实现:export --format tailwind 生成下游工具可直接消费的主题 JSON。
- diff 用于版本管理:将项目的 DESIGN.md 与库参考对比,或审计修订之间的变化。退出码 1 = 回归(移除令牌、对比度断裂)。
lint 规则参考和退出码语义见 references/google-cli.md。
九段式格式
| # | 段落 | 内容 |
|---|---|---|
| 1 | 视觉主题与氛围 | 叙述:情绪、理念、概念方向 |
| 2 | 色彩调色板与角色 | 分组:语义名称 + 十六进制 + 功能角色 |
| 3 | 排版规则 | 字体族、层级表(字号/字重/字距/行高) |
| 4 | 组件样式 | 按钮、卡片、输入框、导航——CSS 值 + 状态 |
| 5 | 布局原则 | 间距尺度、网格、留白理念、边框圆角尺度 |
| 6 | 深度与层级 | 阴影系统表、表面层级 |
| 7 | Do's 与 Don'ts | 设计护栏与反模式 |
| 8 | 响应式行为 | 断点表、触控目标、折叠策略 |
| 9 | 智能体提示指南 | 便于复制粘贴的快速色彩参考 |
完整注释规范及每段示例见 references/design-md-format.md。
流水线集成
/shape → .design-context.md(意图:受众、情绪、反目标)
/design-md → DESIGN.md(令牌:十六进制值、字体栈、阴影系统)
lint → npx @google/design.md lint DESIGN.md(校验关卡)
/minoan-frontend-design → 实现(创意方向 + 材料)
/design-audit + /design-polish → 精修
.design-context.md 与 DESIGN.md 互补:
- .design-context.md 捕捉“谁”和“为什么”——受众、美学方向、设计旋钮(DESIGN_VARIANCE、MOTION_INTENSITY、VISUAL_DENSITY)、反目标
- DESIGN.md 捕捉“具体是什么”——十六进制颜色、字号/字重/字距表、内边距值、阴影栈、断点
两者都位于项目根目录。/minoan-frontend-design 同时消费两者——创意方向来自设计上下文,材料来自设计令牌。令牌是材料,不是配方:创意方向仍然主导。
图表
组件层级和令牌关系可使用 beautiful-mermaid ASCII 模式可视化为 Mermaid 图表,然后直接包含在 DESIGN.md 文件中:
printf 'graph TD\n Tokens --> Components --> Patterns' | \
node ~/.claude/skills/beautiful-mermaid/scripts/mermaid.mjs -
如需 SVG 导出(例如在配套 HTML 文档中),使用 -f svg -t github-light。
何时不使用此技能
- 模式研究(其他设计系统如何实现标签页?)请使用 /component-gallery
- 创意方向和 UI 实现请使用 /minoan-frontend-design
- 编码前设计简报请使用 /shape
- 视觉效果(着色器、WebGL)请使用 /grainient 或 /rocaille-shader