AI Design-to-Code 工作流

On this page

1. 整理设计结构

我的 AI 设计工作流从 Figma 开始。以美团跑腿「帮取送」体验改版为例,我先整理图层、布局、变量和组件,再用 design.md、product.md 和 tech.md 承接设计、产品与工程要求,逐步推进前端实现。

设计文件需要表达元素之间的关系。 地址属于哪个信息组,价格与下单操作如何关联,内容变长时谁应该伸缩,都需要在设计阶段确定。

让图层对应信息结构

我按照页面、区域、模块、组件和内容组织图层。订单确认页包含地址摘要、物品信息、配送服务和底部操作区;地址摘要内部再区分取件与收件。每层容器都有明确职责,同组内容应当需要一起阅读、变化或响应操作。

命名围绕业务用途展开,例如 订单确认/地址摘要 或 AddressSummary。同一概念在页面、组件库和代码中保持一致;清理默认名称、废弃图层和无意义嵌套,保留真正的布局边界。

用 Auto Layout 表达排列规则

设置 Auto Layout 时,我会逐层确认方向、间距、内边距和对齐方式。取收信息纵向排列,图标、地址与编辑入口横向排列;组件负责内部留白,页面容器负责模块之间的距离。

正文换行或辅助信息隐藏后,周围内容应沿规则重新排列。角标与浮层可以脱离正常布局,但要明确依附的容器和占位关系。普通内容则通过布局规则定位。

2. 提前定义响应式行为

绑定全局 Token 和建立组件变体之后,还要在 Figma 中设置尺寸行为、绑定响应式变量,并检查父子容器的配合。响应式的重点,是说明界面在什么条件下、按什么规则变化。

分别判断宽度和高度

每个元素都需要分别判断横向与纵向的 Fixed、Hug contents、Fill container,以及必要的最小和最大尺寸。内容卡片通常横向填充、高度随内容增长;图标保持固定尺寸;按钮宽度则取决于操作层级。

例如地址摘要:角色标识占据稳定空间,正文填充剩余宽度,编辑入口保留操作区域。长地址先换行,再撑高卡片。父容器需要提供可用宽度,文本所在的中间容器也要允许增长,避免内部裁切。

让变量绑定落到具体属性

  • 内容变化:长地址、多行备注、标签增减,通过换行、内容撑开和布局方向处理。
  • 空间变化:屏幕或父容器变窄,通过 Fill、最小与最大尺寸、间距分配处理。
  • 场景变化:设备、密度或服务主题变化,明确变量模式、组件状态和布局的切换条件。

页面边距、卡片 padding、模块 gap 和圆角应绑定对应变量;存在多套取值时,再用模式组织。变量模式可以从父级继承,实现时仍需写清浏览器断点或业务触发条件。

同时检查宽度与真实内容

跑腿项目以移动端为主:448px 及以下铺满可用宽度,更宽屏幕保持 448px 居中;页面左右边距使用 space-8。字号与图标保持稳定,优先让容器伸缩和文字换行。

我在规范中列出 320、375、390、414、448px 五种检查宽度,并搭配长地址、大金额和多行说明。需要逐项约定换行、截断、图片比例与缺省状态;底部固定栏预留安全区,正文留出避让空间。画板高度只作为展示结果。

3. 建立清晰的 Token 体系

Token 把设计值变成可以命名、引用和维护的规则。我会先判断用途与变化范围,再决定哪些值应该共用。

用稳定语义命名

现有规范用 brand-primary 表达品牌和主操作,用 text-primary、text-secondary 区分信息层级,保价色则命名为 insurance-primary。保价绿有独立的保障语义,使用范围需要保留。

命名时统一词汇与分隔方式:同一概念固定使用 primary,状态统一使用 disabled,避免 new、final 等临时名称。Figma 名称与代码名维护对应关系;调整命名时,同步更新设计源、说明和实现。

区分基础值与使用意图

后续我会按需完善三层引用:color/yellow/500 保存基础色值,color/action/primary 表达主要操作;按钮需要独立调整时,再增加 button/primary/background。这是一组分层示例,现有项目沿用已确认的命名。

间距同样需要区分用途。页面边距与组件 padding 即使暂时都是 8px,也应记录各自职责;需要独立变化时,通过语义别名管理,避免修改一个基础值牵动所有位置。

明确主题和文字样式的边界

普通服务与「1 对 1 急送」通过 service-primary、service-bg 等变量管理订单级主题。切换服务时,指定的强调区域变化,重量控件、保价状态等区域仍遵循自己的颜色规则。

文字规范需要记录字体、字号、字重、行高、字距和颜色,区分标题、正文、注释与价格。变量维护复用数值,文字样式组织排版属性;交付前检查实际绑定,尤其核对 Auto 行高与固定行高的差异。

4. 完善组件契约

