前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
基础篇
进阶篇
高频篇
精选篇
手写篇
原理篇
面经篇
AI 面试
自检篇
每日一题
  • 综合
    • 综合题型
    • 其他问题
    • 设计模式
    • 思维导图
    • 学习路线
  • 前端基础
    • HTTP
    • 浏览器
    • 计算机基础
  • 进阶学习
    • NPM工作流
    • Docker
    • Canvas
    • Node学习指南
    • 前端综合文章
  • 其他
    • Handbook
    • 职场话题
    • CSS可视化
小程序题库
公众号动态
博客动态
AI 热点
开发者导航
返回 AI 情报前线
All News · 全部资讯5034
  • Lovable应用移植React Native的组件对照表
  • 2026年用10美元预算开发AI SaaS原型完整指南
  • 2026 年 GPU 选型指南:H100 与 A100 成本效益对比
  • AI Agent 测试方法论:从单元测试到混沌工程
  • AI Skill跑通一次不算测试
  • 用Milvus+Ollama自建私有RAG实战
  • 上下文窗口不是记忆:AI Agent 记忆机制的深层误解
  • 上下文窗口不是记忆:AI Agent 记忆机制的深层误解
  • 智谱 GLM-5.3 发布:编程能力最强开源模型,Terminal-Bench 得分暴涨 5 倍
  • LLM 可解释性实战:用 Sparse Autoencoder 破解 Transformer 黑盒
  • AI编程时代:系统设计比写代码更重要
  • 十七行Python检查LLM网关是否抽成
  • LLM选型矩阵:按功能挑最便宜可靠模型
  • Figma MCP 做 UI 代码:截图只能验证布局,数值必须从节点读取
  • 苹果在中国训练本地AI模型,集成阿里千问
  • Obsidian Skills:让 AI 编程助手读懂你的笔记库
  • 一行Python代码构建OpenAI兼容网关,支持多模型代理
  • AI 生成数据库迁移的正确姿势:先在临时库重放验证
  • holaOS:一个空间运行任意 Agent,共享记忆
  • AI 代码补丁三验 Loop:合同、执行、回归
  • 用 AI 给 CI 失败先分类再读日志
  • AI 时代面试已失效:会做题≠会工程
  • DeepSeek V4-Pro 对 token 上限参数置若罔闻
  • Unsloth Desktop:本地一键跑大模型和训练,集成Claude Code/Codex/MCP
  • 通过单一Chatbot API接入三个降级模型:JSON Schema校验与回退策略
  • LLM 工单分类实战:用 JSON Schema 控制输出+重试+成本计量
  • Node.js 应用添加 OpenAI 兼容模型降级方案
  • 成功 AI 产品中反复出现的 3 种 Agent 模式
  • 未提供的上下文会被模型自行补全——这是安全漏洞的根源
  • 从零构建推理小模型:SupraLabs 推理语料流式微调实战
  • 金额不能用浮点数:AI演示里那个隐藏的经典Bug
  • Google 发布 Gemini 3.7 Flash:编程能力提升33%,$0.75/1M tokens
  • 何时该用LangGraph而非简单Tool-Calling
  • AI 生成代码:看起来对≠真的对
  • AI Agent 实战:七个生产环境失败模式及修复方案
  • Cerebras + OpenAI 实现 750 tokens/s 推理
  • 架构文档约束失效,AI 编程代理的隐性风险
  • AI编程工具成团队依赖瓶颈:Copilot用尽后的协作困境
  • OpenAI 收购 Astral:Python 基础设施可能被重构
  • AI 蠕虫已真实存在:多伦多大学 self-replicating 攻击研究解析
  • DeepSeek V4:稀疏注意力实现低成本百万 token
  • 别把巨型 OpenAPI spec 一股脑塞给 AI Agent
  • Biome:56 倍速替代 ESLint+Prettier 的 Rust 工具链
  • 为何每个AI Agent不应重复学习你的数据模型
  • 已加载 44 / 5034
8.0
热点
AI SCORE
技术实践2026-08-14 13:00

Figma MCP 做 UI 代码:截图只能验证布局,数值必须从节点读取

dev.to · AI#Figma#Claude Code#UI开发
Editor brief · 编辑速览

文章揭示 AI 根据截图生成 UI 时会擅自发明像素值,建议用 Figma MCP 的 get_variable_defs 等接口读取精确设计值,并配套 Claude Code skill 实现 extract-then-prove 流程。

