AB
AiBoss
チュートリアル

Quest AI

チュートリアル

用 Quest AI 把 Figma 设计稿转成可维护的 React 组件

Quest AI 能把 Figma 设计稿转成可扩展的 React 组件,并把设计稿沉淀成一套可复用的组件库。这篇教程讲清前置准备、Figma 文件的结构要求、Personal Access Token 的获取、项目导入与断点帧选择,以及导入后如何构建、检查并发布页面,最后给出一个从设计稿到可运行页面的完整示例。

Quest AI 是一个把设计稿转成前端代码的平台,主要面向 React 技术栈。它要解决的问题很具体:设计稿在 Figma 里做得再精细,交到开发手上仍然要重新量间距、重写组件、反复对齐,前端因此成为交付流程里最容易卡住的一环。Quest AI 的做法是把 Figma 文件当作唯一事实来源,从中生成可复用、可继续扩展的 React 组件,而不是一次性吐出难以维护的静态页面。适合使用它的是这样一类团队:已经有自己的代码仓库和开发流程,希望前端 UI 的开发速度快一些,但不愿意把整个站点托管在某个建站平台上,也不愿意放弃对代码的控制权。如果你只是想快速做一个原型页面、不打算维护代码,这类工具并不是为你准备的。站内也有对应的工具条目可以一并参考:Quest AI。

需要先说明一个容易混淆的地方。技术领域里叫「Quest」的东西不止一个:有做企业 IT 管理与网络安全的 Quest Software,也有 Meta 为其 VR/MR 系统 Horizon OS 制定的 Quest Design System。本文讨论的是 Quest.ai,即那个把 Figma 设计稿转成 React 代码的平台,与上述两者没有关系。本文里提到的「设计系统」,指的是你在 Quest AI 中由 Figma 文件生成的那套组件库,不是 Meta 的那套 UI 规范。

准备工作

在动手之前,把下面几项准备好,后面的流程会顺畅很多。

  • 一个 Quest AI 账号。平台是网页端产品,登录后在控制台里新建项目,不需要在本地安装客户端。
  • 一个 Figma 账号,并且对要导入的设计文件有访问权限。Quest AI 是通过 Figma 的 Personal Access Token 读取你的文件的,所以这个账号必须能看到目标文件。
  • 一份结构整理过的 Figma 设计稿。这一步最容易被跳过,但它直接决定生成结果的质量,下面单独展开。
  • 一个可以接收生成代码的前端项目。Quest AI 主要输出 React 组件,如果你的项目是 Next.js 之类的 React 框架,接入会比较自然。

Figma 文件需要满足的结构要求

Quest AI 的响应式能力依赖 Figma 文件里的层级结构。它需要知道同一个页面在桌面、平板、手机等不同宽度下分别长什么样,而它判断的依据就是顶层 Frame。所以正确做法是:为每一个要支持的断点各建一个顶层 Frame,例如 Desktop、Tablet、Mobile 三个 Frame 并排放在同一页里。导入时平台会让你指定哪个 Frame 对应哪个视图,如果所有内容都塞在一个 Frame 里,或者用分组代替 Frame,响应式映射就无从建立。

除了断点 Frame,还有几项整理工作值得在导入前完成:

  • 图层与分组使用有意义的名称。生成出来的组件名往往直接来自图层名,一堆「Frame 123」「Group 45」会让后续维护非常痛苦。
  • 把逻辑上属于一体的元素放在同一个分组里。比如一个图标和它旁边的文字标签,应该归为一组,这样它们才会被当作一个整体处理,而不是两个互不相关的元素。
  • 尽量使用 Figma 的 Auto Layout。用 Auto Layout 搭出来的结构本身带有弹性约束,转换后的组件在内容变化时表现更稳定;靠绝对定位堆出来的布局,转成代码后往往一改内容就错位。
  • 检查重复元素。同一个按钮在多个页面里反复出现时,在 Figma 里用组件(Component)表达,比复制粘贴多份更有利于生成统一的组件库。

操作步骤

