~/reviews · design.md · 2026-06-27

cat README.md

design.md

我做了三个月的 AI 编码评测,最大的挫败不是 Claude Code 写不出代码,是它每次生成的界面风格像十个不同的人做的。直到我拆完 Google Labs 的 design.md,才发现——问题不在模型能力,在于我们从来没给 AI 立过视觉规矩。

Google Labs DESIGN.md 规范 AI Agent 设计系统 Stitch 生态 Alpha

// 目录

概览 痛点与判断 格式拆解 CLI 工具链 设计哲学 架构流程 竞品对比 社区与生态 跟我在做的事有什么关系 博主观点

// 概览

Stars
21,253
今日 +2,407 ⭐ | GitHub Trending AI 类涨幅第一
Forks
1,722
Fork/Star = 0.08 | 偏低但符合规范类项目特征
Open Issues
41
License: Apache 2.0 | Language: TypeScript | Status: Alpha
Created
2026-04-10
距今约 78 天 | Google Labs 出品
Last Push
06-15
12 天前 | 活跃维护
Contributors
17
davideast 15 + xkxx 6 + 15 外部贡献者

为什么 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 拿到的不是十六进制值,是「这个颜色是做什么的」。这从「猜」变成了「查」。

# === YAML Token Layer: 机器精确值 === --- name: Heritage colors: primary: "#1A1C1E" secondary: "#6C7278" tertiary: "#B8422E" neutral: "#F7F5F2" typography: h1: fontFamily: Public Sans fontSize: 3rem body-md: fontFamily: Public Sans fontSize: 1rem --- # === Markdown Prose Layer: 人类意图 === ## Overview Architectural Minimalism meets Journalistic Gravitas. The UI evokes a premium matte finish — a high-end broadsheet or contemporary gallery. ## Colors The palette is rooted in high-contrast neutrals and a single accent color. - Primary (#1A1C1E): Deep ink for headlines and core text. - Tertiary (#B8422E): "Boston Clay" — the sole driver for interaction. - Neutral (#F7F5F2): Warm limestone foundation, softer than pure white.

这段 Prose 里最关键的一句不是颜色值,是 "Boston Clay — the sole driver for interaction"。这句话告诉 Agent:这个红色只用在交互元素上,不是随便哪个地方都能用。Agent 以后就不会把品牌色刷在标题上。

designmd.ai 社区设计系统平台
designmd.ai — 社区驱动的 DESIGN.md 设计系统库,数百个免费品牌规范可直接下载使用

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 哪些地方不合规。

$ npx @google/design.md lint DESIGN.md // 输出结构化 JSON,Agent 可以直接消费 { "findings": [ { "severity": "warning", "path": "components.button-primary", "message": "textColor (#ffffff) on backgroundColor (#1A1C1E) has contrast ratio 15.42:1 — passes WCAG AA." } ], "summary": { "errors": 0, "warnings": 1, "info": 1 } }

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 最容易犯的错。

## Do's and Don'ts - Don't add a hero moment to the title page. A real handout title page is the first page of content, not a magazine cover. - Don't reach for an italic standfirst beneath a large title. That is the Substack register. - Don't use Bold. Anywhere. - Don't introduce dark mode, gradients, glows, glass surfaces, drop shadows, or rounded corners. - Do treat the handout as a printed object. The screen is the substrate; the design is the page. - Do let pages have visible white space. A page that ends two-thirds of the way down is correct, not under-filled.

看到 "not a magazine cover" 和 "the Substack register" 这两个否定类比了吗?这比写一百条 CSS 规则更有效。因为模型知道「杂志封面」长什么样,知道「Substack 风格」长什么样,它自然就不会往那个方向走。


// 架构:DESIGN.md 如何让 AI 从猜变成查

📝
DESIGN.mdYAML Tokens + Prose 意图
🔍
Lint & Parse9 条规则验证 + 结构化解析
🤖
AI AgentClaude Code / Cursor / Stitch
🎨
Consistent UI品牌一致 + WCAG 合规
DESIGN.md 不是「传值」,是「传意图」 → Agent 不再猜,而是查 → 10 页面 = 1 设计师

// 竞品对比:谁在做 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 真正能消费设计规范的格式

// 数据指标

Lint 规则数
9 条
Export 格式
4 种
社区模板数
54+ 品牌
Spec 章节数
8 章节
WCAG 验证
✅ AA 标准

跟我在做的事有什么关系

我每天做 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

VERDICT · 博主综合评分
8.7
方向 9.5 / 实用性 8.5 / 成熟度 7.5 / 生态 8.5
✅ 双层结构(Token + Prose)是 AI 设计规范的正确形态——传意图不只传值
✅ 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——品牌背书 + 开放许可
❌ Alpha 状态——格式可能变动,不适合生产项目重度依赖
❌ 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%