語意化 Token
原文由 Francesco Puppo 于 發布,訂閱此部落格
如果你的設計系統還沒導入語意化 Token,就等於錯過了提升可擴展性與效率的關鍵工具。
是什麼
語意化 Token 讓你建立一套結構化且彈性的系統,設計決策是依用途而非原始數值來定義。與其直接為按鈕或文字指定固定的色碼,你會使用像是 primary-button-bg 或 warning-text 這樣的 Token。
也就是說,你的主要按鈕背景色不會直接是 blue/500,而會是 primary-button-bg,它的值指向 blue/500(而 blue/500 對應的 HEX 色碼為 #5A8DD7)。
我們用一個視覺化範例來說明,不過要記得,在實際操作之前,很難真正體會它有多好用。
一般來說,你會這樣把變數套用到元素上:

現在,假設你想把 component-2 的外框改成 #0D0D0D,你就得這樣做:

雖然看起來沒什麼大不了,但當你開始擴大這套系統的規模時,很快就會搞不清楚哪個 HEX 色碼該套用到哪個元件或元素上。
你該做的是改用語意化 Token,讓每個元素該套用哪個變數一目了然。

這樣更新就變得更輕鬆——只要改一次 Token,就會套用到所有地方!讓我來示範怎麼做……
為什麼
可擴展性
隨著設計系統不斷成長,要手動橫跨多個元件更新樣式會變得難以管理。語意化 Token 讓你只需在一個地方修改,就能讓變更一致地套用到整個系統。
假設你決定要更換主色,但只想套用在 page-title 這個元件上。只要語意化 Token 設定正確,你完全不需要去動元件本身,只要在變數視窗中修改它對應的 Token 就好。
或者你發現 #black/600 作為背景色在你的設計系統中效果不好。沒關係,只要到變數設定中,把 surface-alt 替換成另一個 primitive Token 就好。
一致性與可維護性
語意化 Token 專注於功能而非具體數值,能確保產品整體的視覺更協調、一致。你不再需要猜測或記住該用哪個數值——只要選擇名稱合適的語意化 Token 就好。
還在想主要邊框該用哪個顏色?很簡單,就是 stroke-primary。
主題化與客製化
無論是要導入深色模式、進行品牌客製化,或是 A/B 測試不同樣式,語意化 Token 都能讓流程更順暢。你不需要全面修改原始色碼,只要在更高層級置換 Token 就好。
打造面向未來的設計系統
透過在設計與實作之間建立清晰的抽象層,語意化 Token 讓你的系統能夠隨著時間持續演進,而不會破壞既有設計。
需要發布一套全新的配色來配合公司更新的品牌視覺?只要修改你的 primitive 數值就好。
如何實作
定義核心設計 Token
首先,為顏色、排版、間距等關鍵設計屬性建立基礎 Token。
通常我會把這些原始數值放在一個名為 primitives 的獨立集合中。

專業小技巧:使用 Tailwind CSS Color Generator 快速載入主色色票,並透過 Export/Import Variables 外掛在不同檔案之間匯入、匯出你的設定。
將核心 Token 對應至語意化 Token
接著,定義用來描述這些數值在介面中如何被使用的語意化 Token。它們就像一層抽象層,讓你在不影響底層結構的情況下更輕鬆地更新樣式。

建立語意化 Token 需要時間,過程中也可能需要不斷調整做法。但一旦完成,它能大幅提升可擴展性與可維護性,減少不一致的情況並加速開發。這是一項值得的投資。
限制變數的作用範圍
最後,限制特定變數可以套用到的元素。要這麼做,請先回到你的 primitives,把全部都關閉。

接著,逐一檢查你的 Token 並定義它們的作用範圍。在下方的範例中,我將 border 相關的 Token 限制為只能套用到外框元素。

現在,當我想為外框套用變數時,只會出現適用的變數,讓你超輕鬆就能選到正確的那一個!

這不是完整教學
如果你想更深入了解如何在設計系統中套用語意化 Token,我建議可以先從這支來自 Figma 的教學開始。之後,最好的方式就是自己動手玩玩看,嘗試把它們套用到你的設計系統中,慢慢摸索出最適合你的用法。
沒錯,建立語意化 Token 的過程可能既漫長又繁瑣,但它帶來的好處非常巨大。如果你的設計系統還沒使用語意化 Token,我會建議你試試看!
記住:重點在於成果而非產出。專注於團隊真正需要的東西,而不是追求完美的文件。
隨機一篇部落格
留言
登入後參與討論