Skip to main content
设计稿转代码我用过几轮,真正难的不是生成,而是设计稿本身不规范时怎么兜住,以及生成结果怎么验证。

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 解决的核心问题:
Design to Code 的本质是用 AI 和标准化协议消除设计与开发之间的手动转换环节,让设计师的稿子直接变成可运行的代码。

手动切图时代

设计师用 PS 画完稿子,导出 PSD 文件给前端。前端开发者打开 PS,用标尺量每个元素的尺寸、间距、色值,然后手写 CSS 还原。就像翻译官拿着一本纸质词典逐词翻译——能用,但慢、容易出错、改一次设计稿就要重新量一遍。

Figma MCP 时代

设计师在 Figma 里用 Auto Layout 画稿子,前端开发者用 AI 助手通过 MCP 协议直接读取设计文件,自动提取布局结构、颜色变量、字体样式,生成 React/Vue 组件代码。就像有了同声传译——设计稿一改,代码自动更新,不需要手动同步。
回答时先说”为什么”(手动切图效率低、误差大),再说”怎么解决”(AI + 标准化协议)。想听的是你对 Design to Code 演进逻辑的理解,而不是背工具名称。

Q2: Design to Code 的原理

Design to Code 的本质是将设计文件的结构化数据转换为前端代码,核心逻辑只有 4 步:
Figma 的 Auto Layout 本质上就是 CSS Flexbox 的设计侧表达。映射规则如下:
  • layoutMode: "HORIZONTAL" → display: flex; flex-direction: row
  • layoutMode: "VERTICAL" → display: flex; flex-direction: column
  • itemSpacing → gap
  • paddingLeft/Right/Top/Bottom → padding
  • primaryAxisAlignItems: "CENTER" → justify-content: center
  • counterAxisAlignItems: "CENTER" → align-items: center
  • layoutWrap: "WRAP" → flex-wrap: wrap
Design to Code 的原理就像把乐高说明书翻译成生产图纸。设计文件解析是”看懂说明书上的零件清单”——Figma 的 JSON 节点树列出了每个零件(Frame、Text、Component)的规格。布局分析是”理解零件怎么拼装”——Auto Layout 的方向、间距、对齐方式告诉你怎么组合零件。样式提取是”记录每个零件的颜色和材质”——设计令牌(Design Tokens)把颜色、字体、间距标准化。代码生成是”把拼装方案写成工厂能执行的生产图纸”——AI 根据解析结果生成 React/Vue 组件代码。

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 生成高质量代码,设计稿需要遵循以下规范:
命名规范:
  • 组件使用语义化命名:Button/Primary/Large(不是 Frame 123)
  • 图层使用功能化命名:card-header、avatar-image(不是 Group 5、Rectangle 3)
  • 使用斜杠分隔层级:Navigation/Item/Active
Auto Layout 规范:
  • 所有布局容器必须开启 Auto Layout(不要用绝对定位)
  • 使用 HORIZONTAL / VERTICAL 方向,不要用 Group
  • 设置合理的 itemSpacing 和 padding
  • 使用 primaryAxisAlignItems 和 counterAxisAlignItems 控制对齐
组件规范:
  • 使用 Component(不是普通 Frame)定义可复用元素
  • 使用 Variants 管理状态(Default / Hover / Disabled)
  • 使用 Boolean Properties 控制可选元素的显隐
  • Instance 覆盖只修改内容(文本、图标),不修改结构

Figma MCP 工作原理

Figma MCP Server 的工作流程分为 3 个阶段:

代码示例

以下是一个完整的 Figma MCP 配置和使用示例:
在 Figma 桌面端开启 Dev Mode MCP Server 后,AI 助手即可连接本地服务读取当前文件:
AI 生成的代码示例:
Figma MCP 就像给建筑加了无障碍坡道。以前设计师画完稿子(建筑建好了),开发者要自己爬楼梯进去看(手动打开 Figma 量尺寸)。有了 MCP 这个坡道,AI 助手可以直接”推门进去”——通过标准化协议读取设计文件的所有信息(节点树、样式、组件),不需要人工介入。坡道的标准(MCP 协议)是通用的,不管是 Claude 还是 Cursor 都能用同一个坡道进去。

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 的最佳实践

Design to Code 的最佳实践就像建筑施工规范。设计师画图纸时要遵循建筑规范(命名规范、Auto Layout、组件化),施工队(AI)才能准确施工。图纸不规范(乱命名、不用 Auto Layout),施工队再厉害也建不出你要的房子。代码生成后还需要质检(代码优化)和验收(设计系统集成)。

