Locofy 做的是最直接的事:接收 Figma 文件,生成 React。这是最自然的第一反应。设计进,代码出。为什么要想得更复杂?
诚实的答案是:对某些工作流来说,确实不需要想得更复杂。Locofy 快速而真实。但这个模型有随代码库增长而累积的局限。figmascope 做了一个不同的赌注——输出结构,让 Agent 来处理代码生成。这个赌注是否值得取决于你在构建什么以及谁在构建。
Locofy 是什么
Locofy 是一个 Figma 插件(也提供独立应用),将 Figma 设计转换为类生产级的 React、Next.js、Vue、HTML/CSS 或 Tailwind 代码。你安装插件,用 Locofy 注释标记你的图层(标记哪些是输入框、按钮、容器),运行导出,然后获得可粘贴到项目中的组件文件。
它支持响应式断点、基本交互状态和一些资产处理。输出旨在作为起点,而非最终代码——但对于简单的营销页面或着陆页片段,它可以在不接触文本编辑器的情况下完成 60-80% 的工作。
Locofy 有免费层(导出次数有限)和针对更高量和团队功能的付费计划。插件本身需要通过 Figma 社区安装,并在 Figma 的沙箱插件运行时中运行。
Locofy 的优势
无需 Agent。你不需要 Claude、Cursor 或任何 AI 编码助手。转换自包含在 Locofy 插件中。对于想在不涉及开发人员的情况下发布着陆页的设计师,Locofy 可以弥合这一差距。
快速首次输出。对于组件较少的简单布局,Locofy 几分钟内就能生成可用代码。如果你在制作原型或一次性营销页面,速度是真实的。
明确的结构主张。Locofy 替你做决定:这是你的组件树,这是 props 的命名方式。当你不想自己做这些决定时,这种主张性是一个特性。
框架感知的输出。代码直接针对你的技术栈。你不是在获取然后需要解读的通用 JSON——你得到的是一个已经应用了 import 语句、hooks 脚手架和 CSS Modules 或 Tailwind 类的 .tsx 文件。
Locofy 的劣势
一次性,而非迭代式。Locofy 生成快照。当设计变更时——设计总是会变更——你重新运行插件,并将新输出与现有代码库协调。没有差异模型。你在手动合并机器输出和人工输出,这很快会变得代价高昂。
被 Locofy 的主张锁定。框架选择、组件命名约定、prop 签名——这些来自 Locofy 的模型,而非你代码库的约定。如果你有具有特定组件 API 的设计系统,Locofy 不了解它们。它生成自己的。你花时间在 Locofy 世界和你的代码库世界之间协调。
插件依赖。每个想要运行导出的开发人员都需要安装插件、拥有 Locofy 账户并访问 Figma 文件。它不适合 CLI 工作流、CI 管道或非 Figma 用户的环境。
注释开销。从 Locofy 获得良好输出需要设计师为图层添加 Locofy 特定的标签。这是工具债务:注释必须维护,它们为 Figma 文件增加了噪音,且在 Locofy 之外毫无意义。
黑箱。代码生成逻辑是专有的。当输出有误时——有时确实会有误——你看不到原因。你调整图层名称、重新运行、抱着希望。没有可检查或审计的中间表示。
figmascope 的不同角度
figmascope 不生成代码。它生成上下文。
包——CONTEXT.md、tokens.json、screens/*.json、components/inventory.json、strings.json——精确描述设计,让你选择的 Agent 来进行代码生成。那个 Agent 了解你的代码库、你的组件 API、你的命名约定、你的测试模式。Locofy 不了解这些。你的 Agent 了解,因为它一直在阅读你的代码。
screens/*.json 中的中间表示捕获布局语义:stack 对比 absolute 对比 overlay,通过 INSTANCE 节点上的 componentId 标识组件,以及通过 stringRef.key 标识文本字符串。当你告诉 Claude Code"使用我们现有的 Button 和 Input 组件实现这个屏幕"时,它拥有空间结构、组件引用和令牌名称来正确完成这项工作。它不是从截图推断——它在阅读规范。
令牌溯源级联:Figma 变量优先(如果设计系统已配置),其次是从频率推断(figmascope 查看哪些值重复出现并将其提升),如果两者都不适用则为空。tokens.json 输出是有类型且机器可读的。Agent 可以直接查找 color.surface.brand,而不是从截图解析十六进制值。
这个模型也是迭代式的。当设计变更时,你重新导出包并提交新版本。tokens.json 或 screens/login.json 中的差异准确告诉你什么变了。你把差异交给 Agent:"tokens.json 变更了——所有交互元素的 border-radius 从 8px 变为 6px——更新受影响的组件。"这是一个有针对性的、可差异化的工作流。它不需要协调两组生成的组件文件。
为什么 2026 年"为 Agent 提供结构"对许多团队优于"从插件生成代码"
Locofy 及类似工具背后的前提是,从设计生成代码是一个已解决或接近解决的问题。生成代码、修正它、发布。当"修正"步骤廉价时,这种方式效果更好。
2026 年的现实:如果你的 AI 编码 Agent 拥有良好的上下文,它非常擅长在你的代码库中编写符合惯例的代码。但当它的输出与 Locofy 的输出冲突时,它很难协调。给你的 Agent 结构化、可检查的上下文,让它完整地进行代码生成——按你的约定、针对你的组件——产生的协调工作更少,而非更多。
Locofy 的输出也是框架最终态的。一旦你有了来自 Locofy 的 JSX 组件,你就在编辑 JSX。figmascope 的输出是框架中立的。同一个包可以与 Claude Code 编写 React、Aider 编写 Vue 或 Cursor 编写 Web Components 配合使用。Agent 选择惯用法。上下文保持不变。
对比
| 维度 | Locofy | figmascope |
|---|---|---|
| 输出类型 | React / Vue / HTML/CSS / Tailwind 代码文件 | 上下文包:CONTEXT.md、tokens.json、screens/*.json、*.png |
| 需要 Agent | 否 | 是——包是 AI Agent 的输入 |
| 框架主张性 | 高——输出针对特定框架 | 无——Agent 选择框架 |
| 了解你的代码库 | 否 | 你的 Agent 了解 |
| 迭代工作流 | 困难——重新导出 + 手动协调 | 是——包差异是结构化且可检查的 |
| 注释开销 | 是——需要 Locofy 图层标签以获得良好输出 | 否 |
| 版本控制 | 否(仅生成代码) | 是——包可差异化、可提交 |
| 开源/自包含 | 否——专有 SaaS | MIT,完全在浏览器中运行 |
| 需要插件安装 | 是 | 否 |
| 定价 | 免费层 + 付费计划 | 免费,无需账户 |
| 令牌/设计系统感知 | 部分——映射 Figma 样式 | 完整——带有类型值和后备来源的 tokens.json |
| i18n 字符串键 | 否 | 是——IR 中的 stringRef.key + strings.json |
何时 Locofy 是正确选择
坦率地说:Locofy 对于非编码设计师发布营销页面、着陆页片段或一次性原型是有价值的。如果你没有 AI Agent 设置,不想要一个,只需要一个 React 文件交给承包商——Locofy 可以完成这项工作。代码质量一般,但它就在那里,一般质量的可发布代码胜过团队无法采取行动的完美上下文。
它对于快速模型验证也真正有用:"这个布局能生成合理的标记吗?"运行 Locofy,查看输出,丢弃它。无需设置完整的 Agent 工作流即可获得快速反馈。
当你使用现有代码库、具有真实令牌的设计系统以及循环中的 AI 编码 Agent 构建生产 UI 时,figmascope 是更好的选择。该包给了 Agent 编写符合你项目代码所需的精确性——而不是需要重写的通用样板。