组件契约约定组件的职责、可变内容、尺寸行为和使用边界。地址组件负责一个确定角色的地址,载具胶囊负责配送载具切换;组件边界应当让变化可以被清楚管理。

将变体与内容属性分开

  • 文本属性:管理标题、说明和业务内容。
  • 布尔属性:控制图标或辅助区域的显示。
  • 实例替换:替换图标、头像和嵌套组件。
  • 变体:表达类型、尺寸、角色或状态的稳定差异。

取件与收件可以作为地址组件的角色变体,具体地址则属于数据。默认的 Property 1 需要逐步改为 role、service 或 state,并与代码属性保持一致,避免每换一段内容就增加一个变体。

补齐行为与代码对应

组件规范分别记录宽高行为与 referenceSize:导航栏横向填充、高度稳定,内容卡片随内容增长。参考尺寸用于核对密度,旧组件中与规范不一致的 Resizing 设置需要校正。

默认、选中、禁用、加载和错误状态按实际需要补齐。提交按钮处理中是否阻止重复点击、失败后是否保留输入,既要有对应外观,也要有产品规则。组件契约还应连接 Figma 节点、代码位置和属性映射,方便复用。

这些内容最终汇总进 design.md,与 Figma 一起维护:设计源保存可检查的结构,文档补足使用意图与实现边界。

Workflow /沉淀设计资产 统一实现依据

Vibe Coding · 设计理念、Design Token、字体、颜色、间距、组件规格、响应式与视觉还原

设计规范

组件库

design.md

设计理念

品牌氛围定位
用美团黄给予“看得见、找得到、信得过”的亲切移动服务,亲切而不廉价,热闹而不乱
标志性视觉手法
用白色大圆角卡片把复杂的委托流程装成一连串可滑动、可点击、可追踪的任务层

基础规范

颜色
Figma Color Style、色值、语义
字体
Figma Text Style、字体、字号、字重、行高
间距
Token、基础栅格为`space-4`、 Page Gutter为`space-8`、Stack Gap为`space-8`
圆角
Token
响应式
以移动端 App 为主要目标、至少检查 `320px`、`375px`、`390px`、`414px`、`448px` 五种宽度

组件契约

组件身份
名称、Figma Component Set节点、职责
尺寸行为
长宽Fixed / Hug / Fill、 当前实例尺寸仅作为 referenceSize,不作为固定实现值
变体与槽位
变体轴及可选值、 图标、标题、正文、图片等可替换槽位、 变体之间稳定的结构或语义差异

组件库

NavigationBar
Property 1=物流状态页;Property 1=订单确认页;Property 1=物品信息页;Property 1=取地址信息页;Property 1=收地址信息页;Property 1=订单确认页/上滑;Property 1=首页
首页业务选择
Property 1=帮送;Property 1=帮取;Property 1=1对1急送
物品体积
Property 1=标准尺寸;Property 1=详细尺寸1
保价
Property 1=未保价-提示;Property 1=未保价-建议;Property 1=已保价-权益;Property 1=已保价-收敛
物品凭证
Property 1=待取件;Property 1=待收件;Property 1=已送达
物品类型选择
Property 1=未选择;Property 1=已选择
物品确认按钮
Property 1=按钮正常;Property 1=按钮置灰
进度条
Property 1=等待接单;Property 1=等待取件;Property 1=等待收件;Property 1=已收件
骑手状态
Property 1=待接单;Property 1=取件中;Property 1=送件中;Property 1=达到送件地
地址填写
取收地=取件, 填地址=已填;取收地=收件, 填地址=已填;取收地=取件, 填地址=未填;取收地=收件, 填地址=未填
额外业务
Tab Bar
地址识别
地址簿
缩略地图
下单页其余操作
提交订单按钮

该做 / 不该做

该做
先读设计源,再写代码、 页面开发时重新核对节点、 优先响应式布局、 复用公共组件
不该做
不从截图目测设计参数、 不机械复制固定尺寸、 不重复造组件或擅自扩展规范、 不用截图代替真实界面

※ 基于开源项目优化: VoltAgent/awesome-design-md

5. 定义产品基线

product.md 说明功能如何运转。跑腿项目的核心链路是:选择服务、填写取收地址与物品、确认费用、提交订单、追踪配送、查看完成结果。每个页面记录入口、目标、信息、操作、规则与验收标准。

跨页面规则需要明确。例如「帮送」与「帮取」直接互切时,交换取收地址并同步角色;进入或退出「1 对 1 急送」时,地址保持不变。地址编辑保存后返回来源页,校验失败则保留输入并提示修正。

当前项目是体验验证原型,使用 Mock 数据;真实账号、支付、计价、定位与履约不在本期范围内。先收敛范围,再保留主流程所需的异常处理与可恢复性。

Workflow /定义产品基线 驱动渐进开发

Vibe Coding · 业务目标、领域对象、业务规则、用户流程、页面交互、状态机

