RepoDaily · 2026-06-25 · Open Source

DESIGN.md:专为 AI 编程代理打造的设计系统格式规范

#11 Library / Framework TypeScript +504 google-labs-code/design.md 打开仓库

Google Labs 推出的 DESIGN.md 将 YAML 设计令牌与 Markdown 设计理念结合,让 AI 编程代理能够以机器级精度读取、应用并校验品牌的视觉识别体系。

项目类型库 / 框架
最适合使用 AI 编程代理的团队,希望代理在生成 UI 时始终保持设计系统一致性
风险等级中等
评估时间30 分钟

核心问题: 我们是否应该采用基于 Markdown 的设计令牌格式,为编程代理提供视觉识别的唯一可信来源?

84/100

RepoDaily 采用评分

RepoDaily 将该项目的采用分评为 84/100(强):分数来自文章来源、安装路径、生产风险、差异化、许可证清晰度以及 AI/Agent 适配度。

基于 RepoDaily 来源和采用说明的方向性评分,不是基准测试。风险: 中
81证据质量

包含 4 个来源、覆盖 3 类来源;如有 RepoDaily 独有模块,会进一步提高证据分。

97可安装/可试用性

检测到 5 个工作流步骤、5 个下一步动作,以及 2 个命令/安装信号。

64维护可信度

趋势热度为 +504 stars;如内容中有 release、issue 或维护信号,会提高维护可信度。

90生产准备度

采纳风险标记为 medium,并包含 4 条安全说明与 4 条跳过条件。

91差异化

3 个机会视角、4 个替代方案,以及 0 个类型化模块支撑差异化判断。

82许可证清晰度

文章中包含许可证来源或许可证表述。

78Agent / AI 适配度

文章正文和元数据中检测到 5 个 AI/Agent 相关信号。

项目概览

DESIGN.md 是来自 Google Labs 的开放格式规范和配套 CLI 工具集。它通过将机器可读的设计令牌(YAML 前置元数据)与人类可读的设计理念(Markdown 正文)结合,弥合了设计系统文档与 AI 辅助代码生成之间的鸿沟。令牌为代理提供精确的数值——颜色、字体、间距、圆角半径——而正文则告诉代理这些值存在的理由及如何应用。

项目以 TypeScript Monorepo 形式发布,提供 npm 包(@google/design.md),内置 lint、diff 和 export 命令。你可以将 DESIGN.md 文件与规范进行校验、比较两个版本以检测令牌级别的回归,以及将令牌导出为 Tailwind 配置 JSON、CSS 自定义属性或 W3C 设计令牌格式模块(DTCG)JSON 格式。

规范当前标注为 "alpha" 版本,意味着模式定义和行为可能还会变化。格式定义了八个有序的 Markdown 章节——Overview、Colors、Typography、Layout、Elevation & Depth、Shapes、Components 和 Do's and Don'ts——以及一个组件令牌系统,将命名 UI 元素映射到分组的属性,如 backgroundColor、textColor、rounded 和 padding。

解决什么问题

  • AI 编程代理生成的 UI 代码在多次迭代后很少能与项目的设计系统保持一致。
  • 设计令牌通常分散在 Figma 导出文件、CSS 变量和文档 Wiki 中——代理无法整体性地读取它们。
  • 没有规范性格式,就没有机器可检查的方式来校验设计描述的内部一致性(例如令牌引用是否可解析、对比度是否达标)。
  • 为代理版本化管理设计系统变更缺乏标准——当品牌调色板或字体比例演进时,没有标准 diff 工具来捕捉回归。

