UIUX 彈窗設計避雷清單

👋 Hi 大家,

我是 Taony, 又見面啦

今天想要和大家分享,一個對使用者體驗影響非常大的因素

「彈出視窗」設計

為了防止你還不是很熟悉 UIUX 中最常見和重要的幾種「彈出」視窗元件
對,就是那個會蹦出來的 UI 元件

我們先回顧一下重點:

會強制打斷用戶當前的流程,並且鎖定在彈出的互動視窗內
通常背景會變暗,用來區隔和突出互動視窗(Backdrop)

只有在用戶完成任務之後,才會回到之前的流程

Non-Modal 非互動視窗

也是一種彈出的視窗,但是和 Modal 的差別在於
它不會中斷用戶當前的流程,不會強迫鎖定在彈出的視窗內

Dialog 對話框

可以理解為系統跳出來和使用者對話的 UI 元件
用於呈現資訊並提示使用者輸入資料或做出決定

例如:警示信息、確認操作、輸入資訊
就像 App 在和你說 “嘿,你確定要刪除嗎?”

它分為 Modal Dialog / Non-Modal Dialog

  • Modal Dialog 鎖住畫面,背景變暗
    用戶必須處理掉才可以回到之前的流程
    例如:刪除確認、輸入資訊

  • Non-Modal Dialog 不鎖畫面,背景不變
    用戶可以保留當前流程 例如:側邊欄提示、浮動選項

Popover 彈出窗口

Popover 彈出視窗是出現在特定 UI 元件附近的小覆蓋層
通常由使用者與 UI 元件互動(例如滑鼠懸停、點擊)觸發

Popover 通常都是 Non-Modal 非互動視窗,不需要背景隔離
常見的有:下拉選單、彈出選單、顏色選擇器

為了防止分類太多,你開始頭暈
我們只需要記住兩個重點

  • Modal = 強制中斷用戶流程的彈出類型

  • Non-modal = 不打斷用戶的彈出類型

用戶退出彈出視窗元件的途徑分為兩種

  • Explicit dismiss 明確退出(需明確操作)

  • Light dismiss 輕度退出(互動成本低)

Dialog 通常都是明確退出,例如點擊「關閉」或「取消」按鈕
Popover 通常是輕度退出,例如點擊背景,按下 Esc 鍵

OK,現在你應該比較能清楚分辨不同的「彈出」元件類型了
我們在實作中,為了更好的使用者體驗
應該盡可能的避免使用 Modal 這種打斷用戶流程的操作

下面是我整理出來需要時刻思考 & 留意的地方

使用時機

  1. 能不能用「即時驗證」來避免錯誤?如果可以,就不要用 Modal
    (例如判斷輸入密碼正確與否)

  2. 只有當錯誤「非常嚴重」到必須阻止用戶繼續操作時,才用 Modal

  3. 真正需要用戶輸入資訊才能繼續的情況下,再用 Modal

  4. 如果只是要給小提示,用 Popover 就好

  5. 法規要求的同意(像 Cookie、年齡驗證),可以用 Popover

  6. 廣告、問卷別用 Modal,用頁面內嵌的方式比較好(真的很煩彈廣告)

  7. 除非是「非打斷用戶不可」的操作,否則不要用 Modal

  8. 如果要打斷,要確定用戶會覺得這樣做值得

  9. Modal 彈出的時機和位置要選對,才不會惹人厭喔

  10. 普通的成功時刻(任務完成),別跳 Modal,改用 Toast 提示就好(除非想特別強調)

  11. 載入的過程不要用 Modal,因為它只會遮擋介面

  12. 看大圖或相簿,評估用 Modal 是否合適

  13. 遇到真的很重要的通知,可以用 Modal

  14. 像「刪除」「停用」這種需要高度關注的確認操作,請用 Modal

  15. 為了驗證用戶輸入內容的正確與否,可以用 Modal

  16. 如果對話框不會影響主要內容,可以用 Non-Modal Dialog

設計與使用體驗

  1. Modal 彈出後,需要確保螢幕上的顯示正確(RWD 適應)

  2. Modal 所佔的螢幕比例,桌機不要超過 30%,手機不超過 75%

  3. 手機上的 Modal 太長時,請改用全螢幕 Overlay 或大 Popover

  4. 盡量不要在 Modal 裡面使用捲軸,太長請做成獨立頁面

  5. Modal 開啟時,要確保它和其他 UI 視覺分離(加入 Backdrop)

  6. 用戶能用鍵盤 Tab 在 Modal 裡切換瀏覽所有項目

  7. Modal 的標題要和 CTA 按鈕保持表達一致,避免混亂意圖

  8. 用圖示和顏色幫助用戶理解 Modal 的用途

  9. Modal 上的按鈕要有清楚的主次順序(Primary, Secondary)

  10. 按鈕文字要讓用戶清楚的理解其意圖(例如別用 Yes / No,改為 刪除 / 取消)

易用性與操作

  1. Modal 一定要確保隨時可以被關閉

  2. Modal 右上角的 ✕ 圖示要確保足夠的對比度

  3. 建議讓使用者可以按 Esc 關閉 Modal

  4. 建議讓使用者點擊背景(Modal 外)也能關閉

  5. 如果用戶已經輸入了內容,在關閉前要先確認

  6. 是否提供了快速還原前一狀態的選項?例如「復原」或「還原狀態」的選項

錯誤與通知

  1. 錯誤訊息不要用 Modal,改用 inline 或 toast

  2. 不要用 Modal 來收集使用者回饋或評分(彈出來很煩,結果一星差評)

  3. 重要通知請一次講完,不要連續跳一堆 popover

避免不良體驗

  1. 避免讓系統自動彈出 Modal,安全做法是在用戶進行特定操作或顯示緊急資訊時

  2. 和上條一樣,不要因為小事去打斷用戶流程

  3. 用戶正在進行重要任務時,請不要打斷

  4. 用戶剛登入時,不要馬上丟出 Modal(很吵)

  5. 不要用 Modal 來強迫用戶留下來,例如「你確定要離開?」

  6. 避免使用巢狀互動視窗 Nesting Modal(就是一層套一層)

  7. 不要連續跳好幾個 Modal

  8. Modal 的操作步驟,建議不要超過 5 步,降低負擔

  9. 如果有多步驟操作 Modal,要有清楚的步驟導覽

替代方案與評估

  1. 如果用戶直接關掉 Modal,什麼都不做,接下來會怎樣?

  2. 如果 Modal 被瀏覽器或外掛擋掉,系統還能正常運作嗎?

  3. 產品需要追蹤有多少人點擊了 Modal,有多少人一秒關掉,然後優化

  4. 如果非必須用 Modal, 有什麼更好的替代方案?(獨立頁面、插入內容、手風琴展開)

簡單總結使用「彈出」元素的黃金原則

  • 盡可能少打斷用戶操作

  • 優先使用 Non-Modal Dialog

  • Modal 的內容要短,動作要少,減少用戶的操作負擔

  • 需要保證使用者可以輕鬆的退出

  • 避免使用多層、多步驟 Modal

希望今天的內容可以幫助你設計出更棒的產品
也謝謝你會看到這裡

期待下次見囉~

Have a nice weekend!

Best,
Taony

Reply

or to participate.