设计稿转代码我用过几轮,真正难的不是生成,而是设计稿本身不规范时怎么兜住,以及生成结果怎么验证。
Q1: Design to Code 的历史?为什么需要它?
1
2005-2012: 手动切图时代
设计师用 Photoshop 输出 PSD 文件,前端开发者手动量尺寸、取色值、写 CSS。一个 10 页面的设计稿,切图需要 2-3 天,像素还原度全靠经验和耐心。
2
2013-2017: Sketch + 标注工具
Sketch 取代 PS 成为主流设计工具,配合 Zeplin 等标注工具,开发者可以查看尺寸、色值、间距。但代码仍然需要手动编写,标注工具只解决了”量”的问题,没有解决”写”的问题。
3
2018-2023: Figma + Dev Mode
Figma 统一了设计协作市场。2023 年推出的 Dev Mode 让开发者可以直接在设计稿上查看 CSS 代码、导出资源、获取组件属性。但 Dev Mode 生成的代码是静态的 CSS 片段,不包含组件结构和交互逻辑。
4
2023-2024: AI 生成代码工具涌现
Vercel 推出 V0(文本生成 UI),Locofy 和 Anima 实现了 Figma 设计稿到 React/Vue 代码的一键转换。这些工具利用 AI 理解设计意图,生成可运行的组件代码,将”设计到代码”从手动劳动变成了自动化流程。
5
2025: Figma MCP 标准化协议
Figma 发布了官方 Dev Mode MCP Server,基于 Anthropic 提出的 Model Context Protocol,让 Claude、Cursor 等 AI 助手直接读取 Figma 设计文件,提取设计令牌、布局信息、组件结构,生成生产级代码。Design to Code 进入了协议标准化时代。
Design to Code 的本质是用 AI 和标准化协议消除设计与开发之间的手动转换环节,让设计师的稿子直接变成可运行的代码。
手动切图时代
设计师用 PS 画完稿子,导出 PSD 文件给前端。前端开发者打开 PS,用标尺量每个元素的尺寸、间距、色值,然后手写 CSS 还原。就像翻译官拿着一本纸质词典逐词翻译——能用,但慢、容易出错、改一次设计稿就要重新量一遍。
Figma MCP 时代
设计师在 Figma 里用 Auto Layout 画稿子,前端开发者用 AI 助手通过 MCP 协议直接读取设计文件,自动提取布局结构、颜色变量、字体样式,生成 React/Vue 组件代码。就像有了同声传译——设计稿一改,代码自动更新,不需要手动同步。
Q2: Design to Code 的原理
Design to Code 的本质是将设计文件的结构化数据转换为前端代码,核心逻辑只有 4 步:Figma 节点类型与代码映射
Figma 的节点树是 Design to Code 的数据源。每种节点类型对应不同的代码结构:设计令牌(Design Tokens)提取
设计令牌是 Design to Code 的核心概念——它把设计决策(颜色、字体、间距)抽象为可复用的变量,确保设计和代码使用同一套值。组件识别与复用
AI 在解析设计稿时,会识别重复出现的 UI 模式,将其提取为可复用组件。识别策略包括:相同的图层结构、相同的命名模式(如Button/Primary、Button/Secondary)、相同的样式属性组合。
Q3: Figma MCP 详解
什么是 Figma MCP
Figma MCP 指 Figma 官方推出的 Dev Mode MCP Server,基于 Anthropic 提出的 Model Context Protocol。它让 AI 助手(Claude、Cursor、Windsurf 等)可以直接读取 Figma 设计文件,提取设计信息,生成生产级代码。Figma MCP 是连接 Figma 设计文件和 AI 编码助手的标准化桥梁——AI 通过 MCP 协议直接读取设计稿,不需要手动复制粘贴设计信息。
MCP 对节点的要求
要让 Figma MCP 生成高质量代码,设计稿需要遵循以下规范:Figma MCP 工作原理
Figma MCP Server 的工作流程分为 3 个阶段:代码示例
以下是一个完整的 Figma MCP 配置和使用示例:Q4: Design to Code 工具对比
基础梳理
专家视角深度剖析
很多人能说出”V0 是文本生成代码,Locofy 是设计稿转代码”,但实际更在意的是:这些工具的本质区别是什么?在什么场景下选哪个? V0 的本质是生成式 AI——你用文本描述想要的 UI,它生成 React 组件代码。它不读取设计稿,而是从零生成。适合快速原型、从想法到代码的场景。缺点是生成的代码不一定和设计师的稿子完全一致。 Locofy 和 Anima 的本质是设计解析 + 代码转换——它们读取 Figma 的节点树,解析布局和样式,转换为前端代码。适合设计稿已经存在、需要精确还原的场景。缺点是对设计稿的规范要求高(必须用 Auto Layout、语义化命名)。 Figma MCP 的本质是协议标准化——它不自己生成代码,而是把设计信息通过 MCP 协议暴露给 AI 助手,由 AI 决定生成什么代码。适合需要灵活控制代码风格、集成到现有 AI 工作流的场景。工具选择决策树
Q5: Design to Code 的最佳实践
设计稿规范
设计稿的质量直接决定代码生成的质量。以下是三个核心规范: 命名规范:代码生成后的优化
AI 生成的代码通常是”能用”但不是”最优”的。需要以下优化步骤:设计系统集成
Design to Code 的终极目标是与设计系统(Design System)深度集成——设计令牌、组件库、主题系统三者联动。Q6: 满分回答 vs 及格回答
问题:“说说 Design to Code 的原理,Figma MCP 是怎么工作的?”
及格回答(60-70分):“Design to Code 就是把设计稿转成代码。Figma MCP 是一个协议,让 AI 读取 Figma 文件生成代码。”问题出在:知道概念但不理解原理。 满分回答(90-100分):
“Design to Code 的核心链路是:设计文件解析 → 布局分析 → 样式提取 → 代码生成。Figma 通过 REST API 暴露了完整的节点树结构,每种节点类型(FRAME、COMPONENT、TEXT 等)都有明确的属性定义。Auto Layout 的layoutMode、itemSpacing、padding等属性可以直接映射为 CSS Flexbox 的flex-direction、gap、padding。[1]”
“Figma MCP 指 Figma 官方推出的 Dev Mode MCP Server,基于 Model Context Protocol。它的工作原理是:AI 助手连接本地 Dev Mode MCP Server,MCP Server 调用 Figma 接口获取节点树,然后将解析后的设计信息(节点类型、布局属性、设计令牌)返回给 AI,由 AI 生成组件代码。[2]”
“实际项目中的关键痛点是设计稿质量。如果设计师不用 Auto Layout(用绝对定位),AI 只能生成 position: absolute 的代码,无法响应式。如果组件不标准化(同一个按钮画 10 遍),AI 会生成 10 个不同的组件而不是 1 个可复用组件。所以 Design to Code 的前提是要建立设计规范——命名语义化、布局 Auto Layout、组件 Component + Variants。[3]“
常见追问
Auto Layout 和 CSS Flexbox 的映射关系是什么?
Auto Layout 和 CSS Flexbox 的映射关系是什么?
答题要点:
逐一列出 Auto Layout 属性和 CSS 属性的对应关系。高分回答:
“Figma 的 Auto Layout 本质上就是 CSS Flexbox 的设计侧表达。映射关系如下:
layoutMode: 'HORIZONTAL'→display: flex; flex-direction: rowlayoutMode: 'VERTICAL'→display: flex; flex-direction: columnitemSpacing→gap(子元素间距)paddingLeft/Right/Top/Bottom→paddingprimaryAxisAlignItems: 'CENTER'→justify-content: centercounterAxisAlignItems: 'CENTER'→align-items: centerlayoutWrap: 'WRAP'→flex-wrap: wrap
layoutWrap 属性对应 CSS 的 flex-wrap,这让 Figma 的布局能力真正对齐了 Flexbox 规范。在此之前,Figma 的 Auto Layout 只支持单行/单列布局,复杂布局需要用嵌套 Frame 解决。”Figma MCP 和 Figma Dev Mode 有什么区别?
Figma MCP 和 Figma Dev Mode 有什么区别?
答题要点:
从能力范围、AI 集成、代码质量三个维度对比。高分回答:
“Figma Dev Mode 和 Figma MCP 的核心区别是被动查看 vs 主动读取。
-
Figma Dev Mode 是 Figma 内置的开发者工具,开发者手动打开设计稿,查看 CSS 属性、导出资源。它输出的是静态的 CSS 片段(如
font-size: 16px; color: #333),不包含组件结构和交互逻辑。本质上是’标注工具的升级版’。 - Figma MCP 是基于 Model Context Protocol 的标准化接口,AI 助手通过协议主动读取 Figma 文件的完整节点树(包括布局、样式、组件关系),然后由 AI 生成完整的组件代码。它不是简单的 CSS 提取,而是理解设计意图后生成可运行的代码。
- 关键差异:Dev Mode 需要人工操作(打开设计稿、逐个查看属性),MCP 是自动化的(AI 批量读取所有节点)。Dev Mode 输出 CSS 片段,MCP 输出组件代码。Dev Mode 不理解组件复用关系,MCP 能识别 Component/Instance 关系并生成可复用组件。”
V0 和 Locofy 的本质区别是什么?
V0 和 Locofy 的本质区别是什么?
答题要点:
从输入方式、工作原理、适用场景三个维度对比。高分回答:
“V0 和 Locofy 的本质区别是生成式 vs 转换式。V0 是生成式 AI——你用文本描述想要的 UI(如’一个带图片的产品卡片’),V0 从零生成 React + Tailwind CSS 代码。它不读取设计稿,而是基于语言模型的理解能力生成代码。适合从想法到代码的场景,但生成结果不一定和设计师的稿子一致。Locofy 是转换式 AI——它读取 Figma 设计文件的节点树,解析布局和样式,转换为前端代码。适合设计稿已经存在、需要精确还原的场景。Locofy 的代码质量和设计稿质量强相关——设计稿用了 Auto Layout 和组件,生成的代码就好;设计稿用了绝对定位和重复图层,生成的代码就差。选择标准:有设计稿用 Locofy(精确还原),没设计稿用 V0(快速原型),需要灵活控制用 Figma MCP(AI 决定代码风格)。”
设计令牌(Design Tokens)是什么?怎么和代码同步?
设计令牌(Design Tokens)是什么?怎么和代码同步?
答题要点:
解释设计令牌的概念、格式、同步工具链。高分回答:
“设计令牌(Design Tokens)是设计决策的最小可复用单元——把颜色、字体、间距、阴影等视觉属性抽象为键值对。例如 这样设计师改了 Figma 里的颜色值,CI/CD 自动同步到代码库,不需要开发者手动更新。”
color-primary: #3366FF 就是一个设计令牌。同步工具链有三个环节:- Figma 侧:使用 Figma Variables 定义颜色、数字、字符串变量。Figma 2023 年推出的 Variables 功能是设计令牌的原生支持。
- 导出环节:使用 Token Studio(Figma 插件)或 Figma REST API 将 Variables 导出为 JSON 格式。Token Studio 的 JSON 格式已成为社区标准。
- 代码侧:使用 Style Dictionary(Amazon 开源)将 JSON 令牌转换为 CSS Variables、Tailwind 配置、SCSS 变量等多平台格式。
Figma MCP 对设计稿有哪些规范要求?
Figma MCP 对设计稿有哪些规范要求?
答题要点:
从命名、布局、组件三个维度说明规范要求。高分回答:
“Figma MCP 对设计稿有三个层面的规范要求:
-
命名规范:组件用语义化命名(
Button/Primary/Large),图层用功能化命名(card-header),不要用 Figma 默认名(Frame 123、Group 5)。MCP Server 解析节点树时,名称是 AI 理解设计意图的关键线索。 -
Auto Layout 规范:所有布局容器必须开启 Auto Layout,不要用绝对定位。Auto Layout 的
layoutMode、itemSpacing、padding直接映射为 CSS Flexbox 属性。如果用绝对定位,AI 只能生成position: absolute代码,无法响应式。 - 组件规范:使用 Component(不是普通 Frame)定义可复用元素。使用 Variants 管理状态(Default / Hover / Disabled)。Instance 覆盖只修改内容(文本、图标),不修改结构。这样 MCP 解析时能识别出 Component/Instance 关系,生成可复用组件代码。
Design to Code 在企业级项目中怎么落地?
Design to Code 在企业级项目中怎么落地?
答题要点:
从设计系统建设、工具链搭建、流程规范三个维度回答。高分回答:
“企业级 Design to Code 落地需要三个环节:
- 设计系统建设:在 Figma 中建立统一的设计系统——定义 Variables(颜色、间距、字体)、Components(Button、Card、Input 等基础组件)、文档(每个组件的使用规范)。设计系统是 Design to Code 的基础,没有设计系统,AI 生成的代码就没有一致性。
- 工具链搭建:Figma Variables → Token Studio 导出 JSON → Style Dictionary 转换为 CSS Variables / Tailwind 配置 → 组件库消费令牌。CI/CD 集成:设计师改 Figma → 自动触发令牌同步 → 自动生成 PR → 开发者 Review 后合并。
- 流程规范:设计师必须用 Auto Layout 和 Component 画稿(写入团队规范)。开发者使用 Figma MCP 或 Locofy 生成代码后,必须经过 Code Review(AI 生成的代码不是最终产物)。建立’设计稿验收标准’:命名规范、Auto Layout 覆盖率、组件复用率。
Figma MCP 和直接用 Figma REST API 有什么区别?
Figma MCP 和直接用 Figma REST API 有什么区别?
答题要点:
从协议标准化、AI 集成、动态发现三个维度对比。高分回答:
“Figma REST API 和 Figma MCP 的区别类似于’HTTP 请求库’和’标准化协议’的区别。
- Figma REST API 是 Figma 提供的原始 HTTP 接口。你需要自己处理认证、请求构建、响应解析、错误重试。每个 AI 产品(Claude、Cursor、Copilot)都需要自己写一套 Figma API 适配代码。
- Figma MCP 是基于 Model Context Protocol 的标准化封装。MCP Server 内部调用 Figma REST API,但对外暴露的是标准化的 MCP 接口(Tool / Resource / Prompt)。任何支持 MCP 的 AI 产品都能直接使用,不需要单独适配。
- 关键优势:MCP 支持动态发现——AI 可以问 MCP Server ‘你有什么工具’,运行时发现可用能力。MCP 有标准化的错误处理和生命周期管理。MCP Server 可以被多个 AI 产品复用,一次开发到处使用。
AI 生成的代码有哪些常见问题?怎么优化?
AI 生成的代码有哪些常见问题?怎么优化?
答题要点:
列出 4-5 个常见问题和对应的优化策略。高分回答:
“AI 生成的代码常见以下问题:
-
内联样式泛滥:AI 倾向于用
style={{ fontSize: '16px' }}而不是 CSS 类名。优化:用 Tailwind 类名或 CSS Modules 替代内联样式,提升可维护性。 -
硬编码值:AI 直接写
#3366FF而不是引用设计令牌var(--color-primary)。优化:用 CSS Variables 或 Tailwind 的 theme 配置引用设计令牌。 - 缺乏组件抽象:AI 可能把重复结构复制 N 遍,而不是提取为组件。优化:人工识别重复模式,提取为可复用组件。
-
语义化缺失:AI 全用
div,不用header/nav/main/section等语义化标签。优化:根据内容语义替换标签。 -
无响应式处理:AI 生成固定宽度的布局,没有断点适配。优化:添加 Tailwind 的响应式前缀(
md:/lg:)或 CSS Media Query。
延伸阅读与引用参考
- Figma REST API 文档:Figma API 的权威参考,包含节点类型、属性定义、认证方式。[1]
- Figma 帮助中心:Figma 官方文档入口,可查阅 Dev Mode 与 MCP Server 的配置说明。[2]
- Figma Auto Layout 官方文档:Auto Layout 的完整规范,理解 Design to Code 布局映射的基础。[3]
- Model Context Protocol 规范:MCP 的官方规范,理解 Figma MCP 底层协议的标准参考。[4]
- Vercel V0:V0 的官方网站,体验文本生成 UI 的能力。
- Locofy:设计稿转代码工具官网。
- Anima:设计稿转原型与代码工具官网。
