什么是 Figma 变量?

Figma 变量是保存在 Figma 文件里的具名值,支持颜色、数字、字符串和布尔值,并可为浅色和深色等场景设置模式。它是 Figma 原生的设计 Token 形式,但要通过 Figma REST API 读取则需要 Enterprise 套餐。

它们能做什么

变量让一个 Figma 文件可以保存有名字的值,而不是到处重复原始值。支持四种类型:颜色、数字、字符串和布尔值。

它们可以组织成集合,每个集合可以有模式——最常见的是浅色和深色,也可以是密度、品牌或平台。绑定到变量的图层会随模式切换而更新,这让 Figma 内部的主题切换按应有的方式工作。

变量还可以是其他变量的别名,语义层就是这么搭起来的:text/danger 指向 red/600。

难点在哪里

变量解决的是 Figma 内部的问题。Figma 之外的问题没有解决,而团队正是在这里被打个措手不及。

通过 Figma REST API 读取变量需要 Enterprise 套餐。 这个端点是存在的,在 Professional 和 Organization 套餐上返回 403。

这在评估工具时会带来相当实际的后果。任何承诺通过 REST API 做 Figma Token 同步的东西,在 Enterprise 账号上能跑,在大多数团队实际用的套餐上则字面意义上什么都不做。这件事值得在购买前直接问清楚,因为它通常不会出现在营销材料里。

插件不受影响。插件 API 从文件内部读取变量,而插件在任何套餐上都能运行。一个以插件为传输方式的工具,跟你的 Figma 等级无关,照样能用。

变量与设计 Token

Figma 变量是设计 Token 的一种形式,作用范围限定在 Figma 内。它们本身并不可移植:没有内置的导出到 CSS、到 Tailwind 或到 W3C Token JSON 格式的能力。

弥合这个落差,正是 Token 类工具存在的意义。选择在于:一个到处都能用的插件,还是一个并非到处都能用的 REST API。

这与 Flash DSM 的关系

Flash DSM 正是出于这个原因才用 Figma 插件作为传输方式。它在任何 Figma 套餐上都能读取变量,把一次发布变成可评审的 Token diff,并导出为 CSS、Tailwind、Tokens Studio JSON 或一个 GitHub pull request。