第一步:在 Figma 中生成 Personal Access Token

Quest AI 需要一个凭证来读取你的 Figma 文件,这个凭证就是 Figma 的 Personal Access Token。它是一次性配置,生成之后可以长期复用。

  1. 登录 Figma,进入账号设置。
  2. 找到「Personal access tokens」区域。
  3. 新建一个 token,生成后立即复制保存。Figma 只在生成时展示一次,关掉页面就再也看不到了,只能重新生成。

这个 token 等同于你账号的读取权限,不要写进代码仓库,也不要贴进公开的文档或聊天记录里。如果怀疑泄露,回到同一位置撤销并重新生成即可。

第二步:在 Quest AI 中新建项目

登录 Quest AI 控制台,点击「+ New Project」新建项目。在项目类型里选择「Responsive Web Pages」,也就是响应式网页。这个类型对应的是「一个页面在多个断点下有不同布局」的场景,正好匹配上一步在 Figma 里准备的多个顶层 Frame。

选择设计工具时选 Figma。平台支持的不止 Figma,但本文的流程以 Figma 为准。

第三步:导入 Figma 文件并选择断点 Frame

在导入界面里,需要提供两样东西:

  • Figma 文件 URL。从浏览器地址栏复制目标文件的链接。
  • 上一步生成的 Personal Access Token。

填好后点击「Import」。Quest AI 会解析这个文件,并把识别到的 Frame 列出来。此时需要你手动指定:哪个 Frame 是桌面视图,哪个是平板视图,哪个是手机视图。这一步就是把 Figma 里的顶层 Frame 和平台的响应式视图对应起来,选错了会导致生成的页面在某个宽度下布局错乱。

导入前再确认一次:每个断点都有独立的顶层 Frame,且命名能让你一眼分辨出它对应哪个宽度。导入后再改结构,需要重新走一遍导入流程。

第四步:构建、检查与发布

导入完成后,平台会基于选中的 Frame 生成对应的页面与组件。接下来的工作是审阅和调整:

  • 检查组件拆分。确认重复出现的按钮、卡片、导航栏被抽成了可复用组件,而不是每个页面各生成一份。
  • 检查响应式表现。在桌面、平板、手机三个宽度下分别查看布局,重点看间距、换行和元素堆叠顺序是否符合设计意图。
  • 检查生成代码的可读性。Quest AI 的输出定位是可继续扩展的 React 代码,而不是压缩过的产物。如果发现某些结构明显不合理,回到 Figma 调整图层结构往往比在生成结果上打补丁更省事。
  • 发布。确认无误后发布页面,得到一个可访问的线上地址。

一个完整示例

下面用一个最小但完整的场景走一遍全流程:把一个产品落地页从 Figma 变成线上可访问的 React 页面。

场景设定

落地页包含三块内容:顶部导航栏、居中的主视觉区(标题、副标题、一个行动按钮)、底部三列功能卡片。需要在桌面、平板、手机三种宽度下都能正常显示。

1. 在 Figma 中搭好三个断点 Frame

新建一个 Figma 文件,在同一页里放三个顶层 Frame:

  • 命名为 Desktop,宽度按桌面端设计稿设定;
  • 命名为 Tablet,宽度按平板设定;
  • 命名为 Mobile,宽度按手机设定。

三个 Frame 里放同样的内容,但布局按各自宽度调整:桌面端三列卡片横排,平板端可能变成两列加一行,手机端变成单列纵向堆叠。导航栏在桌面端横向展开,在手机端收成一个菜单图标。

每个 Frame 内部,用 Auto Layout 组织结构。导航栏里的 logo 和菜单项各自成组;主视觉区的标题、副标题、按钮纵向排列在一个 Auto Layout 容器里;每张功能卡片把图标和文字归为一组。图层名统一改成 NavBar、Hero、FeatureCard 这类可读名称。

2. 生成并保存 Figma Token

进入 Figma 账号设置的「Personal access tokens」,新建一个 token,复制下来暂存到安全的位置。这个 token 后面只在这一步用到一次。

