頁面沒資料、載入中、出錯了,這三種「不是正常內容」的狀態最容易被草草帶過。這章把 Empty、Error、Loading 的定稿做法講清楚,讓你永遠不會留一片真空白。當你要決定「載入該用 spinner 還是 skeleton」、或寫 error 文案時,就翻這頁對一下規格。
這是什麼
沒有資料時要給圖示或插圖、說明為什麼是空的、以及下一步按鈕;第一次使用、搜尋無結果、沒權限要分開設計。
什麼時候用
列表或區塊為空時不要只留白;第一次要鼓勵建立,篩選無結果要讓人清除條件,沒權限要說明如何申請。
這是什麼
載入失敗時說明發生什麼事、可以怎麼處理,並提供「重試」;單一區塊錯誤不要讓整頁都不能用。
什麼時候用
列表或區塊請求失敗時用;文案要具體,避免只顯示錯誤代碼。
這是什麼
等待時依時間長短選擇:很快可不顯示、約一秒內用轉圈、有版面結構用骨架、很久用進度條並估計剩餘時間。
什麼時候用
少於半秒避免閃一下的轉圈;使用者需要知道還要等多久時,進度條比一直轉圈安心。
| 等待時間 | 用什麼 |
|---|---|
| < 0.5 秒 | 不顯示(避免閃爍) |
| 0.5–1.5 秒 | Spinner |
| 1.5–10 秒 | Skeleton |
| > 10 秒 | Progress bar + 預估時間 |
這是什麼
多半會成功的操作(例如標記、切換狀態)先讓畫面立刻反映,背景再送請求;失敗就還原並提示錯誤。
什麼時候用
按讚、勾選、改狀態等低風險動作用;付款、不可復原刪除要等伺服器確認後再改畫面。