文章思维导图
Knowledge map
拖拽缩放
Full translation

完整中文译文

每个硬编码的值现在都能追溯到一个 Figma 节点,"看起来没问题"不再被视为有效的证明。

我们将这个修复打包成了一个可复用的 Claude Code skill——implement-figma-designs。它把 Figma 转代码从"先构建,然后用截图肉眼看三四轮校对"的循环,变成了一种分阶段的"提取→验证"协议。

一个 LLM 拿到 Figma 帧后,会愉快地凭空编造一个 1px solid #91A3B3 边框,把 24px 的图标标成 28px,猜测图标到文字的间距——因为浅浅的边框和差 4px 的数值在截图中看起来都是对的,所以基于截图的"是否匹配?"检查会通过,而实际运行的 DOM 是错的。

截图只用于布局——绝不用于取值。每个颜色/尺寸/间距/圆角都必须来自 Figma MCP(get_variable_defs / get_metadata / get_design_context),或者被明确标记为离系统值。任何值都不能从 PNG 上读取。

分阶段查询协议,确保在任何产品代码之前就提取出真相:定向 → 节点分类 → 确认组件映射 → 三角定位代码+token+几何 → 实现。

Token 优于原始十六进制。get_design_context 返回的任何 #EE0F51 都要被协调回项目的设计 token;任何没有对应 token 的值都要上报给设计师,而不是悄悄硬编码。

真实的交互组件,绝不是 MCP 为未连接切换/输入输出的扁平 <img>——每个交互节点都要通过人工把关映射到确认过的仓库组件。

证据即验证(关键一招):实际实现是在真实浏览器(chrome-devtools MCP)中驱动的,每个可疑值都用 getComputedStyle 针对 Figma 节点值进行确认。截图告诉你哪里有问题;计算样式告诉你具体是什么值。

权衡:验证比瞟一眼 PNG 更慢、更啰嗦——更多的工具调用,每个交互组件都需要人工确认——但这是唯一能 catch 住设计系统特异性丢失的方法(一个 sx 覆盖被 .MuiOutlinedInput-notchedOutline 打败,在没有任何报错的情况下保留了错误的边框)。

# 之前 —— 从截图读取值,"看起来对" == 完成
- <Icon size={28} />                 // 猜的;实际节点是 24
- border: '1px solid #91A3B3'        // 编造的;帧没有边框
- // 验证:截图看起来差不多 → PASS(DOM 仍然是错的)

# 之后 —— 值追溯到节点,在 DOM 中验证
+ // get_metadata(node) -> width/height = 24  → <Icon size={24} />
+ // get_variable_defs(node) -> 无边框 token → 帧没有边框 → 省略
+ // 阶段 6,在真实浏览器中:
+ getComputedStyle($icon).width         // "24px"  ✔ 匹配节点
+ getComputedStyle($toolbar).borderWidth // "0px"  ✔ 匹配帧
+ // 只有当 computed CSS == 节点值时才能 PASS,每个元素都要证据

这个协议,端到端

Figma frame URL
   │
   ▼
[0] resolve to a concrete node ──► [1] orient (PNG = structure only)
   │                                     │
   ▼                                     ▼
[2] classify nodes ──► [3] confirm component mappings (human gate)
   │
   ▼
[4] triangulate: get_design_context + get_variable_defs + get_metadata
   │        └─ raw hex/px  →  project token  (or flag off-system)
   ▼
[5] implement from tokens + geometry + real components
   │
   ▼
[6] VERIFY in a real browser: getComputedStyle(el) == node value ?
        PASS only per-element, with evidence — not "the PNG looks right"

这三个在人工 PNG 审查中溜过去的缺陷(编造的边框、28px 而非 24px 的图标、猜出来的间距),现在在阶段 6 被机械地捕获了,而不是经历好几轮手动修正。

明确禁止仅凭截图签收——一个节点只有在计算后的 CSS 被证明等于节点值时才算"完成"。

团队内可复用:这是一个版本化的 skill,当 planning-dev-task 交出关联 Figma 的 PRD 时自动调用,它的验证环节(checking-figma-fidelity)可以接入测试计划运行器作为视觉 T-<n>。

想试试吗?私信我,我把 skill 发给你

Original source

本文由 AI 翻译整理自 dev.to · AI,原文版权归原作者所有。

阅读英文原文
上一篇
LLM选型矩阵:按功能挑最便宜可靠模型
下一篇
苹果在中国训练本地AI模型,集成阿里千问