发布于 2026-08-18 · 作者 MarkupGen 团队
从 Figma 到 Pico CSS:实用转换指南

在 MarkupGen 支持的所有框架里,Pico 是最小、主张最少的一个——一套以无类优先(classless-first)为理念的样式表,直接为语义化 HTML 标签(<button>、<article>、<nav>、<form>)设置样式,不需要工具类,也不需要学习任何组件库。这让它成为转换后审查起来最快的框架,但同时也意味着,整个转换质量只取决于一件事:输出的标记是否真正语义化,而不只是视觉上正确。
为什么手动把 Figma 转成 Pico 很慢
Pico 省去了其他框架要求的选类工作,但这把难点提前转移到了流程的更早阶段——转移到了标记本身:
- 为每个元素选对语义标签,因为 Pico 没有备用类来掩盖一个错误的选择——一张卡片如果最终变成通用的
<div>而不是<article>,就完全不会获得 Pico 的样式。 - 正确构建表单结构。 Pico 会自动为
<label>、<input>、<fieldset>和<select>设置样式,但前提是它们按照纯 HTML 预期的方式嵌套和配对——这是手动转换中常见的出错来源。 - 在几乎没有覆盖类可用的情况下把间距做对,因为 Pico 的理念是合理的默认值,而不是精细的工具类控制——一个间距不标准的设计,需要在上面有意添加少量 CSS,而不是随手加一个工具类。
- 验证明暗主题的行为,Pico 会根据语义结构自动处理,但只有在真实标记存在、可以拿来测试之后,才能看出它是对是错。
每一点单独看都很简单,但当没有任何类名能提示"这里应该看起来像张卡片"时,很容易在整页范围内犯下细微的错误。
MarkupGen 如何从真实设计生成 Pico 输出
MarkupGen 的核心是把底层标记做对,而这一点对 Pico 的重要性超过任何其他输出格式。工作流程在所有目标格式上都是一样的:
- 用 MarkupGen 插件从 Figma 导出 frame,同时捕获结构、样式和图片。
- AI 根据设计的真实结构构建标记,优先使用有意义的语义标签,而不是通用的嵌套
<div>。 - 在内置编辑器里打磨内容、字体和布局,再最终确定。
- 导出最终代码包,目标为 Pico v2。
由于 Pico 完全依赖语义化 HTML 才能正确应用样式,这正是 MarkupGen 默认偏好干净、语义化标记直接发挥作用的地方——一个看起来像卡片的 frame 会变成 <article>,一个表单 frame 会变成正确嵌套的 <form>/<label>/<input> 结构,导航会变成 <nav>,于是 Pico 内置的样式无需任何类就能生效。
Pico 在 MarkupGen 输出格式中的定位
Pico 是 MarkupGen 六种 CSS 目标之一,与纯 CSS、Tailwind、Bootstrap、Bulma 和 Materialize 并列,可以按项目选择,而不是固定在整个账户上。它适合文档站点、原型和内容优先的页面——在这些场景里,干净、无障碍的基础比对高度定制设计的像素级控制更重要。想看它和另外五种格式的对比,见MarkupGen 支持的 6 种 CSS 框架。
发布前检查生成的标记
用 Pico 时几乎没有类列表可查,所以检查清单转向了结构和行为:
- 检查卡片、表单和导航是否使用了正确的语义标签——这是决定 Pico 样式能否生效的最大因素。
- 同时测试明暗两种主题,因为 Pico 会自动切换,一个结构性错误可能在一个主题下看起来没问题,在另一个主题下就出问题。
- 确认表单字段被正确标注和嵌套,因为这正是触发 Pico 输入框样式的条件。
- 用内置编辑器做内容或布局调整,而不是手动修改导出的标记,再重新导出。
每次导出还会附带一个自动 AI 质量评分,作为发布前的快速信号。
在你自己的设计上试试
如果你想要尽可能轻量的输出、几乎不需要维护 CSS,不妨看看一个来自真实设计、语义正确的导出结果,和手动转换的版本相比如何。免费试用 MarkupGen,用你自己的某个 frame 试试,或者查看 Figma 转 Pico CSS 转换器页面,了解开箱即得的内容。
