cat README.md
design.md
我做了三个月的 AI 编码评测,最大的挫败不是 Claude Code 写不出代码,是它每次生成的界面风格像十个不同的人做的。直到我拆完 Google Labs 的 design.md,才发现——问题不在模型能力,在于我们从来没给 AI 立过视觉规矩。
// 目录
// 概览
为什么 AI 写代码最大的痛点不在「不会写」
我每天用 Claude Code 做评测文章的 HTML 生成。同一个项目,同一个 Hermes Cyber Terminal 主题,第一页和第十页的按钮圆角不一样,配色偏移到离谱,字体字号每次都在猜。我不是没试过——我在 prompt 里反复写「主色 #7ed3a4,字号 15px,圆角 8px」,但 AI 的上下文窗口一滑动,这些细节就蒸发了。
这不是模型能力的问题。模型完全知道怎么写 CSS。问题是我们从来没给它一个持久的设计规矩文件,让它每次生成都有参照,而不是从头猜。
这就跟团队里没有设计规范一样——十个工程师各写各的 CSS,出来的产品当然是十个样子。AGENTS.md 解决了代码层的规矩,DESIGN.md 解决的是设计层的规矩。
我的判断:design.md 不只是一个 Markdown 格式规范,它是 AI 编码时代的设计基础设施层。它把「给 AI 立视觉规矩」这件事从临时 prompt 变成了持久规范文件。这不是工具升级,是方法论升级。
双层结构:YAML 给机器值,Prose 给机器意图
DESIGN.md 的核心创新不在格式本身——YAML front matter 加 Markdown body,这个结构很朴素。创新在于它同时传递两种信息:Token 层告诉 Agent 精确数值(颜色 #1A1C1E,字号 3rem),Prose 层告诉 Agent 这些数值为什么存在、什么时候用、什么时候不该用。
传统 design token 只传值:`--primary: #4285F4`。Agent 拿到一个蓝色值,但它不知道这个蓝色是做按钮的,还是做标题的,还是做警告色的。结果就是 Agent 随机选择,一页一个风格。
DESIGN.md 传的是意图:`--color-brand-primary: 用于主要按钮和链接,传达品牌核心色调`。Agent 拿到的不是十六进制值,是「这个颜色是做什么的」。这从「猜」变成了「查」。
这段 Prose 里最关键的一句不是颜色值,是 "Boston Clay — the sole driver for interaction"。这句话告诉 Agent:这个红色只用在交互元素上,不是随便哪个地方都能用。Agent 以后就不会把品牌色刷在标题上。
CLI 工具链:lint、diff、export、spec 四个命令
光有格式还不够,design.md 附带了一套完整的 CLI 工具链:lint 验证结构 + diff 检测回归 + export 转换格式 + spec 输出规范。这四个命令把 DESIGN.md 从「写完就扔」变成了「可验证、可追踪、可转换」的工程资产。
lint 是我最看重的命令。九条 linting 规则,覆盖从最基本的 broken-ref(token 引用不存在)到 contrast-ratio(WCAG 对比度检查)。这意味着你写完 DESIGN.md 之后,不需要人肉检查配色对比度,一条命令就能告诉 Agent 哪些地方不合规。
diff 命令对比两个版本的 DESIGN.md,检测 token 级别和 prose 级别的回归。如果 v2 比 v1 多了 error 或 warning,diff 返回 exit code 1——你可以直接把这个放在 CI 里。
export 支持四种输出格式:Tailwind v3 config (JSON)、Tailwind v4 theme (CSS)、DTCG tokens (W3C 标准)、以及 Tailwind 别名。这意味着 DESIGN.md 写一次,可以同时喂给 Tailwind 项目、W3C 标准工具链和任何接受 DTCG 的设计系统平台。
spec 命令输出完整的规范文本——你可以直接把这个丢进 Agent 的上下文里,让它理解 DESIGN.md 的全部规则表。
设计哲学:Prose 才是灵魂,不是 Token
PHILOSOPHY.md 是这个项目最被低估的文件。它不只解释了 DESIGN.md 怎么用,它解释了为什么这么用。三条核心哲学,每一条都值得独立拿出来说。
第一条:Prose 是灵魂,Token 是配角。PHILOSOPHY.md 开篇就说:"The quality of a generated design is determined less by the precision of its values than by how clearly the intent is described."翻译过来:生成质量不取决于数值多精确,取决于意图多清晰。这句话直接否定了传统 design token 的核心假设——精确值就是一切。
第二条:具体引用胜过形容词堆砌。"A 1970s graduate lecture handout in the tradition of an old and established university" 比 "Modern, clean, trustworthy, premium" 信息量大十倍。前者让模型知道:单色墨水、大留白、阅读字号、无装饰。后者让模型在四个形容词的中心区域取值,输出必然是通用的。
第三条:负面约束定义性格。Do's and Don'ts 不是可有可无的装饰——它是性格的定义。"Don't add a hero moment"、"Don't use Bold anywhere"、"Don't introduce dark mode"——这些 Don't 比 Do 更有力量,因为它们框住了 AI 最容易犯的错。
看到 "not a magazine cover" 和 "the Substack register" 这两个否定类比了吗?这比写一百条 CSS 规则更有效。因为模型知道「杂志封面」长什么样,知道「Substack 风格」长什么样,它自然就不会往那个方向走。
// 架构:DESIGN.md 如何让 AI 从猜变成查
// 竞品对比:谁在做 AI 设计规矩这件事
| 项目 | 定位 | 核心思路 | 优劣 |
|---|---|---|---|
| design.md | Google Labs | 规范层 | YAML Token + Prose 意图 + CLI 验证 + 多格式导出 | ✅ 双层结构语义 ✅ WCAG lint ✅ Stitch MCP 生态 ❌ Alpha ❌ 仅规范不生成代码 |
| awesome-design-md | VoltAgent | 资产库 | 54 家公司品牌规范的 DESIGN.md 模板集合 | ✅ 丰富模板 ✅ 即拿即用 ❌ 非官方维护 ❌ 部分模板质量不均 |
| AGENTS.md | 社区共识 | 代码层 | 给 AI Coding Agent 传递编码规矩 | ✅ 解决「怎么做」 ✅ 已有广泛共识 ❌ 只管代码不管设计 |
| Figma Design Tokens | Figma | 值层 | JSON/YAML 格式传递精确设计值 | ✅ 精确值 ✅ Figma 生态 ❌ 无语义层 ❌ 无 Prose ❌ Agent 需猜意图 |
| W3C DTCG | W3C 标准 | 格式层 | 标准化的设计 token JSON 格式 | ✅ 国际标准 ✅ 工具兼容 ❌ 纯值层无意图 ❌ 复杂层级结构 ❌ Agent 不易理解 |
| Stitch | Google Labs | 生成层 | AI 原生 UI 设计画布 + DESIGN.md 导入导出 | ✅ 设计到代码闭环 ✅ MCP 接 Claude Code ❌ 仍在 Labs ❌ 不支持 React/Vue 导出 |
| v0.dev | Vercel | 生成层 | 对话式 UI 生成,React/Next.js 优先 | ✅ React 生态 ✅ 快速迭代 ❌ 无持久设计规范 ❌ 风格一致性差 |
关键对比维度:是否传意图(不只是传值)| 是否可验证 | 是否跨工具链流通 | 是否有社区生态
// 社区生态:designmd.ai 和 54 家品牌规范
design.md 最大的护城河不在规范本身——规范可以被复制。护城河在于它已经跑通了社区生态。designmd.ai 上有数百个免费的 DESIGN.md 设计系统,用户可以搜索、下载、直接丢进项目。热门的 Genesis 已经有 5.7k 下载、Flip7 Card Game 有 3k。
更关键的是 VoltAgent 的 awesome-design-md 仓库——54 家真实公司的品牌规范被做成了 DESIGN.md 格式。Claude、Linear、Stripe、Notion、Apple、Vercel,每个都包含核心 DESIGN.md + 亮暗两版交互文件。你不用从零开始写,找到你喜欢的品牌风格,下载,改几个 token 值,就变成你自己的了。
这种「即拿即用」的体验是传统 design token 体系做不到的。Figma 的 Design Tokens 提供精确值,但你得自己建立语义层。W3C DTCG 提供标准格式,但 Agent 拿到一坨 JSON 根本读不懂意图。DESIGN.md 是第一个让 Agent 真正能消费设计规范的格式。
// 数据指标
跟我在做的事有什么关系
我每天做 GitHub AI 项目深度评测,用 Claude Code 生成 Hermes Cyber Terminal 风格的 HTML。最大的痛点就是风格一致性——同一天生成的两篇评测,按钮圆角、配色偏移、字号不一致。我试过在 prompt 里反复写设计规矩,但上下文一滑动就蒸发。
DESIGN.md 给了我一个新思路:我不需要在 prompt 里反复说设计规矩,我需要把规矩写成一份持久文件。以后每次生成,先让 Agent 读 DESIGN.md,再开始写 HTML。这是从「每次重复 prompt」到「一次规范持久生效」的效率跃升。
更具体的启发有三点:
第一,Prose 层的「否定类比」思路。以后写评测模板的 DESIGN.md,我不会只写「主色 #7ed3a4」,我会写「主色 #7ed3a4 是终端终端操作指令色——不是标题色,不是正文色,不是装饰色」。一句话框住用途,比十条 CSS 规则更有效。
第二,Lint 命令可以加进评测自动化流程。生成完 HTML 之后,跑一遍 lint 检查配色对比度、token 引用完整性。这比人肉检查快十倍。
第三,DESIGN.md 的社区模板思路对评测文章也成立。54 家品牌规范即拿即用——我可以把 Hermes Cyber Terminal 的设计规矩做成一份 DESIGN.md,以后所有评测文章直接继承,不用每次重新定义。
// verdict
✅ 9 条 lint 规则 + WCAG 对比度检查——设计系统第一次有工程验证
✅ 4 种 export 格式——一次编写,Tailwind/W3C/CSS 全通
✅ designmd.ai + awesome-design-md 生态——54 品牌即拿即用
✅ PHILOSOPHY.md 的三条哲学价值超过所有 CLI 命令
✅ Stitch MCP 连 Claude Code/Cursor——设计规矩能跨工具链流通
✅ Google Labs 出品 + Apache 2.0——品牌背书 + 开放许可
❌ Bus Factor ≈ 2(davideast 15/35 = 43%,xkxx 17%)——核心贡献者偏集中
❌ 仅规范层,不生成代码——需要配合 Stitch/Claude Code 才能闭环
❌ Windows 上 CLI 有坑(design.md 扩展名与 Markdown 文件关联冲突)
❌ 社区模板质量不均——部分模板 Prose 层过于简略
❌ Token Schema 暂不支持 motion/elevation/iconography——扩展性待完善
// links
GitHub: google-labs-code/design.md — 项目仓库
designmd.ai — 社区设计系统库
Stitch Docs: DESIGN.md — Stitch 官方文档
Google Blog: DESIGN.md 开源公告 — 2026-04-21
PHILOSOPHY.md — 设计哲学文档(必读)
SOTA: Google 开源 DESIGN.md — 语义层分析
YouMind: DESIGN.md 最被低估的功能 — Figma 股价下跌 8.8%