審美工程 · 6 / 12

一致性:系統感從哪來

有一種介面,單看每處都還行,合起來卻透著一股散裝味。它缺的說到底就一樣東西:一套大家共同遵守的變數。這一節講 design token,變數先行,樣式跟隨。

design tokenCSS 變數系統感
單看都還行,合起來就散裝

散裝感的來路很具體:這個按鈕高 36,那個高 40;這張卡圓角 8,那張 16;這裡的玫紅深一點,那裡淺一點。每處都是當時隨手寫的,單看都說得過去,拼起來就露餡。解法是把這些「隨手寫」收編成變數:先定 token(主色、圓角、控制項高度、間距檔位),所有樣式從 token 取值。寫樣式的人少做決定,介面自然長得像一家人。

一致性買的是什麼

一致性聽著像潔癖,其實買的是真金白銀的東西。《About Face 4》引尼爾森的帳:統一的介面標準靠可預見性提高產出、減少錯誤,使用者在一個地方學會的規律,換個頁面還管用,學習成本和培訓費用都在降。蘋果和微軟都樂於讓第三方應用長得像自家系統,圖的就是使用者到哪都不用重新學。

一致,使用者賺到什麼不一致,使用者賠上什麼
按鈕長這樣、行為就那樣,閉著眼預判每個新頁面都要重新試探一遍
學一次,全站通用「上一頁明明是點右上角儲存的」
介面退到背景,注意力全給內容差異不斷把注意力拽向介面本身

同一本書也把醜話說在前頭:標準管的是外觀和感覺這層語法,管不了更深的邏輯,把標準當靈丹妙藥,和以為有了格式手冊就能寫出好小說一樣不可取。所以這一節教的是給介面立變數,不是給創造力上鎖。

真實案例:你正在看的這個頂欄

這不是課堂虛構。本站課程列表頁 learn.html 的原始碼裡就躺著這樣兩行變數,原註釋一併抄給你:

:root{ /* 顶栏控件的统一高度与圆角:分享、主题、交流群、语言、账号按钮共用一档, auth.js 注入的那几个也读这里,避免各写各的尺寸拼出一排高低不齐的按钮 */ --xa-ctl-h:36px; --xa-ctl-r:10px; }

你正在看的這個網站,頂欄那五個按鈕就是被這兩個變數管著的:誰也不許自帶尺寸,統一讀 36px 高、10px 圓角。哪天想全站換風格,改這兩行就夠了。

開關撥一下,散裝立現
變數開關 點選切換
同一排頂欄按鈕,切到「各寫各的」看看會發生什麼。
xueai.miyang.cn/slides/learn.html
分享 主題 交流群 語言 帳號
統一變數:五個按鈕讀同一對 token,高度 36、圓角 10。誰也沒突出,排在一起就是齊的。
改一個變數,五種控制項一起變
一個圓角變數管全站 拖動滑塊
下面五種控制項的圓角都讀同一個變數 --demo-radius,拖動滑塊試試。
主按鈕
輸入框
卡片
彈窗
確定要刪除這條紀錄嗎?
12px
12 附近:圓潤友好,大多數產品的安全區。

注意剛才發生了什麼:你只改了一個變數,按鈕、卡片、輸入框、頭像框、彈窗一起變。風格是變數的取值,系統感是變數的存在。取值可以爭論,變數必須先有。

找茬:哪個 App 像同一個人做的
找茬:哪邊更好 點選一邊
同一個小 App 的列表頁和詳情頁縮圖。哪邊比較像同一個團隊做的?點選一邊。
方案 A
新建
詳情
儲存
方案 B
新建
詳情
儲存
實戰演習:這頁設定藏了五處不一致

token 立好之後,剩下的功夫是揪漂移。下面這頁設定乍看還算正常,其實藏著五處不一致,AI 生成的介面裡這五類漂移天天見。找到就點它。

找不一致 0 / 5
提示:盯著按鈕、圓角、藍色、圖示和行距看,各有一處漂了。
settings.example.com
設定
帳號資料
頭像、暱稱、綁定手機
編輯
登入與安全
密碼、兩步驗證
修改密碼
通知
推送、郵件、免打擾
管理
通用
語言、字號、主題
管理
遇到問題了嗎? 幫助中心
從最扎眼的那處開始點。
差異不是罪,沒理由才是

《About Face 4》把一致性的裁判標準說成兩句話:任何元素的存在要有足夠的理由,任何差異的存在也要有足夠的理由。刪除按鈕比別的按鈕紅,理由充分:行為不同的元素,就該在視覺上明顯區分,長得一樣卻做不一樣的事才坑人。反過來,同一層級的兩張卡圓角一個 8 一個 16,誰也說不出為什麼,那就是該收編的漂移。這本書還給了個順手的槓桿思路:與其加新元素,不如讓一個元素多做幾件事,元素越少,一致性越容易守住。

下面四處差異,哪處的存在有足夠理由 單選
A詳情頁把卡片圓角從 12 換成 16,「換換口味,不然太單調」
B全站按鈕都是藍色,只有「刪除帳號」是紅色
C同一層級的兩個欄目標題,一個 18px 一個 20px
D側欄圖示一半線性風格、一半面性風格,「哪個好看就用哪個」
實作:把變數表交給 AI

這一節學的東西最後要變成一段話,放在你讓 AI 寫介面的 Prompt 最前面。下面這張變數表拿去就能用,取值按自己產品改,關鍵是讓每個決定都有出處,AI 就沒機會替你隨手寫。

給 AI 的變數表
全站樣式先遵守這張變數表,再動手寫頁面: // 顏色:一個主色 + 中性色,語義色只給狀態用 主色 #2563eb(懸停加深為 #1e40af,禁止出現第二種藍) 中性色 文字 #111827 / 次要 #6b7280 / 邊框 #e5e7eb 語義色 成功 #16a34a / 危險 #dc2626,只用於狀態,不做裝飾 // 尺寸:全部讀檔位,禁止隨手寫數 圓角 一律 10px(頭像例外,用圓形) 控制項高度 一律 36px 間距 只允許 8 / 16 / 24 / 40 四檔 字號 只允許 13 / 15 / 18 / 24 四檔,字重只用 400 和 700 // 驗收:交付前自查 按鈕、圓角、藍色、圖示風格、行距五項逐屏核對, 出現表外取值視為未完成。
點右上角複製,貼到你下一次讓 AI 寫介面的 Prompt 開頭。

這張表管的是「從今天起新寫的介面」。要是專案已經跑了一陣、樣式早就各寫各的,光給變數表不夠,得先把散落的實現收回來——那是一臺手術,步驟在 Vibe Coding · 樣式收斂:一個按鈕不要八套 CSS:怎麼盤點欠債、怎麼分批合併、哪些差異該留著。

本節要點
✓

系統感來自共同變數:先定 token(主色、圓角、控制項高度),樣式從 token 取值,散裝感自然消失。

✓

檢查一致性最快的辦法:把兩屏截圖並排放,盯著按鈕、圓角、主色深淺,看有沒有各自漂移。

✓

讓 AI 做介面時,先交變數表:把主色、圓角、控制項高度寫進 Prompt,再讓它動手,產出的一致性立刻不同。

✓

裁判標準兩句話:任何元素的存在要有理由,任何差異的存在也要有理由。刪除按鈕的紅留下,說不出理由的圓角收編。

內容來源:小山學堂「審美工程」專題原創;一致性與標準的價值、「差異要有理由」等原則整理自《About Face 4:互動設計精髓》第 17 章(Alan Cooper 等)。