如何将 Google Stitch 的 Design.md 文件与 Claude Code 结合使用,以实现一致的 UI

让 AI 写前端有个老问题:生成按钮颜色对,再生成卡片颜色又变了。不是能力问题,是它每次都在重新猜你的设计系统。

作者:小互 AI 小教程04-04 · 6 分钟⚑ 方法教程
AI 实操 · 实操库
一分钟速览
  • 病根说得很准:AI 写界面「飘」,是因为没有一份它能读的设计规范。
  • DESIGN.md 就是那份规范,把设计系统写成文件而不是留在脑子里。
  • 颜色、字体、间距刻度、组件,四块内容构成完整的设计约束。
  • 有了这份文件,每次生成都从同一个基准出发,一致性自然出来。
  • 这个思路跟具体工具关系不大,换别的 AI 编程工具照样能用。

用 AI 写前端代码有一个老问题没人认真解决过:你让 Claude Code 生成按钮,颜色是对的;再让它生成卡片,颜色又不一样了。不是 AI 能力的问题,是它每次都在从头猜你的设计系统。

Google Stitch 最近推出的 DESIGN.md 把这件事想清楚了。

为什么 AI 写界面总是"飘"

让 Claude Code 生成一个登录页,它会自己决定主色是 #3B82F6 还是 #6366F1,按钮圆角是 4px 还是 8px,正文字体是 Inter 还是系统默认。没有人告诉它,它只能猜。

换一个 prompt,猜出来的结果就不一样了。多写几个组件之后,整个项目的视觉风格七零八落。

传统解法是在每次 prompt 里把规范描述一遍:"主色 #1A73E8,Inter 字体,按钮圆角 8px……"。这很麻烦,而且写得越长越容易被模型忽略一部分。

DESIGN.md 的思路是把这些规范写进一个文件,让 Claude Code 持久引用,而不是每次口述。

DESIGN.md 是什么

Google Stitch 是 Google Labs 旗下的 AI UI 设计工具,输入自然语言或图片就能生成移动端和网页界面,并导出前端代码。

2026 年 3 月,Stitch 完成了一次大版本重设计,从"提示词生成 UI"升级成 AI 原生设计画布。最值得关注的是一个新概念:DESIGN.md,一个让 AI Coding Agent 直接读取你的设计规范的 markdown 文件。

让 AI Coding Agent 直接读懂你的设计规范。

这篇文章从头到尾讲清楚怎么做。

DESIGN.md 就是一个普通的 markdown 文件,它把你整个项目的设计系统写进去,颜色、字体、间距、组件样式全在里面。任何 AI Coding Agent,包括 Claude Code、Cursor、Gemini CLI,都可以直接读取,不需要你在每个 prompt 里重复描述规范。

用一个类比来说,Claude.md 告诉 Claude 怎么构建项目,DESIGN.md 告诉 Agent 界面应该长什么样。

DESIGN.md 里有什么

文件内容结构

一个完整的 DESIGN.md 包括以下部分:

  • 颜色系统:主色、辅色、强调色的精确 hex 值,以及语义色(Success/Error/Warning 等)
  • 字体规格:字族、字重、H1-H6 到 body/caption 的字号映射、行高、字间距
  • 间距比例:基础单位(通常 4px 或 8px),以及 xs/sm/md/lg/xl/2xl 的具体像素值
  • 布局规则:容器最大宽度、栅格列数、响应式断点
  • 组件样式:按钮、输入框、卡片、导航的视觉规格,包含 hover/focus/disabled 各状态
  • 圆角和阴影:各组件的圆角值、阴影层级定义

DESIGN.md 是普通文本,可以用任何编辑器打开,可以纳入 Git 版本管理,支持 PR 审查,跟代码文件一样对待。

一份完整的 DESIGN.md 大概长这样:

markdown

# Design System

## Colors
- Primary: #1A73E8
- Primary Dark: #1557B0
- Surface: #FFFFFF
- Background: #F8F9FA
- Error: #D93025
- Success: #188038
- Text Primary: #202124
- Text Secondary: #5F6368
- Border: #DADCE0

## Typography
Font Family: Google Sans, Roboto, sans-serif

| Token    | Size  | Weight | Line Height |
|----------|-------|--------|-------------|
| heading-1 | 32px | 400    | 40px        |
| heading-2 | 24px | 400    | 32px        |
| body      | 14px | 400    | 20px        |
| caption   | 12px | 400    | 16px        |

## Spacing Scale
Base unit: 8px
xs: 4px | sm: 8px | md: 16px | lg: 24px | xl: 32px | 2xl: 48px

## Components

### Button
- Border radius: 4px
- Padding: 8px 24px
- States: hover (darken 8%), disabled (opacity 38%)

### Card
- Border radius: 8px
- Border: 1px solid #DADCE0
- Padding: 16px
- Shadow: 0 1px 2px rgba(0,0,0,0.1)

颜色用精确 hex,字体有完整的字号层级,间距有具体像素值,组件有各状态的视觉规格。AI 读到这些,生成组件时就有明确的约束可以遵循。

第一步:拿到一个 DESIGN.md

有三种方式。

方式一:从 Google Stitch 生成

在 stitch.withgoogle.com 描述你的产品,生成 UI 设计之后直接导出 DESIGN.md。这是最完整的方式,生成的文件会包含 Stitch 帮你梳理出的完整设计系统。

方式二:从任意 URL 提取

在 Stitch 里输入一个 URL,它会从页面的 CSS 里提取颜色、字体、间距,自动生成对应的 DESIGN.md。想做 Stripe 风格的界面,直接丢 stripe.com 进去就能拿到文件。

