Design.md:智能体专用设计文件
Design.md在一个AI代理可以读取并持续应用于整个代码库的Markdown文档中,捕捉你的整个设计系统——颜色、排版、间距、组件模式。
微信 ezpoda免费咨询:AI编程 | AI模型微调| AI私有化部署
AI工具导航 | ONNX模型库 | Tripo 3D | Meshy AI | ElevenLabs | KlingAI | ArtSpace | Phot.AI | InVideo
使用AI编写前端代码最令人沮丧的部分之一是,它很快就会忘记你的设计是什么样子。你在提示词中描述你的调色板,生成一个按钮组件,然后要求创建一个卡片——突然间,间距、颜色和字重都完全不同了。
问题不在于AI不擅长编写代码。问题在于,除非你给它一些结构化的东西来参考,否则AI编码代理对你的设计系统没有持久的认知。
Google Stitch的design.md文件就是为了解决这个问题而构建的。它在一个AI代理可以读取并持续应用于整个代码库的Markdown文档中,捕捉你的整个设计系统——颜色、排版、间距、组件模式。
本指南涵盖了design.md文件里面的内容,如何从Google Stitch获取它,以及如何将其与Claude Code连接起来,让你的生成UI从第一个组件到最后一个组件都保持在系统规范内。
1、Google Stitch实际做什么
Google Stitch是Google实验室推出的AI驱动设计工具,使用Gemini从文本描述或上传的参考图像生成UI设计。你描述你想要什么——"一个SaaS分析产品的仪表盘,外观干净、简约,使用深蓝色和白色调色板"——Stitch就会生成界面、组件和支持它们的完整设计系统。
Stitch与简单的模型生成器的区别在于它的输出格式。除了视觉设计之外,Stitch还生成一个design.md文件:一个纯文本文档,以结构化、机器可读的格式捕捉所有设计决策。
这不是偶然的。design.md格式是专门为被AI编码代理消费而设计的。想法是,你将这个文件交给任何编写代码的代理——Claude Code、Cursor、GitHub Copilot Workspace或自定义代理——它就拥有生成与你设计匹配的UI所需的一切,而不需要在每个提示词中详细说明规格。
为什么Markdown适用于设计系统
Markdown是纯文本。任何AI都可以原生读取它,不需要特殊的解析。它是可版本控制的,易于编辑,并且足够紧凑,可以在不占用太多空间的情况下放入上下文窗口。
设计token传统上存在于JSON文件中或专有工具内部。design.md方法更简单:人类和AI都能读取,不需要特殊工具,并且位于你的项目仓库中,与你的代码并排。
2、design.md文件里面有什么
Google Stitch生成的design.md文件本质上是以优化AI消费的格式编写的规格。一个典型的文件包括:
颜色系统
- 主要、次要和强调色,带有精确的十六进制值
- 中性色和灰度值
- 语义颜色分配(成功、错误、警告、信息)
- 背景和表面颜色
排版
- 字体家族(主要和次要)
- 字号比例:H1-H6标题大小、正文、小字、说明文字
- 系统中使用的字重
- 行高和字间距值
间距比例
- 基本单位(通常是4px或8px)
- 命名间距值——xs、sm、md、lg、xl、2xl——带有像素值
布局和网格
- 容器最大宽度
- 列网格规范
- 响应式断点
组件
- 常见元素的视觉模式:按钮、输入框、卡片、导航
- 交互状态——悬停、激活、禁用、聚焦
- 变体——主要、次要、幽灵、破坏性
边框半径和阴影
- 按组件类型划分的圆角值
- 盒子阴影定义和使用上下文
一个生成良好的design.md读起来几乎像人类设计师编写的规格。区别在于,它是专门为LLM能够可靠地解析和应用而结构化的。
3、开始之前你需要什么
在设置这个工作流之前,请准备好以下内容:
- Google Stitch访问权限 — 可通过Google Labs获得。只需要一个Google账户。
- 已安装Claude Code — Anthropic的基于终端的编码代理。通过npm安装:
npm install -g @anthropic-ai/claude-code。 - 一个前端项目 — React、Next.js、Vue、纯HTML/CSS — 该工作流适用于任何技术栈。
- Node.js — Claude Code运行所需。
你不需要了解CSS-in-JS或任何特定的组件库。Claude Code可以针对你的项目使用的任何样式方法——Tailwind、CSS Modules、纯CSS、styled-components。
4、完整工作流
4.1 在Google Stitch中生成你的设计
打开Google Stitch并描述你想要构建的UI。请具体说明:
- 产品类型("一个项目管理Web应用")
- 视觉风格("干净、简约、专业——深海军蓝和灰白色调色板")
- 你需要的界面或组件("仪表盘、侧边栏、数据表格、设置页面")
Stitch将生成UI模型和支持的设计系统。你还可以上传参考图像——现有产品的截图或粗略草图——如果你想让Stitch匹配特定的美学风格。
查看输出并迭代。你的design.md质量取决于Stitch设计的开发程度。在导出之前在这里花时间。
4.2 导出design.md文件
设计定稿后,从Google Stitch导出design.md。它将包含所有设计token和系统规范。
将其保存到项目目录的根目录为design.md。将其放在根目录可以确保Claude Code无论在哪个子目录工作都能找到它。
4.3 创建或更新你的CLAUDE.md文件
Claude Code读取项目根目录中名为CLAUDE.md的文件作为持久上下文。这在每次会话开始时加载,使其成为告诉Claude Code关于你设计系统的合适位置。
在项目根目录创建CLAUDE.md——或更新你已有的——包含类似以下内容:
# 项目上下文
## 设计系统
本项目使用定义在项目根目录`design.md`中的设计系统。
生成或修改任何UI组件时始终参考此文件。
- 仅使用design.md中定义的颜色、字体和间距值。
- 不要发明新值或使用任何框架的默认值。
- 将组件状态(悬停、聚焦、激活、禁用)与design.md中的模式匹配。
- 遵循design.md中的排版比例和字重分配。
## 技术栈
- 框架:Next.js 14(App Router)
- 样式:带自定义配置的Tailwind CSS
- 组件:自定义组件,不使用UI库
调整技术栈部分以匹配你的实际项目。关键部分是明确告诉Claude Code参考design.md且不要偏离它。
4.4 启动Claude Code会话
在项目根目录的终端中运行claude。Claude Code将加载你的CLAUDE.md,并在整个会话中携带这些指令。
通过询问验证它是否正在读取设计系统:"这个项目的design.md中定义的主色是什么?"它应该返回你的design.md中的确切十六进制值,而不是猜测。
4.5 生成组件
现在用plain language构建UI组件请求:
- "使用design.md中的设计系统构建一个主要按钮组件。"
- "创建一个定价卡片组件,遵循项目设计系统中定义的间距和排版。"
- "添加一个顶部导航栏,使用design.md中指定的颜色和字体。"
因为CLAUDE.md指向design.md,Claude Code每次都会引用该文件,而不是发明值。
4.6 审查和纠正
生成每个组件后,根据你的Stitch设计进行检查:
- 颜色值完全匹配(浏览器DevTools颜色选择器有帮助)
- 字体大小和字重正确
- 间距遵循design.md中的比例
- 交互状态已实现
如果有什么不对,直接纠正:"按钮背景与design.md中的主色不匹配。使用该文件中确切的十六进制值修复它。"
5、获得一致结果的技巧
5.1 在主要提示词中提及设计系统
即使加载了CLAUDE.md,在新组件的提示词中明确引用设计系统也有帮助。"使用design.md中的设计系统,构建一个用户资料卡片组件。"这能让模型的注意力锚定在规格上。
5.2 将design.md翻译到你的CSS框架配置中
如果你使用Tailwind,将你的design.md值翻译成tailwind.config.js。这创建了第二个强制执行层——即使提示词稍有偏离,Tailwind的工具类也会将输出限制在你实际的token值上。
让Claude Code一次性完成:
"读取design.md并生成一个tailwind.config.js,将所有颜色、间距和排版值映射到自定义Tailwind token。"
这个一次性步骤在之后生成的每个组件上都有回报。
5.3 运行定期一致性审计
构建一批组件后,让Claude Code检查偏差:"审查/components中的组件,找出任何使用design.md中未定义的颜色、间距或排版值的组件。"
这在问题积累成更大问题之前发现不一致。
5.4 将design.md提交到版本控制
像对待源代码一样对待design.md。将其提交到你的仓库,这样团队中的每个人都从相同的设计上下文工作。当设计演变时,更新文件并提交更改。
6、应避免常见错误
未将design.md提交到仓库如果文件只存在于你的本地机器上,其他开发者和未来会话将没有它。它必须是代码库的一部分。
技术栈变化时忘记更新CLAUDE.md如果你添加了新库、切换了样式方法或引入了组件框架,请更新CLAUDE.md以反映它。Claude Code的行为取决于该文件所说的内容。
假设Claude Code总会遵循设计系统而没有偏差它是一致的,但不是万无一失的。根据Stitch设计审查生成的组件可以及早发现偶尔的错误。
在导出前让Stitch设计保持模糊如果你在完全开发Stitch设计之前导出design.md,文件会有空白——占位符颜色、默认间距、缺失的组件状态。Claude Code只能用它有的内容工作。在导出之前彻底完善设计。
指向design.md而不说明如何使用它该文件提供上下文,而不是行为。你的CLAUDE.md应该告诉Claude Code如何使用design.md——而不仅仅是它存在。要明确:"始终使用这些值,永远不要偏离。"
7、常见问题
7.1 什么是Google Stitch的design.md文件?
design.md文件是Google Stitch在其UI设计旁边生成的结构化Markdown文档。它以AI编码代理可以读取和应用编写代码的格式,记录完整的设计系统——颜色、排版、间距、组件、视觉模式。它充当机器可读的设计规格。
7.2 我可以将design.md文件与Claude Code以外的AI编码工具一起使用吗?
可以。因为design.md是纯Markdown,任何接受文件上下文的AI编码工具都可以使用它。Cursor、Aider、GitHub Copilot Workspace,以及使用LangChain或CrewAI构建的自定义代理都可以引用该文件。CLAUDE.md机制是Claude Code特有的,但将AI编码代理指向设计系统文件的模式适用于任何LLM支持的工具。
7.3 如果我已有设计系统,Google Stitch还能工作吗?
Google Stitch主要用于从零开始生成新UI。如果你现有的设计系统在Figma或其他工具中,你有两个选择:将参考截图导入Stitch并让它推导匹配的设计系统,或手动编写记录你现有token的design.md。目前没有直接的Figma到design.md导出路径,尽管社区已开始朝这个方向构建工具。
7.4 当设计演变时,我如何保持design.md的最新?
返回Google Stitch,更新设计,然后重新导出design.md文件。替换项目中的旧文件并提交更新。Claude Code在每次会话开始时都会重新读取文件,因此它会自动使用新值。对于连接到此文件的MindStudio工作流,更新工作流的源引用以指向新版本。
7.5 这个工作流适用于React Native或移动开发吗?
概念可以转移,但需要一些调整。Claude Code可以使用design.md文件中的设计token生成React Native组件。然而,Google Stitch专注于Web UI,因此生成的规格将是面向Web的——你可能需要在使用它进行移动开发之前手动添加移动特定模式(安全区域处理、平台导航约定、触摸目标大小)。
7.6 如果Claude Code一直忽略design.md的部分内容,我该怎么办?
这通常可以追溯到模糊的CLAUDE.md指令或过于笼统的组件提示词。加强指令:"永远不要使用design.md中未明确定义的任何颜色、间距或字体值。"在组件提示词中,直接命名文件:"遵循design.md中的确切规格,构建一个次要按钮变体。"运行构建后审计也有助于识别偏差发生的位置,以便你可以收紧指令。
8、结束语
Google Stitch的design.md文件以机器可读的格式捕捉你的完整设计系统,无需在每个AI提示词中重新描述设计规格。
Claude Code的CLAUDE.md功能让你在项目级别嵌入持久的设计指令,因此每次会话都以加载的设计系统开始。
工作流是:在Stitch中生成 → 导出design.md → 添加到项目 → 配置CLAUDE.md → 使用Claude Code生成组件。
将design.md token翻译成你的CSS框架配置(Tailwind、CSS Modules)创建第二个一致性层,捕捉任何提示词级别的偏差。
这是目前可用于维护AI生成UI视觉一致性的最实用方法之一。从一种组件类型开始——按钮是一个好的测试用例——确认一致性保持,然后将其应用于你的完整组件库。
原文链接: How to Use Google Stitch's Design.md File with Claude Code for Consistent UI
汇智网翻译整理,转载请标明出处