運動使用者體驗6 分鐘閱讀·Updated 2026 年 10 月·ExodeUI 團隊
GIF 載入程式與向量動畫:為什麼團隊要取代 UI 中的動畫 GIF
為什麼動畫 GIF 不適合 UI 載入器和圖標,應該使用什麼(CSS、SVG、Lottie、影片、基於狀態的運行時)以及如何選擇。
直接總結與定義
核心要點
動畫 GIF 僅限於最多 256 種顏色的調色板、具有開或關透明度、縮放時模糊並且無法對應用程式狀態做出反應。對於 UI 載入器和圖標,CSS 或 SVG 動畫通常更輕、更清晰;Lottie 適用於更豐富的插圖;當動畫必須隨載入、成功和錯誤而變化時,基於狀態的運行時(例如 ExodeUI 或 Rive)是最佳選擇。
GIF 能做什麼、不能做什麼
MDN 的圖像格式指南解釋說,每個 GIF 像素都是最多 256 種顏色的調色板的索引,並指出 GIF 等舊格式與 WebP 和 AVIF 等新格式相比性能較差。對於 UI,實際問題是漸層帶、透明背景上的鋸齒狀邊緣、高密度螢幕上的模糊縮放以及無法回應應用程式正在執行的操作。
用什麼代替
根據動畫需要執行的操作進行選擇:
- 簡單的旋轉器或脈衝:CSS 動畫或內嵌 SVG。小巧、銳利且易於暫停以減少運動。
- 插圖循環或圖示:Lottie 或動畫 SVG。向量,可擴展,小,適合簡單的藝術品。
- 攝影或複雜素材:影片(WebM 或 MP4)或動畫 WebP/AVIF,而不是 GIF。
- 導致成功或錯誤的載入器:基於狀態的運行時,例如 ExodeUI 或 Rive,由應用程式的狀態驅動。
裝載機應該知道發生了什麼
無論請求花費一秒鐘還是一分鐘,GIF都會以相同的方式循環,並且當工作完成時它不能成為複選標記。基於狀態的載入器可以從載入到成功或錯誤並顯示進度,這比旋轉圖像告訴人們的更多。
無障礙
循環 GIF 無法自行遵循縮減運動設定。當使用者要求減少運動時,可以暫停或簡化 CSS、SVG 和運行時動畫。還為載入程式提供可存取的標籤,例如“載入結果”,以便螢幕閱讀器使用者知道發生了什麼。
要記住的關鍵 Principle
- GIF 調色板最多可容納 256 種顏色,且縮放比例很差
- 對於簡單裝載機使用 CSS 或 SVG
- 使用 Lottie 進行插圖循環,使用影片進行素材
- 當載入必須成功或錯誤時使用基於狀態的運行時
- 支援減少運動並添加可存取的標籤
常見問題解答
來源
- Image file type and format guide — MDN 網路文檔
- lottie-web — GitHub(愛彼迎)
- prefers-reduced-motion — MDN 網路文檔