3. 在 Quest AI 中创建项目并导入

登录 Quest AI,点击「+ New Project」,项目类型选「Responsive Web Pages」,设计工具选 Figma。把落地页文件的 URL 和刚才的 token 填入,点击「Import」。

解析完成后,在 Frame 列表里把 Desktop 指定为桌面视图、Tablet 指定为平板视图、Mobile 指定为手机视图。确认后进入构建阶段。

4. 审阅生成结果

进入编辑器后,按下面的顺序检查:

  1. 看导航栏是否被识别为一个独立组件,菜单项是否是它的子元素。
  2. 看三张功能卡片是否被识别为同一个组件的三个实例。如果是三份独立代码,说明 Figma 里没有用组件表达,需要回去改。
  3. 切换预览宽度,依次查看桌面、平板、手机三种布局,确认卡片列数和导航栏形态按设计变化。
  4. 检查主视觉区的按钮,确认它在不同宽度下保持居中且文字不换行错位。

5. 发布并接入自己的项目

确认无误后发布页面,得到一个线上地址,可以直接发给同事评审。同时把生成的 React 组件取回,放进你自己的前端项目里。由于输出的是标准 React 组件,它可以和现有的路由、状态管理、样式方案共存,而不是要求你把整个站点搬到平台上。

后续设计稿有改动时,回到 Figma 修改对应的 Frame,再重新导入并对比生成结果,把变化的部分合并进代码库。这也是把 Figma 当作唯一事实来源的实际含义:设计变更从设计稿出发,而不是从代码反向猜。

注意事项

输入质量决定输出质量

这类工具的效果高度依赖 Figma 文件的规范程度。顶层 Frame 缺失、图层命名混乱、大量使用绝对定位、把本该是组件的元素复制多份,都会直接反映在生成结果里。与其在生成后反复修补,不如在导入前花时间整理设计稿。

断点 Frame 的映射是一次性的

导入时指定的 Frame 与视图对应关系,决定了后续响应式行为。如果之后在 Figma 里新增了一个断点,或者调整了 Frame 的宽度,需要重新导入并重新指定映射,不能指望平台自动感知。

Token 只显示一次

Figma 的 Personal Access Token 在生成时只展示一次,务必当场保存。丢失后只能撤销旧的、重新生成新的,并回到 Quest AI 更新配置。

它不替代你的代码仓库

Quest AI 的定位是加速前端 UI 的开发,而不是取代开发流程。它生成的是可以继续维护的 React 代码,最终仍然要进入你自己的版本控制、构建和部署体系。如果你的团队没有现成的前端工程,只是想要一个托管好的网站,那么 Webflow、Bubble 这类一体化建站平台更符合需求;Quest AI 面向的是已经有开发流程、希望保留代码控制权的团队。

与同类工具的差异

市面上的设计稿转代码工具各有侧重。Anima 以 Figma 插件和网页平台的形式提供,输出覆盖 React、Vue 和 HTML,更偏向快速产出可交互原型;Bitloops 走 VS Code 扩展路线,深度嵌入开发者的本地工作流,输出 React 并附带 Storybook 与 Cypress 测试。Quest AI 的差异点在于以网页平台为主、输出以 React 为核心,并把重点放在由 Figma 文件持续生成一套统一的组件库上。选哪个取决于你的团队更看重原型速度、本地开发集成,还是组件库的一致性。

价格与配额以官网为准

Quest AI 的套餐划分、免费额度、项目数量上限、导出限制等属于会随时调整的信息,本文不给出具体数字。在决定投入之前,请到官网查看当前的定价页面与功能说明,并以页面上的信息为准。同样,Figma 侧的 token 权限范围与账号类型限制,也请以 Figma 官方文档的当前描述为准。

发布前的人工检查不能省

自动生成的代码需要人工过一遍。重点看三处:响应式断点处的布局跳变是否自然、重复组件是否真的被复用、生成的结构是否便于后续修改。把这三项检查固定成发布前的流程,能避免大部分返工。