工作原理

  1. 编写 DESIGN.md 文件:YAML 前置元数据存储规范性设计令牌(colors、typography、rounded、spacing、components);Markdown 正文存储按有序 ## 章节组织的人类可读设计理念。
  2. 运行 lint 校验结构正确性,捕捉损坏的令牌引用,检查 WCAG 对比度,并以结构化 JSON 输出检测结果。发现错误时退出码为 1。
  3. 运行 diff 比较两个 DESIGN.md 版本,报告令牌级别的增加、删除、修改,以及是否发生了回归(后一文件的错误或警告更多)。
  4. 运行 export 以你选择的构建格式输出令牌:json-tailwind(Tailwind v3 theme.extend)、css-tailwind(Tailwind v4 @theme 块)或 dtcg(W3C 设计令牌格式模块 JSON)。
  5. 将 DESIGN.md 文件(或导出的令牌)作为持久上下文提供给 AI 编程代理,使其在生成 UI 代码时应用精确的数值和设计理念。

格式规范

  • 双层文件:YAML 前置元数据(令牌)+ Markdown 正文(设计理念)。
  • 令牌类型:Color(任意 CSS 颜色值)、Dimension(数值 + 单位)、Token Reference({path.to.token})、Typography(包含 fontFamily、fontSize、fontWeight、lineHeight、letterSpacing、fontFeature、fontVariation 的对象)。
  • 令牌模式区域:version、name、description、colors、typography、rounded、spacing、components。
  • 八个有序 Markdown 章节:Overview、Colors、Typography、Layout、Elevation & Depth、Shapes、Components、Do's and Don'ts。章节可省略,但已存在的章节必须按序出现。
  • 组件将名称映射到子令牌属性:backgroundColor、textColor、typography、rounded、padding、size、height、width。变体(hover、active)以关联键名的独立组件条目表示。
  • 明确定义了对未知内容的消费行为:未知章节保留不报错,未知令牌名若值有效则接受,重复章节标题会导致错误。

CLI 工具

  • 通过 npm install @google/design.md 安装,或直接使用 npx 运行。
  • lint 命令:校验 DESIGN.md 文件,以 JSON 输出检测结果,发现错误时退出码为 1。
  • diff 命令:比较两个 DESIGN.md 文件,报告令牌变更和回归状态,检测到回归时退出码为 1。
  • export 命令:输出 json-tailwind、css-tailwind、tailwind(别名)或 dtcg 格式的令牌。
  • spec 命令:输出 DESIGN.md 格式规范,适合将规范上下文注入代理提示词。
  • 所有命令接受文件路径或 - 表示标准输入。输出默认为 JSON。
  • Windows 注意:在 PowerShell 中使用 designmd 别名替代 design.md,以避免 .md 文件关联冲突。

谁适合关注

适合关注

  • 你的团队使用 AI 编程代理(Claude、Copilot、Cursor 等)生成前端代码,且在设计一致性上遇到困难。
  • 你维护着一套有明确令牌的设计系统,希望代理能直接消费的机器可读格式。
  • 你使用 Tailwind CSS,希望从单一可信来源自动生成主题配置。
  • 你需要在设计令牌校验流程中内嵌 WCAG 对比度检查。

可以先跳过

  • 你的项目没有 AI 辅助代码生成流程——标准的设计令牌管线(如 Style Dictionary)可能已足够。
  • 你需要稳定、有生产保障的格式——规范当前处于 alpha 版本,可能发生变化。
  • 你的团队不习惯在 Markdown 文件中使用 YAML 前置元数据,或已有可能与冲突的令牌管线。
  • 你需要超越 backgroundColor、textColor、typography、rounded、padding 和 size 属性的深度组件级设计规范。

风险与注意事项

