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

Materialize 和 MarkupGen 支持的其他框架不太一样:它不是一个供你在上面自由设计的中性网格,而是谷歌 Material Design 的一种有明确主张的实现——卡片、chip、层级阴影,还自带一套用于交互组件的 JS。正是这种主张,让它在 Figma 设计已经遵循 Material 规范时特别有用,也正是它,让手动转换比看起来要慢得多。
为什么手动把 Figma 转成 Materialize 很慢
把一个设计带入 Materialize 特定的词汇体系,不只是复制间距数值——还要识别每个 Figma frame 究竟想表达哪种 Material 模式:
- 把 Figma 组件对应到 Materialize 的等效组件。 一个看起来像卡片、带阴影的 frame,必须变成一个真正的
.card组件,配上正确的层级类,而不是一个手动复制了box-shadow的通用<div>。 - 把 Auto Layout 映射到 Materialize 的 12 列网格,包括它特有的断点类
row/col s* m* l*——这是一套和纯 flexbox 不同的系统,没法从其他框架的转换经验里照搬。 - 接通依赖 JS 的组件。 和纯类框架不同,弹窗、下拉菜单和侧边导航都依赖 Materialize 的 JS 初始化函数——手动转换标记时很容易漏掉,而且会悄悄破坏交互功能。
- 重建层级和颜色,要用 Materialize 自己的阴影刻度和 Material 调色板,而不是直接从 Figma 检查器里取原始数值。
每一步单独看都能应付,但一整个页面意味着要把这四步都做一遍,反复来,还不能漏掉那个让一半功能真正能用起来的 JS 初始化。
MarkupGen 如何从真实设计生成 Materialize 输出
MarkupGen 的设计目标是消除这种手动模式匹配,而不只是让它更快。无论输出格式是什么,工作流程都是一致的:
- 用 MarkupGen 插件从 Figma 导出 frame,同时捕获结构、样式和图片。
- AI 根据设计的真实结构构建标记,而不是一个大致的视觉近似值。
- 在内置编辑器里打磨内容、字体和布局,再最终确定。
- 导出最终代码包,目标为 Materialize 1.0.0。
导出时,使用 Auto Layout 的行和列会被映射到 Materialize 的网格类上,填充色和层级会解析为最接近的 Material 颜色和阴影,而在设计包含交互元素的地方,对应的 Materialize JS 也会一并包含进来,让组件开箱即用,而不是渲染成没有反应的静态标记。
Materialize 在 MarkupGen 输出格式中的定位
Materialize 是 MarkupGen 提供的六种 CSS 目标之一,与纯 CSS、Tailwind、Bootstrap、Bulma 和 Pico 并列,可以按项目选择,而不是固定在整个账户上。当 Figma 设计已经遵循 Material Design 规范时,它就是正确的选择——仪表盘和内部工具是最常见的场景,因为 Material 的视觉语言在那里本来就是既定规范。想看它和另外五种格式的对比,见MarkupGen 支持的 6 种 CSS 框架。
发布前检查生成的标记
Materialize 那些有明确主张的组件,意味着审查的重点不在于像素级匹配,而在于确认行为是否正常:
- 点一遍交互组件(弹窗、下拉菜单、侧边导航),确认 JS 初始化函数正确接入,而不只是静态标记正确。
- 检查层级的一致性——同一种卡片的视觉样式,在每处重复出现的地方都应该对应同一个阴影类。
- 确认设计的调色板合理地映射到了 Material 调色板,尤其是那些不完全落在某个 Material 色板上的品牌色。
- 用内置编辑器做布局或内容调整,而不是手动修改导出的标记,再重新导出。
每次导出还会附带一个自动 AI 质量评分,作为是否可以发布的快速信号。
在你自己的设计上试试
如果你还在手动把 Figma frame 匹配到 Materialize 组件,不妨看看当这个过程由设计的真实结构驱动时,这部分模式匹配工作能省下多少。免费试用 MarkupGen,用你自己的某个 frame 试试,或者查看 Figma 转 Materialize 转换器页面,了解开箱即得的内容。
