DESIGN.md
DESIGN.md 是 Google Stitch 提出的设计系统规范,把 token 化的视觉语言写进项目根目录。
- 痛点:AI 写组件超过 5 个 ,颜色 / 间距 / 圆角就开始漂移
- 解法:把9 大模块(视觉主题 / 色彩 / 字体 / 组件 / 布局 / 深度 / Do's / 响应式 / Agent 指南)写进
DESIGN.md - 格式:YAML Front Matter + Markdown 正文,机器可读 + 人类可读
- 生态:awesome-design-md 70+ 品牌(9.6 万 Star)+ getdesign.md 索引站 + Chrome 扩展 逆向竞品 + webdesignhot 403 个 CLI 模板
- 本质:和
AGENTS.md平行的"视觉约束文件" - 局限:直接套别人的设计只适合原型 / 内部工具,自有品牌仍得手写
AI 写前端为什么总跑偏
让 AI 写前端最憋屈的体验是这个:
第一版按钮用了
#5e6ad2、圆角 8px、padding 12px 16px;让 AI 接着写个卡片——好家伙,颜色变成#3b82f6、圆角变成 6px、padding 变成 10px 14px。
每个组件都"有自己的想法",整套 UI 像七个设计师各自为政的拼接。截图给同事看,对方会问:"这是哪个产品的页面?"
根因其实很清楚——AI 没有持久的设计认知。每次新组件从零生成,prompt 里又没强调,颜色 / 间距 / 字体就只能"凭感觉"猜,每次感觉都不一样。
传统 workaround 全都失效:
| 做法 | 结果 |
|---|---|
| 在 prompt 里反复强调"用 #5e6ad2、圆角 8px" | 太啰嗦,第二屏组件又开始漂 |
| 贴 Figma 链接 | Agent 抓不下完整 token,只能识别像素 |
| 写一堆 CSS variables | 代码层面统一了,但 AI 不会主动用 |
| 截图 + "照着这个写" | 组件一多就视觉漂移,间距对不上 |
缺的不是约束,是 一个 Agent 能持续读取的设计知识源。
DESIGN.md 是什么
Google Labs 提出的 DESIGN.md 就是为了填这个坑。它是 Google Stitch AI 设计工具的输出格式之一——Stitch 生成 UI 的同时会产出 design.md,专门给 AI Coding Agent 读。
文件就放在项目根目录(和 AGENTS.md / CLAUDE.md 同级),结构是双层:
- YAML 部分:机器读的精确 token——颜色十六进制、字号像素、间距 4/8 倍数、圆角数值
- Markdown 部分:人写的 rationale——为什么用这个主色、按钮 padding 在密集场景下要不要收紧、什么时候用 elevated / outlined 而非 filled
Agent 写组件时,两层都拿得到:YAML 给出精确数值,Markdown 给出判断逻辑。两边都不会在 prompt 里丢。
一份 DESIGN.md 长什么样
VoltAgent/awesome-design-md 收录的版本把 DESIGN.md 拆成 9 大模块,结构高度标准:
- Visual Theme & Atmosphere — 视觉主题(极简 / 工业 / 友好 / 严肃)和整体氛围
- Color Palette & Roles — 主色 / 辅助色 / 语义色 / 中性色,每个色都标注使用角色
- Typography Rules — 字体家族、字号阶梯、行高、字重映射
- Component Stylings — 按钮 / 输入框 / 卡片 / 标签等基础组件样式
- Layout Principles — 栅格、间距系统(4 / 8 / 16px 基准)、对齐规则
- Depth & Elevation — 阴影层级、毛玻璃、z-index 规范
- Do's and Don'ts — 明确禁用项("不要用纯黑"、"按钮高度不要超过 56px")
- Responsive Behavior — 断点、栅格塌陷规则、字号缩放
- Agent Prompt Guide — 给 AI 的专属使用提示,告诉它何时调用哪个 token
一份 Claude 风格的 DESIGN.md 大概长这样:
---
version: 1
name: Claude
description: Anthropic Claude 官方风格
tokens:
colors:
primary: "#cc785c"
bg: "#faf9f5"
text: "#262624"
fonts:
sans: "Inter, system-ui"
serif: "Tiempos Headline"
spacing: [4, 8, 12, 16, 24, 32, 48]
radius:
button: 8px
card: 12px
---
# Claude Design System
## Visual Theme
温暖米色背景 + 砖橘主色 + Tiempos 衬线大标题,整体偏编辑感、
偏长内容阅读,避免高饱和和冷色调。
## Do's and Don'ts
- DO 用 8px 网格系统,所有间距从 4/8/12/16/24/32/48 取
- DO 按钮主色用 `#cc785c`,hover 时降低 8% 亮度
- DON'T 不要用纯黑文字,统一用 `#262624` 这种偏暖的深灰
- DON'T 不要在卡片上加 box-shadow,Claude 风格用 1px 边框分层
Agent 读到这个,写出来的按钮会自动用 #cc785c 和 8px 圆角;写卡片会自动避开 box-shadow。
一键复刻大厂设计
最爽的不是自己写 DESIGN.md,是直接拿现成的。四个来源:
路径一:awesome-design-md 仓库
目前最成熟的选择。VoltAgent/awesome-design-md 收录了 70+ 知名品牌的 DESIGN.md——Apple、Stripe、Nike、Linear、Notion、Anthropic Claude、GitHub 等都齐了,目前 9.6 万 Star。每个文件严格按 9 大模块组织,配套 preview.html / preview-dark.html 两个预览页。
# 在仓库 sites/<品牌名>/ 下找到 DESIGN.md,下载到项目根目录
# 配套还有 preview.html(亮色)和 preview-dark.html(暗色)两个预览页
# 打开 cursor / claude code,告诉 Agent
"参考 DESIGN.md 设计规则,帮我生成一个 SaaS 落地页"
比如用 Apple 风格生成的 SaaS 落地页,跟"随便生成的"对比,每个维度都拉开差距。适合