最近有个需求是:根据已有的设计图 ui 做前端页面。目前 ai 对已有的网页 1:1复现效果比较好,比如使用 html-to-design(插件),但是明确的设计图 ai 做起来有一点难度,搜了一圈也没有太好的解决方案,自己摸索了一下,总结了点经验。
1.工具准备:
我是 vscode 里安装 augment,然后 augment 里安装 figma mcp,连接本地的 figma 桌面端应用。
注意的是根据官方文档,有远程和本地应用使用两种方式(
developers.figma.com),但是我配置远程后授权过不去,所以只能配置为本地,mcp ) json 参考:
{
"mcpServers": {
"Figma Desktop": {
"url": "
127.0.0.1",
"type": "http"
}
}
}
安装后会在 mcp 里提示授权,点击授权会跳转,提前打开最新版 figma 桌面端应用,然后按 shift+d 进入 dev 模式,会看到右侧栏的 mcp 相关内容,勾上“允许下载文件”和“Download”,最后配置好后会显示“Enabled”
图1
Figma 我是用的是 edu 版,有 dev 模式和 figma make(带 ai 免费版额度有限),后续设计图转前端也主要通过这两种方式实现
Cursor 里用可以参考
web.okjike.com2.实战开发:
我测试下来主要有两种方式:figma 设计图直接通过 figma mcp 让 augment 掌握设计图的细节,直接开发;或者使用 figma make,将设计图转为真实的前端代码,通过 ai 进行调整,直到符合需求,然后导出代码文件,最后放入到项目文件中让 ai 参考 100%还原实现
实际体验下来,后者即 figma make 的方式比较好,基本上代码文件有了,ai 对话一轮就能还原效果;前者通过 figma mcp 有时候需要多轮修改,而且对设计图本身要求比较高
Figma make:
这个很简单,进入 figma,然后进入 make(右上角),拿设计图放进去,说清楚需求即可。需要注意描述需求的时候可以指定用到的技术栈(比如 vue 等),这样后续导出代码复用起来就很快;还有一点就是如果设计图不是标准 figma 格式,比如 xd/ps 这种,可以先导入即刻设计,然后导出为sketch,最后拖入到 figma 内即可(后面另一种利用 figma mcp 的方式也可以这样转设计图)
图2
在 make 内一直和 ai 对话,直到页面符合需求,点击 code,点击代码页面右上角的“下载”按钮,保存到本地,最后会有一个压缩包,里面就是页面的所有文件。需要注意,导出前可以问一下 ui 最终压缩包内的文件哪些是真实可用的,比如 guidelines 或者 md 文档等一般没什么用,可以选择性删除让文件结构更清晰,或者直接不处理放进项目让 ai 自己查看,差别也不大
Figma mcp:
这种方式就是直接在 figma 设计图里通过 mcp 让 ai 知道指定页面内容的细节,然后让 ai 实现。必须先 shift+d 进入 dev 模式,然后鼠标点击某个想要让 ai 复现的页面,右击复制为“link”(后后续发给 ai 会用到),点击页面后右侧会出现对应的状态,可以使用 Figma to Code 这个插件,选择页面实现的技术栈,ai 会拿到更精确的信息。
最后将之前复制的“link”发给 ai,一般是类似“
www.figma.com”,描述下需求,让 ai 还原页面,正常情况下 ai 通过 mcp 拿到设计图信息后,会在右侧状态栏中显示“发送状态”和“token”
图3
为什么说这种方式效果比直接用 figma make 生成代码进行复用差一点,主要问题就是通过 mcp ai 拿到的是整个设计图的信息,对设计图要求高,比如你的设计图内必须规范,不能有没有用到的废弃/隐藏图层/元素,各个组件都需要分组整合,不能全都是独立的,不然 ai 拿到的信息会很杂乱,最终会下载所有的资源到本地,生成的页面也是每一个单独的元素摆放上去,后续调整就非常麻烦,而且效果不一定理想
以上就是我遇到的一些坑和经验,如果你有相关经验和更好的方法,欢迎交流 0.o