设计稿规范

设计稿的质量直接决定代码生成的质量。以下是三个核心规范: 命名规范:
Auto Layout 规范:
组件化规范:

代码生成后的优化

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 属性的对应关系。高分回答: “Figma 的 Auto Layout 本质上就是 CSS Flexbox 的设计侧表达。映射关系如下:
  1. layoutMode: 'HORIZONTAL' → display: flex; flex-direction: row
  2. layoutMode: 'VERTICAL' → display: flex; flex-direction: column
  3. itemSpacing → gap(子元素间距)
  4. paddingLeft/Right/Top/Bottom → padding
  5. primaryAxisAlignItems: 'CENTER' → justify-content: center
  6. counterAxisAlignItems: 'CENTER' → align-items: center
  7. layoutWrap: 'WRAP' → flex-wrap: wrap
值得注意的是,Figma 后来新增的 layoutWrap 属性对应 CSS 的 flex-wrap,这让 Figma 的布局能力真正对齐了 Flexbox 规范。在此之前,Figma 的 Auto Layout 只支持单行/单列布局,复杂布局需要用嵌套 Frame 解决。”
答题要点: 从能力范围、AI 集成、代码质量三个维度对比。高分回答: “Figma Dev Mode 和 Figma MCP 的核心区别是被动查看 vs 主动读取。
  1. Figma Dev Mode 是 Figma 内置的开发者工具,开发者手动打开设计稿,查看 CSS 属性、导出资源。它输出的是静态的 CSS 片段(如 font-size: 16px; color: #333),不包含组件结构和交互逻辑。本质上是’标注工具的升级版’。
  2. Figma MCP 是基于 Model Context Protocol 的标准化接口,AI 助手通过协议主动读取 Figma 文件的完整节点树(包括布局、样式、组件关系),然后由 AI 生成完整的组件代码。它不是简单的 CSS 提取,而是理解设计意图后生成可运行的代码。
  3. 关键差异:Dev Mode 需要人工操作(打开设计稿、逐个查看属性),MCP 是自动化的(AI 批量读取所有节点)。Dev Mode 输出 CSS 片段,MCP 输出组件代码。Dev Mode 不理解组件复用关系,MCP 能识别 Component/Instance 关系并生成可复用组件。”
答题要点: 从输入方式、工作原理、适用场景三个维度对比。高分回答: “V0 和 Locofy 的本质区别是生成式 vs 转换式。V0 是生成式 AI——你用文本描述想要的 UI(如’一个带图片的产品卡片’),V0 从零生成 React + Tailwind CSS 代码。它不读取设计稿,而是基于语言模型的理解能力生成代码。适合从想法到代码的场景,但生成结果不一定和设计师的稿子一致。Locofy 是转换式 AI——它读取 Figma 设计文件的节点树,解析布局和样式,转换为前端代码。适合设计稿已经存在、需要精确还原的场景。Locofy 的代码质量和设计稿质量强相关——设计稿用了 Auto Layout 和组件,生成的代码就好;设计稿用了绝对定位和重复图层,生成的代码就差。选择标准:有设计稿用 Locofy(精确还原),没设计稿用 V0(快速原型),需要灵活控制用 Figma MCP(AI 决定代码风格)。”
答题要点: 解释设计令牌的概念、格式、同步工具链。高分回答: “设计令牌(Design Tokens)是设计决策的最小可复用单元——把颜色、字体、间距、阴影等视觉属性抽象为键值对。例如 color-primary: #3366FF 就是一个设计令牌。同步工具链有三个环节:
  1. Figma 侧:使用 Figma Variables 定义颜色、数字、字符串变量。Figma 2023 年推出的 Variables 功能是设计令牌的原生支持。
  2. 导出环节:使用 Token Studio(Figma 插件)或 Figma REST API 将 Variables 导出为 JSON 格式。Token Studio 的 JSON 格式已成为社区标准。
  3. 代码侧:使用 Style Dictionary(Amazon 开源)将 JSON 令牌转换为 CSS Variables、Tailwind 配置、SCSS 变量等多平台格式。
这样设计师改了 Figma 里的颜色值,CI/CD 自动同步到代码库,不需要开发者手动更新。”
答题要点: 从命名、布局、组件三个维度说明规范要求。高分回答: “Figma MCP 对设计稿有三个层面的规范要求:
  1. 命名规范:组件用语义化命名(Button/Primary/Large),图层用功能化命名(card-header),不要用 Figma 默认名(Frame 123、Group 5)。MCP Server 解析节点树时,名称是 AI 理解设计意图的关键线索。
  2. Auto Layout 规范:所有布局容器必须开启 Auto Layout,不要用绝对定位。Auto Layout 的 layoutMode、itemSpacing、padding 直接映射为 CSS Flexbox 属性。如果用绝对定位,AI 只能生成 position: absolute 代码,无法响应式。
  3. 组件规范:使用 Component(不是普通 Frame)定义可复用元素。使用 Variants 管理状态(Default / Hover / Disabled)。Instance 覆盖只修改内容(文本、图标),不修改结构。这样 MCP 解析时能识别出 Component/Instance 关系,生成可复用组件代码。
不遵循这些规范,MCP 仍然能工作,但生成的代码质量会大幅下降——没有组件复用、没有响应式、没有语义化结构。”
答题要点: 从设计系统建设、工具链搭建、流程规范三个维度回答。高分回答: “企业级 Design to Code 落地需要三个环节:
  1. 设计系统建设:在 Figma 中建立统一的设计系统——定义 Variables(颜色、间距、字体)、Components(Button、Card、Input 等基础组件)、文档(每个组件的使用规范)。设计系统是 Design to Code 的基础,没有设计系统,AI 生成的代码就没有一致性。
  2. 工具链搭建:Figma Variables → Token Studio 导出 JSON → Style Dictionary 转换为 CSS Variables / Tailwind 配置 → 组件库消费令牌。CI/CD 集成:设计师改 Figma → 自动触发令牌同步 → 自动生成 PR → 开发者 Review 后合并。
  3. 流程规范:设计师必须用 Auto Layout 和 Component 画稿(写入团队规范)。开发者使用 Figma MCP 或 Locofy 生成代码后,必须经过 Code Review(AI 生成的代码不是最终产物)。建立’设计稿验收标准’:命名规范、Auto Layout 覆盖率、组件复用率。
核心原则:Design to Code 不是’一键出成品’,而是’加速从设计到代码的转换’。AI 生成的代码仍需要人工优化和 Review。”
答题要点: 从协议标准化、AI 集成、动态发现三个维度对比。高分回答: “Figma REST API 和 Figma MCP 的区别类似于’HTTP 请求库’和’标准化协议’的区别。
  1. Figma REST API 是 Figma 提供的原始 HTTP 接口。你需要自己处理认证、请求构建、响应解析、错误重试。每个 AI 产品(Claude、Cursor、Copilot)都需要自己写一套 Figma API 适配代码。
  2. Figma MCP 是基于 Model Context Protocol 的标准化封装。MCP Server 内部调用 Figma REST API,但对外暴露的是标准化的 MCP 接口(Tool / Resource / Prompt)。任何支持 MCP 的 AI 产品都能直接使用,不需要单独适配。
  3. 关键优势:MCP 支持动态发现——AI 可以问 MCP Server ‘你有什么工具’,运行时发现可用能力。MCP 有标准化的错误处理和生命周期管理。MCP Server 可以被多个 AI 产品复用,一次开发到处使用。
简单说:REST API 是原始材料,MCP 是标准化的成品。用 REST API 你需要自己盖房子,用 MCP 你直接住精装房。”
答题要点: 列出 4-5 个常见问题和对应的优化策略。高分回答: “AI 生成的代码常见以下问题:
  1. 内联样式泛滥:AI 倾向于用 style={{ fontSize: '16px' }} 而不是 CSS 类名。优化:用 Tailwind 类名或 CSS Modules 替代内联样式,提升可维护性。
  2. 硬编码值:AI 直接写 #3366FF 而不是引用设计令牌 var(--color-primary)。优化:用 CSS Variables 或 Tailwind 的 theme 配置引用设计令牌。
  3. 缺乏组件抽象:AI 可能把重复结构复制 N 遍,而不是提取为组件。优化:人工识别重复模式,提取为可复用组件。
  4. 语义化缺失:AI 全用 div,不用 header / nav / main / section 等语义化标签。优化:根据内容语义替换标签。
  5. 无响应式处理:AI 生成固定宽度的布局,没有断点适配。优化:添加 Tailwind 的响应式前缀(md: / lg:)或 CSS Media Query。
核心原则:AI 生成的代码是’初稿’,不是’终稿’。开发者需要做的是优化(样式抽取、组件抽象、语义化、响应式),而不是直接用。“

延伸阅读与引用参考

  • 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:设计稿转原型与代码工具官网。