发布于 2026-08-24 · 作者 MarkupGen 团队
Figma 转代码:React、Vue 与 CSS 框架支持

在任何设计交接工作中,最耗时的决定往往不是设计好不好看,而是生成的代码要跑在哪套技术栈上。React 团队需要带类型 props 的 JSX,Vue 团队需要一个规范的 Single File Component,而一个静态落地页可能根本不需要框架。MarkupGen 不会把你锁定在某一种输出技术栈上——同一份 Figma 设计,每次导出时都可以单独选择输出框架。
转换是如何进行的
在选择框架之前,MarkupGen 会先用四个步骤处理设计稿:
- 从 Figma 导出 frame。 MarkupGen 的 Figma 插件会把你选中 frame 的结构、样式和图片直接发送到你的 workspace——而不是一张需要你凭肉眼重建的截图。
- AI 根据真实设计构建 HTML/CSS。 布局、间距、颜色和 Auto Layout 都直接从 Figma 文件中读取,而不是笼统地猜测。
- 选择输出格式。 这一步你可以选择框架:纯 HTML/CSS、React、Vue、Svelte、Angular,以及专门针对 CSS 的 Tailwind、Bootstrap、Bulma、Materialize 或 Pico。
- 微调后再导出。 在可视化编辑器里调整内容、字体和布局,再拉取最终代码,同时还会附带一个自动 AI 质量评分,让你知道这份导出是否已经可以使用。
由于结构和样式只从源设计中读取一次,你可以在第 3 步随意切换输出格式,而不用每次都从头重建设计。
导出为 React
选择 React,MarkupGen 会生成一个函数组件,使用 JSX 编写,导出时可以切换生成 TypeScript(TSX)还是纯 JavaScript(JSX)。Props 是带类型的,如果你需要按组件划分样式作用域而不是共用一份样式表,还可以把样式导出为 CSS Modules,而不是内联样式。Figma 的 Auto Layout 会直接映射成组件样式里的 Flexbox,所以你拿到的组件已经内置了响应式结构,而不是一段套上 props 的静态 HTML。如果想更深入地了解完整工作流,可以参考Figma 转 React:开发者的实用工作流。
导出为 Vue
选择 Vue,得到的是一个规范的 Vue 3 Single File Component(.vue),使用 defineProps 声明 props,并保留大多数现有 Vue 代码库都在使用的 <template>/<script>/<style> 结构。和 React 一样,由 Figma Auto Layout 生成的布局会在组件样式里保留 Flexbox 结构,而且你仍然可以在同一个导出界面里设置组件名称,并切换 TypeScript 与纯 JavaScript。更多关于 Vue 导出内容的详情,请参阅 Figma 转 Vue 转换页面。
Svelte 和 Angular 同样支持
除了 React 和 Vue,MarkupGen 还支持导出 Svelte(4/5)和 Angular(17+,以独立组件的形式)——如果你的团队没有用这两种最常见的技术栈,但仍然希望拿到一个组件而不是静态 HTML,这会很有用。
每个组件都能搭配的 CSS 框架
如果你不需要特定 JS 框架的组件,也可以直接导出为 HTML/CSS,并在项目配置里选择一种 CSS 框架:Vanilla CSS、Tailwind、Bootstrap、Bulma、Materialize 或 Pico。AI 会把布局重新映射到该框架真实的栅格、间距和 class 规范上,而不是套一个通用 class 留给你自己去修。想详细了解这六种框架在输出体积、设计还原度、学习曲线上的取舍,可以参考MarkupGen 支持的 6 种 CSS 框架。
该为你的项目选哪一种
- 已经在用 React 或 Vue 的现有代码库? 直接导出 React 或 Vue 组件,再根据团队习惯搭配 Tailwind 或 CSS Modules。
- 只需要一个不用打包工具的静态页面? Vanilla HTML/CSS 或 Pico——没有运行时依赖。
- 想用现成组件(navbar、modal、表单)快速搭出可用界面? Bootstrap 或 Materialize。
- 团队用的是 Svelte 或 Angular? 两者都会导出为规范的组件,而不是需要你自己从 HTML 手动转换。
没有哪一种方案适合所有项目——重点在于,MarkupGen 让你可以在同一份源设计上按每次导出单独选择框架,而不是把你锁定在一种技术栈里。用你自己的 Figma 文件免费试试,看看你实际在用的技术栈会生成什么样的代码。
