Figma Variables 和 Styles 的差異

在 Variables 推出前,Figma 的 Styles(樣式系統)已經支援顏色、文字、效果的重複使用。Variables 和 Styles 的主要差異:

Styles(樣式):存儲外觀的設定值,例如「品牌主色是這個深海軍藍」。適合命名和重複使用具體的外觀值。

Variables(變數):存儲原始的值或對其他變數的參照,支援多個模式(Mode)。適合主題切換(淺/深色模式)、設計 token 系統(semantic color tokens),以及數值類型的設計規格(間距、尺寸)。

簡單理解:Variables 比 Styles 更靈活,特別是在需要管理「設計 token」和「主題系統」時。

顏色變數的分層設計

好的顏色設計系統通常分兩層:

Primitive Colors(原始顏色)

這是顏色的原始定義層,不帶語意,只定義調色盤中有哪些顏色:

例如:navy-900: #1a2744, navy-800: #243352, warm-50: #faf9f7, accent-600: #c9a84c

Semantic Colors(語意顏色)

這是語意層,把原始顏色賦予設計的用途意義,並引用 Primitive Colors 的值:

例如:

  • color/background/primary → 引用 warm-50
  • color/text/default → 引用 navy-900
  • color/brand/accent → 引用 accent-600
  • color/status/success → 引用 green-600

為什麼要分兩層?因為如果你直接在元件中引用原始顏色,主題切換(淺/深色)很麻煩——你需要逐一改每個元件。

有了語意層,深色模式只需要把 color/background/primary 從 warm-50 改成 navy-950,所有引用這個語意變數的元件自動更新。

設定 Modes(模式)

Figma Variables 的 Modes 功能讓你定義同一個變數在不同情境下的不同值。

常見的 modes:

Light / Dark:同一個語意顏色在淺色和深色模式下有不同的原始顏色值。

品牌主題切換:如果你的設計系統服務多個品牌,不同品牌的 accent color 可以是不同值,但設計稿引用同一個語意變數 color/brand/accent。

間距和尺寸變數

除了顏色,Variables 也支援數值類型,讓你統一管理間距、圓角、陰影距離等設計規格。

定義一組間距 token,例如:

  • spacing/xs: 4
  • spacing/sm: 8
  • spacing/md: 16
  • spacing/lg: 24
  • spacing/xl: 40

在元件中套用這些間距 token,確保整個設計系統的間距一致,而不是各元件各自設定任意數值。

Variables 和 Tailwind CSS 設計規格對齊

如果你的開發環境使用 Tailwind CSS,把 Figma Variables 的命名和 Tailwind 的 design token 對齊是很大的效率提升:

Figma Variables 中的 color/text/default → Tailwind 中的 text-navy-900

spacing/lg: 24 → p-6(24px = 6 × 4px Tailwind base)

當設計和開發使用相同的命名系統,設計師說「這裡用 spacing/lg 的間距」,開發者知道是 p-6,不需要反覆確認數值。

建立 Variables 的實用步驟

  1. 在 Figma 中開啟 Variables panel(Assets → Variables)
  2. 建立 Primitive Colors 集合:把品牌調色盤中的所有顏色一一定義
  3. 建立 Semantic Colors 集合,設定 Light 和 Dark 兩個 mode:每個語意名稱在 Light mode 引用對應的 Primitive Color
  4. 建立 Spacing 和 Radius 集合:定義你的尺寸 token
  5. 把 Variables 套用到元件庫的元件:在 Figma 的顏色填充中,不直接輸入顏色值,而是選擇對應的 Variable

建立過程需要前期投入時間,但建立後每次調整品牌色或主題,只需要修改 Primitive Color 的值,整個設計文件自動更新——這讓品牌視覺維護的效率大幅提升。