方式三:用现成的

社区项目 awesome-design-md 收录了 30 多个知名产品的 DESIGN.md 文件,包括 Stripe、Linear、Vercel、Notion、Figma、Cursor、Supabase 等,直接复制用。每套文件还附带 preview.html,可以预览完整的设计风格。

第二步:配置 CLAUDE.md

Claude Code 每次启动会自动读取项目根目录的 CLAUDE.md 作为持久上下文。在这里告诉它 DESIGN.md 的存在以及如何使用。

在 CLAUDE.md 里加上这一段:

markdown

## Design System

This project uses a design system defined in `design.md` at the project root.
Always refer to this file when generating or modifying any UI component.

Rules:
- Use ONLY colors, fonts, and spacing values defined in design.md
- Do not invent new values or use framework defaults
- Implement all interactive states (hover, focus, active, disabled) per design.md
- Follow the typographic scale and weight assignments in design.md
- When in doubt, refer to design.md before making any visual decision

## Stack
- Framework: Next.js 14 (App Router)
- Styling: Tailwind CSS with custom config
- Components: Custom components

后面的 Stack 部分按你的实际情况填,框架、样式方案、组件库都写清楚。

注意最后那条 "When in doubt, refer to design.md before making any visual decision",明确授权 Claude Code 遇到不确定时主动查文件,而不是自己猜。

第三步:验证它真的在读

配好之后,先做一个验证,在 Claude Code 里问:

"这个项目的主色是什么?"

它应该返回 design.md 里的精确 hex 值,而不是说不知道或者给出一个随机颜色。如果不对,检查 CLAUDE.md 的路径引用和措辞是否够明确。

第四步:生成组件

现在可以开始写组件了。每个 prompt 里明确点名设计系统:

"参照 design.md 中的设计系统,创建一个 primary 按钮组件,包含 hover、focus 和 disabled 状态。"

"按照项目设计规范,构建一个用户信息卡片,包含头像、姓名、邮箱和状态标签。"

"用 design.md 里定义的颜色和间距,实现一个侧边栏导航组件,包含图标和文字标签。"

即便 CLAUDE.md 里已经有说明,在 prompt 里再提一次,生成结果会更稳定。

额外技巧:把 token 写进 Tailwind 配置

如果你用 Tailwind CSS,有一步额外操作值得做,让 Claude Code 把 design.md 里的所有 token 映射到 tailwind.config.js:

"读取 design.md,生成一个 tailwind.config.js,把所有颜色、间距和字体值映射为 Tailwind 自定义 token。"

生成结果大概长这样:

javascript  ``javascript ``

module.exports = {
  theme: {
    extend: {
      colors: {
        primary: '#1A73E8',
        'primary-dark': '#1557B0',
        surface: '#FFFFFF',
        background: '#F8F9FA',
        error: '#D93025',
        success: '#188038',
      },
      fontFamily: {
        sans: ['Google Sans', 'Roboto', 'sans-serif'],
      },
      spacing: {
        xs: '4px',
        sm: '8px',
        md: '16px',
        lg: '24px',
        xl: '32px',
        '2xl': '48px',
      },
      borderRadius: {
        button: '4px',
        card: '8px',
      },
    },
  },
}

这相当于加了一层双重保险。即便某次 prompt 写得不够精确,Tailwind 的 utility class 本身只包含你的 token,不会跑偏到框架默认值上。

怎么发现风格漂移

写了一批组件之后,让 Claude Code 做一次检查:

"检查 /components 目录下的组件,找出使用了 design.md 未定义的颜色、间距或字体值的地方,列出来。"

它会扫描文件,找出不符合规范的值。早发现早修,比让问题积累到整个项目都需要统一补救要省事得多。

几个常见错误

DESIGN.md 没有提前完善就导出

Stitch 导出的文件质量取决于你的设计做得多完整。设计刚起步就导出,文件里会有大量占位颜色和默认值,Claude Code 读到的就是这些默认值。先在 Stitch 里把设计迭代到比较成熟,再导出。

CLAUDE.md 只提到文件存在,没说怎么用

"本项目有 design.md" 和 "生成任何 UI 时必须参照 design.md,不得使用文件外的值" 是两种不同的指令效果。措辞要明确,约束要清晰。

只在第一次提设计系统,后续 prompt 不再提

CLAUDE.md 提供的是背景上下文,不是强制执行的规则。在重要的 prompt 里主动提一句,比依赖上下文隐性生效更可靠。

写了新组件但忘记更新 design.md

设计系统会随着产品演进。新加了一个颜色变量、调整了一个间距值,都要同步更新 design.md 并提交到版本管理。下次开新 session,Claude Code 读到的才是最新的规范。

小结

整个工作流就四个文件,各司其职:

先从一种组件开始验证,比如只做按钮,确认颜色、字重、圆角都对了,再推广到整个组件库。

DESIGN.md 本身还很新,但背后的逻辑很简单:给 AI 一个它能读的设计规范文件,比每次靠口述更可靠。

社区资源:awesome-design-md

社区已经出现了开源项目 awesome-design-md,收录了 31 个知名产品的现成 DESIGN.md 文件,包括 Stripe、Vercel、Linear、Notion、Figma、Cursor、Claude、xAI、Supabase 等。每套文件附带 preview.html 和 preview-dark.html,可以预览配色和组件样式。

把对应的 DESIGN.md 复制进项目根目录,配好 CLAUDE.md 就能用。想做 Linear 质感的界面,不需要自己从头分析它的设计规范。

相关资源:

来源
小互 AI 小教程小互 AI 小教程
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。