导出与代码
你的令牌不必只待在 Figma 里。从网页应用按代码库实际使用的格式导出(无需插件),或者让构建流程和 AI 工具以代码形式拉取最新令牌。
从网页导出
在项目列表中,打开项目卡片的 ⋯ 菜单并选择 导出;或者在项目内右键点击左侧边栏中的集合(或表格中的某一行),选择 导出此集合。会打开一个包含以下选项的对话框:
- 范围 — 要导出的集合:勾选 所有集合,或逐个选择。从某个集合打开时,该集合默认已勾选。
- 格式 — 下列六种之一。
- 将引用解析为值 — 把
{Primitive/blue/500}这样的别名替换为最终值。平台代码格式始终会解析,因此该复选框对它们保持勾选且不可更改。

| 格式 | 输出 |
|---|---|
DTCG(.tokens.json) | W3C 设计令牌社区组(DTCG)格式 |
| JSON | 原始变量,每个令牌一条 |
| CSV | 电子表格——每个变量一行,每个模式一列 |
| CSS | 自定义属性——默认模式在 :root,其他模式在 [data-theme="…"] |
| SwiftUI | 每个集合一个类型,每个模式一个静态实例 |
| Jetpack Compose | Kotlin——每个集合一个类,每个模式一个值 |
可直接粘贴的平台代码
选择 CSS、SwiftUI 或 Jetpack Compose,就能得到可直接放进应用的代码。转换在服务器上进行,且是确定性的——相同的令牌总会产生相同的字节,因此差异清晰、便于缓存。含有 light 和 dark 模式的集合输出如下:
/* CSS custom properties */
:root {
--colors-button-background: #18181b;
--colors-radius-md: 8px;
}
[data-theme="dark"] {
--colors-button-background: #fafafa;
}
// SwiftUI — one instance per mode
struct ColorsTokens {
let buttonBackground: Color
let radiusMd: CGFloat
static let light = ColorsTokens(buttonBackground: Color(vjHex: 0x18181B), radiusMd: 8)
static let dark = ColorsTokens(buttonBackground: Color(vjHex: 0xFAFAFA), radiusMd: 8)
}
// Jetpack Compose (Kotlin)
class ColorsTokens(val buttonBackground: Color, val radiusMd: Dp)
val ColorsTokensLight = ColorsTokens(buttonBackground = Color(0xFF18181B), radiusMd = 8.dp)
val ColorsTokensDark = ColorsTokens(buttonBackground = Color(0xFFFAFAFA), radiusMd = 8.dp)
引用始终会解析为最终值;无法解析的会保留为注释,绝不会编造数值。
重新导入令牌
项目卡片的 ⋯ 菜单中还有 导入。拖入 JSON 或 DTCG 文件后,会在创建任何内容之前显示预览——集合、变量和模式的数量以及警告。确认后会作为新集合添加(颜色解析较宽松:3 位或 6 位十六进制、rgb()、hsl() 都可以)。这次变更会以导入的形式记入历史。
无法表示的值——排版、阴影等复合令牌,单位不是 px 的尺寸,无法读取的颜色,以及与类型不符的值——不会被猜测,而是直接跳过;预览会显示跳过的数量和名称。再次导入同一文件会再添加一个新集合。
通过 API 与 MCP 拉取
对于 CI 流水线和 AI 编程工具,不必手动导出——直接拉取。同样的平台格式可通过 REST API 的 ?format=css|swift|compose 获取,@variablejar/mcp 服务器提供 get_tokens 工具,让 IDE 中的智能体以代码形式获取最新令牌。一个项目 API 令牌即可同时用于两者。