product.md

核心产品定位

本项目是美团跑腿“帮取送”核心链路的体验改版原型,面向无法亲自完成物品交付的用户,通过清晰的服务选择、透明的配送过程和可验证的交付凭证,降低委托陌生骑手配送重要物品时的不确定感

目标用户与核心场景

核心使用流程

页面需求详述 - 按开发渐进式补充

功能入口
从哪里进入、依赖哪些前置数据
页面目标
在核心流程中解决什么问题
页面信息
展示什么业务信息、有哪些状态、数据从哪里获得
核心操作
用户做什么、操作后发生什么、下一步去哪里
业务规则
明确条件判断、状态转换、优先级与互斥关系、跨页面数据同步、边界值及异常回退; 开发当前页面时,再结合产品基线与设计源补充具体规则

本期范围

本期纳入
本期不纳入
非核心业务、失败流程、辅助

项目里程碑

  1. 产品基线
  2. 页面开发
  3. 全链路验证
  4. PWA 交付

6. 组织 AI 渐进实现

实现时,三份文档提供共同约束,每次任务聚焦一组组件、一个模块或一条可验证的交互链路。输入包含对应设计节点、现有实现、业务规则和验收条件;复杂任务先确认方案与影响范围。

我用「触发—判断—变化—反馈—结果」组织任务。例如:

从「帮送」切换到「帮取」时,复用现有切换组件,更新选中态,并交换订单草稿中的取收地址与角色。切换急送时保持地址不变。返回首页或进入确认页后,地址摘要应与草稿一致。

tech.md 约定技术栈、数据层和修改边界:先读规范,只处理当前任务,复用组件与业务规则。实现后完成类型、代码、样式、关键规则测试与构建检查,再进入人工走查。

Workflow /规范工程护栏 保障持续迭代

Vibe Coding · 技术栈、编码规则、代码质量检查、变更管理

tech.md

技术栈

框架
React + TypeScript
构建
Vite
样式
Tailwind CSS 4
数据
Repository 接口 + Mock 实现

编码规则

修改前
先读取对应需求、设计规范和已有代码,理解当前实现后再开始修改
修改边界
只处理本次任务,不覆盖无关改动,不擅自增加依赖或替换技术方案
复用优先
优先使用已有组件、类型、业务规则、状态能力和 Design Token
禁止捷径
不使用 any 掩盖类型问题,不关闭检查规则,不复制业务阈值,不用临时写法换取“暂时能跑”

代码质量检查

  • TypeScript 数据和类型检查
  • ESLint 程序代码检查
  • Stylelint 样式代码检查
  • Build 生产构建检查

变更管理

每次提交只包含一个明确目的

规范Git提交格式为 [类型(范围): 修改目的],类型包括feat;fix;refactor;test;docs;chore

※ 参考阿里前端规约的工程化思想: alibaba/f2e-spec

7. 验证体验与完成交付

我从三个层次检查结果:规则是否正确、界面是否符合设计、用户能否理解并完成任务。 走通主流程,核对跨页面数据与状态,再检查字体、间距、换行、安全区和操作反馈。

评审发现的问题进入下一轮任务:视觉偏差回到设计源核对,状态错误回到产品规则定位,重复实现回到组件边界处理。修正后同步设计与文档,每次提交保持一个明确目的。

Workflow /建立约束驱动流程 完成开发交付闭环

Vibe Coding · 三类约束文档、结构化提示、质量检查、人工走查与版本交付

design.md

product.md

tech.md

Work with ChatGPT

结构化提示词feature
  1. 触发
  2. 判断
  3. 变化
  4. 反馈
  5. 结果

用户从{{入口}}进入Figma 页面,在满足{{前置条件}}时,对Figma 组件-变体A执行{{核心操作}}。依据{{业务规则}}进行判断,组件切换为Figma 组件-变体B,同步更新{{关联数据或跨页面状态}},并通过{{文案/显隐/动效}}反馈结果。操作完成后,{{停留当前/进入下一页}}。

代码质量检查

人工走查

  • 链路完整性
  • 业务逻辑一致性
  • 体验流畅性
  • 响应式适配性
  • 视觉还原度

是否通过

开发交付闭环

  • 完整产品体验走查
  • 更新真实工程目录
  • 生成README.md

✿ 亦感谢Claude Code、Gemini的早期探索陪伴~

※ 本此体验优化项目工程已开源: zimaStrawer/MTpaotui

下一步,我会补充键盘焦点、表单标签与错误反馈检查,并围绕送花等场景开展用户测试,记录任务完成情况、误操作和卡点。这些属于待验证环节,最终以真实观察为依据。

交付包含可运行版本、项目文件、运行说明、已实现范围和已知限制。实现中确认的规则继续回到 Figma、组件库和三份文档,让下一次迭代拥有更清晰的起点。