格式设计精良且前景可期,但当前处于 alpha 成熟度,尚无确认的生产环境使用记录。采用价值取决于 AI 代理工具生态是否跟进支持。

  • 规范版本明确标注为 "alpha"——模式定义、章节顺序和令牌类型可能变化,尚无长期稳定性保证。
  • 核心价值主张依赖于 AI 编程代理实际读取并遵守 DESIGN.md 文件;源文档包中未确认代理层面的支持。
  • 组件属性覆盖范围有限(backgroundColor、textColor、typography、rounded、padding、size、height、width)——复杂设计系统可能超出模式容量。
  • Windows 用户面临已知的 CLI 命令名冲突,需要使用 designmd 别名作为变通方案。
  • 企业级 npm 注册表或镜像可能尚未同步 @google/design.md,导致 ENOVERSIONS 错误。
  • CLI 是从公共 npm 注册表安装的 Node.js/TypeScript 工具;在加入 CI 管线前请审查该包。
  • lint 和 diff 命令读取本地文件并输出 JSON——源文档包中未描述网络调用或遥测功能。
  • export 命令将令牌数据写入标准输出;在提交到代码仓库前请审查生成的文件。
  • 贡献代码需要签署 Google CLA 并遵循 Google 开源社区准则。

替代方案比较

方案适用场景代价
Style Dictionary
你需要一个成熟的、以转换为核心的设计令牌管线来生成平台特定输出,且不需要 AI 代理上下文。免费,开源
W3C 设计令牌格式模块(DTCG)
你希望直接使用新兴的 W3C 标准格式;DESIGN.md 实际上可以导出为 DTCG,因此两者是互补关系。免费,开放标准
Figma Tokens / Tokens Studio
你的设计令牌起源于 Figma,需要可视化令牌管理插件而非基于 Markdown 的规范。提供免费层;团队版为付费方案
你只需要 Tailwind 主题配置,不需要可移植的、代理可读的设计系统描述。免费,开源

这个趋势说明了什么

代理原生的设计文档

DESIGN.md 将自身定位为设计系统文档与 AI 代码生成之间缺失的层级。早期采用的团队可以为任何代理提供一致的品牌上下文,从而减少生成后的设计审查周期。

运行为期两周的冲刺:让代理分别在有和没有 DESIGN.md 文件的情况下生成 UI,然后比较设计 QA 的拒绝率。

设计令牌可移植性枢纽

export 命令使 DESIGN.md 成为一个中心枢纽,可输出 Tailwind JSON、Tailwind CSS 和 DTCG 格式。这使其成为驱动多个下游构建管线的单一可信来源候选方案。

将你现有的令牌集导出为全部三种格式,验证输出是否与当前手动维护的配置一致。

感知可达性的令牌校验

lint 命令以结构化 JSON 输出 WCAG 对比度检测结果,代理可以直接据此行动。这可以集成到 CI 中,阻止破坏可达性阈值的令牌变更。

将 npx @google/design.md lint 添加到 pre-commit 钩子或 CI 步骤中,检查它是否能捕捉到真实的对比度回归。

下一步建议

为当前项目起草一份 DESIGN.md

评估 DESIGN.md 最快的方式是为现有项目编写一份文件并通过 CLI 运行。这可以在一小时内同时测试格式的表达力和工具的实用性。

  1. 安装 CLI:npm install @google/design.md(或直接使用 npx)。
  2. 创建 DESIGN.md 文件,在 YAML 前置元数据中填入项目的 colors、typography 和 spacing 令牌,并添加简要的 Markdown Overview 章节。
  3. 运行 npx @google/design.md lint DESIGN.md 校验结构并检查 WCAG 对比度。
  4. 运行 npx @google/design.md export --format json-tailwind DESIGN.md 生成 Tailwind 主题配置,并与你当前的配置进行比较。
  5. 在下一次 UI 生成任务中将 DESIGN.md 文件作为上下文提供给 AI 编程代理,观察它是否正确应用了令牌。

RepoDaily 判断

DESIGN.md 解决了一个真实且恰逢其时的问题——为 AI 编程代理提供对设计系统的持久、结构化理解。格式简洁,CLI 实用,导出选项可接入实际工作流。主要注意点是 alpha 成熟度:可以采用它来探索和影响格式方向,但在稳定版本发布之前,请将模式定义视为可能变化的状态。

信息来源