介面工藝
多數介面並非敗在構想,而是敗在執行——近乎一致的間距、近乎清晰的層級、近乎正確的字體。
在重新設定樣式前先診斷
問問這個畫面是「為了什麼」。最多一個主要動作,最多一個次要動作。如果你說不出主要動作是什麼,那麼佈局問題其實是產品問題,再多樣式也無法修復。
真正能呈現品質的要素
層級。 觀看者應該在閱讀任何內容之前,就知道該看哪裡。按照大小、粗細、空間的順序來實現。顏色是最弱的層級工具,卻也是最被濫用的。
間距韻律。 相關物件比不相關物件更靠近,且間隙來自同一個尺度。不一致的間距是人們能感受到但說不出來的缺陷。讓鄰近性正確,樸素的佈局也能看起來像經過設計。
字體。 介面使用一個字體家族,頁面上最多兩個。設置一個真實的字級尺度,並使用其中的級距,而非自行發明大小。內文想要舒適的寬度——大約 60–75 個字元——以及隨著寬度增加而增大的行高。
表面元素的節制。 邊框、陰影與填充都會分隔元素。每個邊界只選一種。三者全用就是為什麼介面在正常密度下看起來雜亂的原因。
對齊。 所有東西都與某物對齊。與任何東西都未對齊的元素,即使是有意為之,也會被認為是錯誤。
密度是一項決定
資訊密集的工具與行銷頁面需要相反的處理方式。決定好這是哪一種並堅持到底——進退失據的中間地帶,例如資料表格帶有落地頁的內距,兩者都服務不好。
完成狀態
載入、空、錯誤與溢位,是讓產品感覺未完成的地方。空的狀態是設計機會;沒有上下文的載入圖示則是一種失敗。長字串、長列表以及小螢幕都必須處理,不能只憑運氣。
暗色模式是調色盤,不是反色
將淺色主題反色會產生典型的糟糕暗色模式:純黑背景、純白文字以及毫無作用的陰影。
- 使用非常深的灰色而非純黑,以及稍微調暗的白色而非純白。兩者之間的極大對比會產生光暈,閱讀起來確實很累人。
- 層級關係反轉:在淺色主題中,凸起的表面投射陰影;在暗色主題中,它們會變「亮」。在暗色背景上,陰影本身無法傳達任何資訊。
- 在白色上效果良好的飽和顏色,在暗色上會振動。為暗色調色盤降低飽和度並調亮強調色,而不是直接沿用。
- 從一開始就在 Token 層級同時定義兩個調色盤。事後補做意味著要審查每一個表面。
無障礙設計基本要求
以下不是潤飾項目——低於這些標準,有些人根本無法使用介面。
- 文字對比度符合與其實際背景的標準比率,包括圖片上的文字以及彩色按鈕內的文字。
- 絕不單獨依靠顏色傳達意義。用紅色邊框表示錯誤時,也需要文字或圖示。
- 每個可互動的元素都能透過鍵盤觸及,順序合理,且有可見的焦點狀態。
- 觸控目標夠大,能可靠點擊,且相鄰目標之間有間距。
- 尊重減少動畫偏好:無法停用的動畫會對某些使用者造成真實症狀。
- 使用真正的語意元素——按鈕就是按鈕,標題依序排列。一個帶樣式的
div對輔助技術是不可見的。
絕對不要
- 為了修飾因過多同等元素造成的層級問題而增加視覺重量。應該移除元素。
- 置中內文。
- 出貨含有懸停狀態卻沒有對應焦點狀態的元素。