从设计到代码再到设计:Claude Code + Figma 双向工作流实战

上个月我们团队的设计师发了一条消息:”这个按钮的圆角是 8px 还是 12px?”
我打开代码看了一眼,写的是 rounded-lg,对应 Tailwind 的 8px。但设计稿里明明是 12px。
这种误差是怎么来的?我当时对着设计稿手写 CSS,眼睛估了一下,估错了。来回确认了三轮,加上等待时间,半天没了。
这个问题,现在有了一个直接的解法——Claude Code + Figma MCP。让 AI 直接读取 Figma 的设计参数,颜色值、间距、字体大小,精确获取,不靠眼睛估。不仅如此,你还能把写好的代码”推回” Figma,让设计师在画布上继续优化。
今天这篇文章,我带你从零开始搭建这套流程。
先搞清楚一件事:什么是 Figma MCP?
MCP,全称 Model Context Protocol(模型上下文协议),是一个开放标准。你可以把它理解成一个”万能适配器”,让 AI 工具能够连接各种外部数据源。
Figma MCP Server 就是这个适配器在 Figma 上的具体实现。它把你 Figma 文件里的组件、变量、布局信息,用 AI 能理解的方式暴露出来。
没有 MCP 的时候,你跟 Claude 说:”帮我写一个蓝色的圆角按钮,带阴影。”你得靠文字描述,Claude 靠猜。
有了 MCP 之后,Claude 直接”看到”你的设计稿。颜色值、间距、字体大小,全都精准获取。
这是质的飞跃。
环境准备
在开始之前,你需要准备以下工具:
- Claude Code:Anthropic 的命令行 AI 编程工具
- Figma 账号:需要 Dev 或 Full 席位(免费账号功能受限)
- Node.js 环境:用于安装 Claude Code
如果你还没安装 Claude Code,终端运行一行命令:
1 | npm install -g @anthropic-ai/claude-code |
准备好了,我们开始连接。
方法一:远程 MCP Server(推荐)
这是目前 Figma 官方推荐的方式,不需要安装桌面端,直接连接 Figma 的云端服务。
第一步:添加 Figma MCP
打开终端,运行:
1 | claude mcp add --transport http figma https://mcp.figma.com/mcp |
如果你希望所有项目都能用这个连接,加上 --scope user:
1 | claude mcp add --scope user --transport http figma https://mcp.figma.com/mcp |
第二步:认证登录
启动 Claude Code,输入 /mcp,选择 figma,然后选 Authenticate。
浏览器会弹出 Figma 的授权页面,点击 Allow Access。
回到终端,你会看到:
1 | Authentication successful. Connected to figma |
搞定。就这么简单。
更省事的方式:一键安装插件
Figma 还提供了 Claude Code 插件,包含了 MCP 配置和常用工作流技能,一条命令搞定:
1 | claude plugin install figma@claude-plugins-official |
这个插件会自动配置好 MCP 连接,还附带了一些 Agent Skills,比如实现设计、连接组件等常用操作的最佳实践提示词。
方法二:本地 MCP Server
如果你更喜欢本地运行,或者网络环境不太好,可以用 Figma 桌面端自带的本地 MCP。
第一步:开启 Figma 本地 MCP
- 打开 Figma 桌面端,确保是最新版本
- 点击左上角 Figma 菜单
- 进入 Preferences,勾选 Enable Dev Mode MCP Server
- 记下本地地址:
http://127.0.0.1:3845/sse
第二步:连接 Claude Code
1 | claude mcp add --transport sse figma-dev-mode-mcp-server http://127.0.0.1:3845/sse |
验证连接:
1 | claude mcp list |
看到 figma-dev-mode-mcp-server 就说明连上了。
核心工作流一:设计稿变代码
连接建好了,开始干正事。
基于链接的转换
最常用的方式。在 Figma 里复制某个 Frame 或组件的链接,然后在 Claude Code 里这样提问:
1 | 请根据这个 Figma 设计稿生成 React 组件代码: |
Claude 会通过 MCP 获取设计稿的完整信息——布局结构、颜色变量、间距、字体——然后生成对应的代码。
基于选中元素的转换
如果你用的是本地 MCP,还有一种更直觉的方式:
- 在 Figma 桌面端选中一个 Frame 或组件
- 切到 Claude Code,直接说:
1 | 根据我在 Figma 中选中的元素生成代码 |
Claude 会自动读取你当前选中的内容。
提升生成质量的技巧
直接让 Claude 转代码,结果可能”能用但不够好”。这里分享几个实战技巧:
1. 提前声明技术栈
1 | 我使用 Next.js 14 + Tailwind CSS + TypeScript, |
这一句话能让 Claude 匹配你的项目规范,而不是生成通用代码。
2. 让 Claude 先分析再动手
1 | 请先分析这个 Figma 设计稿,告诉我你看到了什么, |
先分析后执行,准确率会高很多。Claude 会告诉你它识别到了哪些组件、颜色、布局方式,你可以在这一步纠正它的理解偏差。
3. 从小组件开始
不要一上来就让 Claude 转整个页面。先从一个按钮、一张卡片开始,确认工作流跑通了,再逐步扩展。
4. 配合 Code Connect 使用
如果你的项目有成熟的设计系统,可以设置 Code Connect,让 Claude 复用你现有的组件库,而不是每次都从零生成。
核心工作流二:代码变设计
这是 2026 年初 Figma 推出的重磅功能——Code to Canvas。
你在 Claude Code 里写好了代码,启动了本地开发服务器,然后一句话:
1 | 启动我的应用的本地服务器,把 UI 截图发送到 Figma |
Claude 会打开浏览器,捕获你正在运行的界面——不管是 localhost、staging 还是 production——然后把它转成 Figma 画布上可编辑的 Frame。
注意,这不是简单的截图。它会把页面结构拆解成 Figma 的图层,你可以在 Figma 里继续编辑每一个元素。
这意味着什么?
想象一下这个场景:
- 你用 Claude Code 快速搭了一个登录页面的原型
- 一句话把它推到 Figma
- 设计师在 Figma 里调整配色、优化间距、增加动效说明
- 你再通过 Figma MCP 把设计师的修改拉回来,更新代码
设计 → 代码 → 设计 → 代码。每个环节都有 AI 帮你搬运,上下文不丢失。
这就是真正的闭环。
一个完整的实战案例
让我们用一个具体例子把整个流程串起来。
假设你要做一个电商 App 的商品详情页。
第一步:设计师在 Figma 完成设计
商品图片、价格、描述、购买按钮、评价区域,都在 Figma 里画好了。
第二步:开发者用 Claude Code 生成代码
1 | 请根据这个商品详情页的设计稿生成 React 组件: |
Claude 通过 MCP 读取设计稿,生成完整的组件代码。
第三步:本地调试并推回 Figma
代码跑起来后,你发现比设计稿多做了一些交互——比如图片轮播、加入购物车的动画。你把这些新增的 UI 状态推回 Figma:
1 | 把当前页面的三个状态(默认、图片切换、加购成功)分别截图发送到 Figma |
第四步:设计师在 Figma 评审优化
设计师看到实际运行的效果,直接在 Figma 里标注修改意见,调整了按钮的颜色和间距。
第五步:开发者同步修改
1 | 请根据这个更新后的 Figma 设计稿, |
整个过程,没有一次”你看看这个截图对不对”的来回沟通。
使用中的一些坑和建议
说了这么多好的,也聊聊现实中的限制。
免费账号的限制
Figma 的 Starter 计划或者 View/Collab 席位,每月只能调用 6 次 MCP 工具。如果你是重度用户,建议升级到 Dev 席位。
复杂页面要拆着转
一个包含十几个组件的复杂页面,直接丢给 Claude 效果不好。建议按模块拆分:先转导航栏,再转内容区,最后转底部栏。每个模块单独验证,再组装。
记得设置 Rules
Figma 官方建议给 AI Agent 设置自定义 Rules,指导它的代码生成行为。比如:
- 使用哪个 CSS 框架
- 组件命名规范
- 文件组织方式
好的 Rules 能让生成质量提升一个档次。
Code to Canvas 目前仅支持部分客户端
Code to Canvas 功能目前只支持 Claude Code、Codex 和 VS Code。如果你用的是 Cursor 或 Windsurf,暂时只能做设计稿转代码,还不能把代码推回 Figma。
这套工作流改变了什么?
回到文章开头那个 8px vs 12px 的问题。
用了 Figma MCP 之后,这类问题基本消失了。Claude 直接从 Figma 读取 border-radius: 12px,生成的代码就是 rounded-xl,不需要我眼睛估,也不需要设计师来回确认。
但我也踩过一个坑:第一次用的时候,我直接把整个页面的 Figma 链接丢给 Claude,让它一次性生成所有组件。结果生成的代码结构乱,组件之间的间距关系也没处理好。后来改成按模块拆分,先转导航栏,再转内容区,每个模块单独验证,效果好多了。
Code to Canvas 这个功能我还在试。把代码推回 Figma 的图层质量,目前还不够稳定,复杂的交互状态有时候会丢失层级关系。但设计稿转代码这个方向,已经够用了。
如果你还没试过,从一个按钮开始。跑通之后,你会知道下一步该怎么扩展。