2026 年,你项目里最重要的设计文件不再是 Figma 组件库,而是代码仓库根目录下一个叫 design.md 的 Markdown 文件。
如果你的团队还没写这个文件,你指向代码库的每一个 AI Agent——Cursor、Claude Code、Codex、v0、Windsurf——都在默认生成风格不统一的 UI。它们在读的是能找到的最接近的规则。没有 design.md,它们就默认用"Tailwind 通用后台"。
从 claude.md 到 design.md
这个模式是从 Claude Code 的 CLAUDE.md 开始的。Anthropic 让 Claude Code 每次 prompt 前都读这个文件。然后 Cursor 加了 .cursorrules,Windsurf 加了 .windsurfrules,OpenAI 给 Codex 标准化了 AGENTS.md。最后开源社区把它们合并成了一个共享约定。
底层逻辑一致:Agent 不需要 JSON schema 或编译后的配置,需要的是一个人类可读、模型可解析的文档。Markdown 是同时满足两者的最便宜、最持久的方式。
两个文件,最少
CLAUDE.md(项目级大脑):声音语调、受众、商业模式、文件结构、技术栈约定、Agent 应该拒绝什么。
design.md(视觉大脑):设计 token、组件规范、布局规则、可访问性约束、品牌看起来是什么样的。
大团队分开管,小团队可以合并。分开的好处是设计师可以单独维护 design.md,不需要碰项目级的认知文件。
design.md 写什么(五节)
1. Brand Line(三行) 品牌名、声音风格、"Avoid"清单。最后这个最有价值——"避免渐变、玻璃拟态、通用 SaaS 紫色、霓虹、投影",一句话比一堆正向规则更有约束力。
2. Color Tokens 语义化颜色名 + 规则。示例:
- bg: #FAFAF7(暖白,页面默认背景)
- accent: #C45A3D(赤陶色,少量使用)
- 规则:不要用纯黑,用 #111111;不要用纯白做页面背景;每屏 accent 元素最多一个。
3. Typography Scale 字体、行高、字重、字号的具体值。不要"Figma 里的 H1 样式"这种说法——写下实际数字,Agent 读不了 Figma。
4. Components 组件名 + 解剖学 + 状态 + 变体。格式是:名、尺寸/间距/圆角/边框、状态(default/hover/focus/disabled)、变体(primary/secondary/ghost)。
5. Accessibility & Dark Mode WCAG 2.1 AA 对比度最低要求、44px 最小点击区域、颜色永远不能作为唯一信号。Dark mode 规则:只反转 bg 和 text token,其他不变。
六个常踩的坑
- 文件写太长。 超过两页的 design.md 是负担,Agent 会失去焦点。只留"承重"的规则。
- 把品牌语调写进 design.md。 语调属于 CLAUDE.md,design.md 只管视觉。
- 复制 Figma 样式而不写意图。 "用 Figma 里的 H1 样式"对 Agent 没用,它打不开 Figma。写实际值。
- 跳过"避免"清单。 负面约束比正向约束更锋利。"不要用渐变"比"用纯色"更有效。
- 不提交到 git。 没人 review 的 design.md 会像没人 review 的组件库一样漂移。
- 只有一个文件。 品牌演进时,单文件会变成合并噩梦。超过两页就拆分。
设计系统的新范式
传统流程:设计系统住在 Figma,工程师翻译成代码。翻译总是有损的。
2026 年的流程:设计系统住在代码里,Figma 只是查看器。design.md 是 source of truth,每个 Agent 读它,每个组件遵守它,每个页面的 token 都正确因为 token 是输入,不是输出。
这是十年来设计 ops 最安静但最大的变化。大多数团队还没注意到。注意到并在跑的团队,交付的产品一致性更高、速度更快。差距会复合。
今晚就可以试:
- 建一个空文件夹
- 按上面的框架写一个 design.md,花四十分钟
- 在那个文件夹里打开 Claude Code 或 Cursor
- 输入"用 design.md 里的规则给我建一个设置页面"
- 看输出
第一次就会是品牌风格的 90%。不是因为 Agent 突然变强了——是因为你终于把自己的品味写清楚了。