Skip to main content

Design-Driven Development 是什么?Figma 设计稿也是 AI 时代的 spec

· 7 min read

把 Figma 设计稿当 spec 用,AI 写页面才有收敛条件——这套做法可以叫 DDD(Design-Driven Development)。

  1. spec 分两层:文字管行为,设计稿管视觉,markdown 写不出间距是 32 还是 40。
  2. 给 AI 一个停止条件:截图对比设计稿,视觉差异就是可判定的验收标准。
  3. 协作契约:按 frame 分工,人和 agent 的接口都是设计稿,不是口头描述。
  4. 省 token:反复 prompt 试布局,比在 Figma 里拖两下贵一个量级。
  5. 改得动:需求变更直接改设计稿,不用重写一遍 prompt 再全量重生成。
  6. 例外:单人开发、无协作、token 预算充足,直接 coding 也没问题。
  7. 短板:Figma 画布里那个 AI 现在还偏弱,内置模型有待优化。

设计稿是 spec 的视觉那一半

Spec-driven development 这两年被讲透了:先写 spec,再让 agent 照着 spec 实现,spec 是唯一事实来源。但落到页面开发上,纯文字 spec 有个绕不过去的洞——它描述不了视觉

你可以在 markdown 里写「卡片列表,三列,卡片带阴影」,agent 也能照做。然后你会发现间距不对、圆角大了 2px、阴影虚了一圈、字重差一级。这些不是 agent 不听话,是 spec 本身没有这个信息量。继续往文字 spec 里塞 gap: 24px 这种细节,写到第三个组件你就会放弃——那不是在写 spec,是在用自然语言手写 CSS。

设计稿天生就是这一层的载体。Frame 尺寸、auto layout 的 padding、color variable、text style、组件实例,全都是结构化的、有确定数值的。通过 Figma MCP 读出来的不是一张图,是一棵带完整样式数据的节点树。

所以更准确的说法是:文字 spec 和设计稿是同一份 spec 的两个投影面,前者定义行为与边界,后者定义效果。DDD 不是要取代 SDD,是把 SDD 缺的那一半补上。

真正的价值:AI 终于有了停止条件

这是我觉得最被低估的一点。

AI 写页面最难的不是写不出来,是不知道什么时候算写完了。模型的自我判断只能到「看起来差不多是个卡片列表」,它没有 ground truth,于是要么早停,要么在你反复说「再调一下」的过程中来回抖动,越改越乱。

有设计稿之后,这个环节变成一个可闭合的循环:

设计稿在这里的角色是视觉断言。跟单元测试之于逻辑正确性是一回事:测试给出行为的判定标准,设计稿给出效果的判定标准。有了判定标准,agent 才能自己跑循环、自己判断收敛,而不是靠你当人肉 assert。

配上视觉工具才闭环

光有设计稿不够,还得让 agent 能看到自己写出来的东西。Figma MCP 负责读设计侧(get_design_context / get_screenshot),Chrome DevTools MCP 之类的负责截实现侧,两张图能对比,循环才真正闭上。

协作场景:设计稿是唯一契约

多人开发时,设计稿的价值从「给 AI 看」变成「给所有人看」。

按 frame 切分工是最自然的划分方式:谁领哪个页面、哪个组件,边界在设计稿上一目了然,不需要开会对齐「你说的那个弹窗是哪个弹窗」。设计系统里的 color variable 和 component 又天然保证了各人产出的一致性——大家引用的是同一套 token,不会 A 写 #3b82f6、B 写 #3d80f0

多 agent 并行也一样,甚至更需要。人能靠聊天弥补契约缺失,agent 不能:三个 agent 各写一个页面,没有共享设计稿的话,产出的风格必然漂移。设计稿就是它们之间那份不用解释的接口定义。

为什么不直接 AI coding?

「反正 agent 能写,让它直接写不就完了。」我一开始也这么想,后来有三个原因让我改主意。

维度直接 AI coding先做设计稿(DDD)
token 消耗视觉靠猜,多轮试错反复重写一次读稿,差异定向修
设计质量模型的默认审美,同质化专业设计产出,可 1:1 复刻
改需求重描述 + 重生成,容易连带改坏Figma editor 拖两下,重跑对齐
多人协作无共享契约设计稿即契约

token 那条最实在。视觉调整的每一轮都是「生成 → 你看 → 你描述哪里不对 → 重写」,一个页面来回五六轮很常见,每轮模型都要重读一遍上下文。设计稿把这些轮次前置成了一次结构化输入。

设计质量那条更容易被忽略。让模型自由发挥,出来的大概率是那套熟悉的味道:紫渐变、圆角过大、层次全靠阴影。有设计稿之后,agent 的任务从「设计 + 实现」降级成「实现」——这是它更擅长的那半。

什么时候可以跳过设计稿

不必教条。同时满足下面几条时,直接 coding 完全没问题:

  • 单人开发,没有协作和交接
  • token 预算充足,多试几轮不心疼
  • 页面是探索性质的,视觉本身还没定,正在拿代码当草稿
  • 内部工具、admin 页面这类视觉要求本来就不高的场景

DDD 的成本是要先有一份设计稿。这份成本在协作和高保真场景下立刻回本,在一个人写 admin 后台的时候就是纯负担。

Figma 自己的 AI 还不够用

一个诚实的补充:现在 Figma 画布里已经能用 AI 直接生成和修改设计了——不是 Figma Make 那条 prompt 直出 app 的路线,而是在 Design 编辑器里生成可编辑的图层。这条路走通之后,DDD 里「先得有设计稿」这个前提门槛会低很多,不会设计的人也能起个稿。

但目前它偏弱。内置模型的产出质量和外面那些专门做 AI 设计的工具还有差距,复杂布局和设计系统一致性上尤其明显。不过 Figma AI 也在不断进步。这样高效产出的设计稿在 AI 时代最大的身份变化,不是「给开发看的图」,而是一份机器可读、人可编辑、团队共享的视觉 spec

References

  1. Figma 官方 MCP 怎么接入 Claude Code?
  2. OpenSpec 是什么,怎么用?
  3. Pen 是什么?AI 设计 + Claude Code 一键转代码
  4. Figma AI 官方功能页 —— Figma