使用者介面設計課程講義
Unit 07.設計系統 \ Design System + Variables
把「風格」變成可以
重複使用的規則SYSTEM
情緒板決定了長相,設計系統 把它拆成能重複使用的代幣。
拾器的情緒板已經定出主色、輔色、字體,但畫面越做越多,同一個顏色打不同色碼、同一個按鈕長得不一樣的問題就會開始出現。這一關把情緒板的成果拆解成色彩、字體、間距、元件四類「設計代幣 Design Tokens」,整理成一份團隊都能查、都能沿用的設計系統;後半段進到 Figma 真正的 Variables 功能,學怎麼用「模式 Mode」讓同一份設計系統同時支援 Light/Dark,甚至未來的多品牌切換。
內容整理於 2026 年 9 月.中國科大視傳系|使用者介面設計
設計系統是什麼,
為什麼情緒板不夠
什麼是設計系統?Design System(設計系統)是一套「規則+元件+文件+原則」的集合:規則定義色彩、字體、間距這些最小單位;元件是用規則組出來、可以重複使用的按鈕、輸入框、卡片;文件說明怎麼用、什麼時候用;原則則是背後共同的設計語言。情緒板決定「長什麼樣子」,設計系統決定「怎麼把長相拆成可以一直重複使用的規則」。
跟情緒板、風格指南(Style Guide)差在哪?三者常被搞混:情緒板是氛圍拼貼,用來「決定方向」;風格指南通常只列出色票、字體這類靜態規範,是一份「參考文件」;設計系統則更進一步,把規範做成「可以直接套用的元件庫」,改一個代幣,所有用到它的畫面就一起更新——這正是後面 Figma Variables 要解決的問題。
為什麼一定要做?沒有設計系統,每個人心裡的「主色」色碼可能都不一樣,改版時要一頁一頁手動修改;有了設計系統,色彩、字體、間距都變成「代幣 Token」,只要維護代幣本身,套用它的所有畫面就會一起同步,也讓團隊有共同的語言可以溝通「這裡該用哪一個代幣」。
承接拾器對話串.Figma Agent 已經記得情緒板定出的主色輔色
這串對話從 ui06 延續過來,設計系統會建立在情緒板已經定出的色彩與字體之上
Step 1.色彩代幣:
Primitive 拆成 Semantic
色彩代幣通常分兩層:Primitive 基礎色票是最原始的色碼(例如 green-500 #6B8F71),只描述顏色本身,不描述用途;Semantic 語意色則描述「這個顏色要用在哪裡」(例如 color/brand/primary),背後指向某一個 Primitive。畫面上永遠只綁定語意色——之後想換主色,只要改語意色指向的 Primitive,所有畫面就會一起變。
拾器的三個情緒板色彩,分別對應到主要語意色:鼠尾草綠是主色(brand/primary),大地棕是輔色(brand/secondary),米杏是畫面底色(surface)。這一關再額外補上文字色跟三個回饋色(成功/警示/錯誤),讓色彩代幣涵蓋日常畫面會用到的所有情境。
互動練習.點語意色,看它對應哪一個 Primitive 色票
即時產出
「color/brand/primary」= Primitive green-500(#6B8F71,鼠尾草綠)——最常用的主色,用在主要按鈕、開關、強調文字。
這八個語意色,05 關會直接建成 Figma Variables
Step 2.文字階層與
8px 間距系統
字體代幣不是只選一個字型,而是定出一組「文字階層 Type Scale」:每一級固定字級、字重、行高,畫面上的每個文字都對應某一級,而不是每次都手動調整像素。拾器延續情緒板選定的字體:標題用 Chiron GoRound TC(圓潤親和),內文用 Noto Sans TC(穩定好讀)。
間距同樣需要系統化:多數設計系統用 8px 為基礎單位(也有團隊用 4px),所有留白、間距都是基礎單位的倍數,例如 8、16、24、32、48px,畫面排起來才會有一致的節奏感,也方便跟開發溝通「這裡的間距是 spacing-3」而不是「大概 22px 左右」。
互動練習.切換分頁,看文字與間距代幣表
| 代幣 | 字級/行高 | 字重 | 用途 | 示範 |
|---|---|---|---|---|
| text/h1 | 32 / 40px | 900 | 頁面主標題 | 拾器 |
| text/h2 | 24 / 32px | 800 | 區塊標題 | 拾器 |
| text/h3 | 20 / 28px | 700 | 卡片標題 | 拾器 |
| text/body | 16 / 26px | 400 | 內文段落 | 拾器 |
| text/small | 13 / 20px | 500 | 輔助文字、標籤 | 拾器 |
| text/caption | 11 / 16px | 500 | 時間戳、版權說明 | 拾器 |
| 代幣 | 數值 | 用途 | 示範 |
|---|---|---|---|
| spacing-1 | 4px | 圖示與文字的最小間距 | |
| spacing-2 | 8px | 同一元件內的元素間距 | |
| spacing-3 | 16px | 元件之間的一般間距 | |
| spacing-4 | 24px | 卡片內距 | |
| spacing-5 | 32px | 區塊之間的間距 | |
| spacing-6 | 48px | 頁面級的大留白 | |
| radius/sm | 8px | 輸入框、標籤圓角 | |
| radius/lg | 20px | 卡片、大按鈕圓角 |
這些代幣,04 關會直接套進按鈕跟輸入框元件
Step 3.元件的
變異與狀態
元件是代幣真正被組裝起來的地方。同一個按鈕通常有幾種變異 Variant(例如 Primary/Secondary/Ghost,代表重要程度不同),每種變異又有幾種狀態 State(Default/Hover/Disabled,代表使用者當下的互動情形)。在 Figma 裡,這通常用「Component Set」搭配 Variant 屬性管理,而不是為每個組合各畫一個獨立元件。
下面的按鈕都是用 02、03 關定出的色彩與間距代幣組出來的,不是另外選色——點右邊的狀態按鈕,看同一組變異在不同狀態下,套用的到底是哪個代幣。
互動練習.切換狀態,看三種按鈕變異的代幣套用
即時產出
Default.Primary 套用 color/brand/primary 當底色、text/primary 反白當文字;Secondary 只用 color/brand/secondary 當邊框;Ghost 沒有底色,只有 text/primary 文字。
同一組代幣,套出三種變異、九種狀態組合,這就是設計系統「重複使用」的意義
Figma Variables 是什麼:
比 Style 更進一步
前面 02~04 關定出的代幣,目前還只是「講好的規則」;Figma 的 Variables(變數)功能,才是真正把這些代幣做成 Figma 檔案裡可以綁定、可以運算、可以切換的物件。跟舊版的 Style(色彩樣式、文字樣式)比起來,Variables 多了三個關鍵能力:可以有多個模式 Mode(同一個變數在 Light/Dark 下給不同值)、可以互相參照 Alias(語意變數指向 Primitive 變數)、也能綁定更多屬性(不只是顏色,圓角、間距、甚至圖層的顯示與否都可以)。
Variables 用 Collection(集合)組織:拾器可以建兩個集合——「Primitives」放最原始的色票、數字;「Semantic」放語意變數,每一個都用 Alias 指向 Primitives 集合裡對應的變數,架構正好對應到 02 關拆的兩層色彩代幣。
Figma Variables.四種類型與典型用途
示意.Semantic 變數如何 Alias 參照 Primitives 集合
#6B8F71#F3EBDD#3B2F26#C0503B這組 Collection 架構,06 關會直接拿來加上 Light/Dark 兩個 Mode
Modes:同一份設計,
換了模式就換了樣子
Variables 最強的地方是模式 Mode:同一個 Collection 底下可以建立多個模式(最常見是 Light/Dark,也可以是不同品牌、不同語系),每個模式給同一批變數不同的值,但畫面上的圖層完全不用重畫、也不用複製一份——只要切換 Mode,整個畫面就跟著換。
實際操作時,Mode 可以在 Figma 檔案裡手動切換做設計檢查,也可以在 Prototype 的互動設定裡,讓使用者點一個開關就即時切換模式,很適合用來做「深色模式切換」這類真實功能的原型。右邊示範同一張拾器物品卡片,切換 Light/Dark 時,背後綁定的語意變數解析出了不同的色碼。
互動練習.切換 Light/Dark,看語意變數解析出的色碼
即時解析
Light 模式:surface/raised → cream-100 #F3EBDD.text/primary → ink-900 #3B2F26.brand/primary → green-500 #6B8F71。
這就是 Variables 跟舊版 Style 最大的差別:一套變數,兩種(甚至更多)解析結果
課後作業與下一步
把拾器的操作方式,換成你自己期中案例的產品,走一次「情緒板 → 設計系統 → Variables」的流程
本週交付項目
- 依你的期中題目,把情緒板的主色/輔色/中性色拆成 Primitive 色票(至少 5 階)跟至少 5 個語意色(brand/primary、surface/base、text/primary、feedback/success、feedback/danger)。
- 定出文字階層(至少 H1/H2/內文/說明文字 4 級)與 8px 間距階層(至少 4 段),並補上 2 個圓角代幣。
- 挑 1 個元件(按鈕或輸入框),畫出至少 2 種變異 × 3 種狀態(Default/Hover/Disabled),顏色都要來自已經定義好的語意色。
- 在 Figma 建立兩個 Variable Collection:一個放 Primitive,一個放 Semantic(用 Alias 綁定 Primitive),並在 Semantic Collection 裡新增 Light/Dark 兩個 Mode。
- 挑一個畫面,把顏色全部換成綁定 Semantic 變數,實際切換 Mode,確認兩種模式都能正常顯示、對比度足夠。
從情緒板的主色輔色出發,拆成 Primitive/Semantic 兩層色彩代幣,加上文字、間距、元件規範,最後用 Figma 真正的 Variables 功能,建立可切換 Light/Dark 模式的設計系統;設計系統的基本架構整理自課程既有教材,Variables 操作介面與功能名稱以 Figma 官方版本為準,可能隨時間調整。內容整理於 2026 年 9 月。