前言¶
Design-to-Code(设计到代码)是 AI 编程里热度很高的方向:设计师在 Figma 里定稿,开发者在 IDE 里对照截图「猜」间距、字号和颜色,来回改几轮是常态。Figma 官方 MCP 服务器已经能把设计结构、变量和截图直接喂给 AI Agent,但「拿到数据之后怎么写代码、怎么对齐项目规范、怎么验收像素级还原」,仍然缺少一套稳定流程。
OpenAI 在 openai/skills 仓库的 .curated 目录里维护了 figma-implement-design Skill,专门解决「从 Figma 节点到仓库里可交付 UI 代码」这一环。它不负责在 Figma 画布上改稿(那是 figma-use 的事),而是把 MCP 读到的设计上下文,按步骤翻译成符合你项目技术栈与 Design System 的实现,并强调 1:1 视觉还原。
本文基于 官方 SKILL.md 与 Figma MCP 文档 整理,供在 Cursor、Codex CLI、Claude Code 等支持 Agent Skill 的工具中使用。
这是什么¶
figma-implement-design 是 OpenAI 出品的 curated Agent Skill,核心定位是:将 Figma 设计稿翻译为生产级应用代码,追求与稿面一致的视觉还原(官方表述为 pixel-perfect / 1:1 visual fidelity)。
它与 Figma MCP 服务器配合工作——Skill 定义「怎么做」,MCP 提供 get_design_context、get_screenshot 等工具读取设计数据。Skill 还明确划定了边界,避免 Agent 误用:
| 用户需求 | 应切换到的 Skill |
|---|---|
| 在 Figma 画布内创建/编辑/删除节点 | figma-use |
| 从代码或描述在 Figma 里生成整页界面 | figma-generate-design |
| 仅做 Code Connect 组件映射 | figma-code-connect-components |
编写 CLAUDE.md / AGENTS.md 等设计系统规则 |
figma-create-design-system-rules |
figma-implement-design 只在你需要「把设计实现进代码仓库」时启用。
核心功能与亮点¶
结构化七步工作流¶
官方要求按顺序执行、不可跳步,保证每次实现路径一致:
- 获取 Node ID:从 Figma URL 解析
fileKey与node-id;若使用figma-desktopMCP,也可直接读取桌面端当前选中节点(远程 MCP 必须提供链接)。 - 拉取设计上下文:调用
get_design_context(fileKey, nodeId),获取 Auto Layout、 typography、颜色/Design Token、组件变体、间距等结构化数据。 - 截取视觉参考:调用
get_screenshot,作为后续像素级对比的「标准答案」。 - 下载资源:图标、SVG、图片等从 Figma MCP 内置资源端点获取;若返回
localhost源地址,应直接使用,不要另装图标库或写占位图。 - 映射到项目规范:MCP 默认输出常带 React + Tailwind 风格,Skill 要求将其改写为你项目的框架、Design System 与现有组件,而非原样粘贴。
- 追求 1:1 视觉还原:优先稿面 fidelity;有 Design Token 时用 Token,与项目 Token 冲突时以项目 Token 为主,微调间距/尺寸保视觉一致,并满足 WCAG 无障碍要求。
- 对照 Figma 验收:布局、字体、颜色、交互态、响应式、资源加载、无障碍逐项核对。
复杂稿面的拆分策略¶
单节点设计上下文过大或被截断时,先 get_metadata 看清节点树,再对子节点分别 get_design_context,避免一次拉取失败或信息不全。
设计系统优先¶
Skill 强调:复用现有 Button、Input 等组件,扩展变体而不是重复造轮子;Figma 颜色映射到项目 Token(如 primary-500);新组件放入项目约定的 Design System 目录,并补充 TypeScript 类型与必要文档。
安装与启用¶
使用该 Skill 的前置条件是 Figma MCP 服务器已连接且可用。Figma 官方推荐 Remote MCP(https://mcp.figma.com/mcp),功能最全;Desktop MCP(http://127.0.0.1:3845/mcp)适用于部分组织/企业场景,且支持「选中节点即取上下文」。
1. 配置 Figma MCP(必做)¶
Cursor(推荐):在 Agent 对话中执行 Figma 官方插件安装命令,插件会一并配置 MCP 与相关 Skill:
/add-plugin figma
安装后在 Cursor Settings → Tools & MCP 中完成 Figma 认证连接。Figma 文档说明该插件包含「实现设计稿、Code Connect、设计系统规则」等 Agent Skills。
也可手动添加 Remote MCP,或通过 Deep Link 一键安装,详见 Figma Remote Server 安装指南。
Claude Code:官方推荐 claude plugin install figma@claude-plugins-official,同样 bundled MCP 与 Skills。
Codex CLI:在 Codex 内使用 curated Skill 安装器(.system 技能,最新版 Codex 自动可用):
$skill-installer figma-implement-design
安装后需重启 Codex 以加载新 Skill。也可指定 GitHub 目录 URL 安装:
$skill-installer install https://github.com/openai/skills/tree/main/skills/.curated/figma-implement-design
说明:
openai/skills仓库 README 标注已 deprecated,Skill 示例仍托管于该仓库;Codex 新插件体系见 OpenAI Plugins 仓库 与 Build plugins 文档。本文安装说明以各工具当前官方文档为准。
2. 安装 figma-implement-design Skill¶
若你的 MCP 客户端未通过 Figma 插件自动带入该 Skill,可将官方目录复制到项目 Skill 路径,例如 Cursor:
# 在项目根目录执行,按需调整路径
git clone --depth 1 https://github.com/openai/skills.git /tmp/openai-skills
cp -r /tmp/openai-skills/skills/.curated/figma-implement-design .cursor/skills/
复制后重启 IDE / Agent,使 Skill 被索引。Skill 触发条件(写在 frontmatter 的 description 里)包括:用户提供 Figma URL、提到「implement design / generate code / implement component」、或要求按 Figma 规格写 UI 等。
3. 使用前准备¶
- 准备一个可访问的 Figma 设计链接,格式示例:
https://figma.com/design/:fileKey/:fileName?node-id=42-15
其中 :fileKey 为 /design/ 后的文件键,42-15 为 node-id 参数(具体 frame 或组件)。
- 项目最好已有 Design System 或组件库;没有也能用,但 Skill 会提示优先建立可复用组件。
典型用法示例¶
示例 1:实现一个 Button 组件¶
用户对 Agent 说:
Implement this Figma button component: https://figma.com/design/kL9xQn2VwM8pYrTb4ZcHjF/DesignSystem?node-id=42-15
Agent 在 Skill 约束下应依次:
- 解析
fileKey=kL9xQn2VwM8pYrTb4ZcHjF,nodeId=42-15 get_design_context(fileKey="kL9xQn2VwM8pYrTb4ZcHjF", nodeId="42-15")get_screenshot(...)留作对照- 从 MCP 资源端点下载按钮图标等资源
- 检查项目是否已有 Button 组件——有则扩展变体,无则按项目规范新建
- 将 Figma 色值映射为项目 Token(如
primary-500、primary-hover) - 对照截图检查 padding、圆角、字重
示例 2:搭建 Dashboard 整页布局¶
用户提供 Dashboard frame 链接后,Skill 建议先 get_metadata 了解 header、sidebar、卡片等子结构,再分节点 get_design_context,最后全页 get_screenshot 做整体验收。复杂页面切忌跳过 metadata 一步硬拉整树。
示例 3:仅选中节点(Desktop MCP)¶
使用 figma-desktop 且用户未给 URL 时,在 Figma 桌面应用里选中目标节点即可;MCP 自动使用当前打开文件与选区。注意:此能力仅 Desktop MCP 支持,Remote MCP 必须提供 frame/layer 链接。
适用场景与注意事项¶
适合谁用
- 前端 / 全栈开发者,需要把 Figma 组件或页面快速落地到现有代码库
- 设计系统维护者,希望 AI 输出对齐 Token 与既有组件,而不是堆 inline style
- 产品团队在新功能迭代中,设计稿已定、希望缩短「稿到 PR」周期
使用限制
- 必须有可用的 Figma MCP;Skill 本身不替代 MCP 连接与鉴权
- 交付物是用户仓库里的代码,不是 Figma 文件编辑
- MCP 返回的 React+Tailwind 只是中间表示,最终代码风格以项目为准
- 稿面过大时要拆分节点,否则上下文截断会导致实现偏差
常见问题(官方 FAQ 摘要)
| 现象 | 处理思路 |
|---|---|
| 设计上下文被截断 | get_metadata 后按子节点分批 get_design_context |
| 实现与稿面不一致 | 用 Step 3 截图逐项对比 spacing / color / typography |
| 资源加载失败 | 确认 MCP assets 端点可访问,localhost URL 勿改 |
| Token 与 Figma 数值不一致 | 以项目 Token 为准,微调尺寸保视觉接近 |
验收清单(官方 Step 7)包括:布局、字体、颜色、hover/active/disabled 等交互态、响应式约束、资源、无障碍——建议在 Agent 标记完成前人工过一遍。
小结¶
figma-implement-design 把「Figma MCP 能读到什么」和「代码仓库该怎么写」之间的空白填上了:固定七步流程、强调截图对照与 Design System 复用,并与其他 Figma 系列 Skill 分工清晰。Design-to-Code 赛道里,OpenAI 官方 curated 方案加上 Figma 官方 MCP,代表性很强,值得纳入前端 Agent 工作流。
官方 Skill 目录:https://github.com/openai/skills/tree/main/skills/.curated/figma-implement-design
Figma MCP 文档:https://developers.figma.com/docs/figma-mcp-server/