微互動(microinteractions)是介面裡那些幾乎不被察覺的小回饋:按讚時的彈跳、開關切換的滑動、輸入密碼時的即時檢核。它們單看很小,卻決定介面「用起來對不對勁」。Dan Saffer 把每個微互動拆成四個部件——觸發(trigger)、規則(rules)、回饋(feedback)、循環與模式(loops & modes)——這套框架至今仍是設計微互動的骨架。

📖 學(核心)

微互動的四段結構:觸發、規則、回饋、循環

每個微互動都始於一個觸發:可能是使用者主動(點按開關、下拉重整)或系統自動(收到新訊息)。觸發後由規則決定會發生什麼、順序如何、哪些狀態被允許。接著是回饋:讓使用者知道規則正在運作——動畫、音效、震動皆屬此類。最後是循環與模式:這個互動持續多久、重複會不會變化(例如長按越久、刪除確認越明顯)。設計前先把這四段寫下來,能避免只做「好看的動畫」卻漏掉狀態與邊界情況。

時間長度:100–400ms 是甜蜜區

微互動的動畫太快會被忽略、太慢會拖住操作節奏。實務上把時長控制在 100–400ms(多數落在 200–300ms)。小範圍、近距離的元素(如 checkbox 打勾)用短時長;大範圍位移或展開(卡片展開成詳情頁)可略長。搭配合適的緩動(easing):入場用 ease-out(快進慢停)顯得俐落,離場用 ease-in。越來越多團隊改用 spring 物理彈簧取代固定貝茲曲線,讓動態更自然、可被打斷。

目的優先:溝通而非裝飾

判斷一個微互動該不該做,先問「它在溝通什麼」:確認動作成功?顯示狀態改變?引導下一步?還是安撫等待?如果答不出來,就是純裝飾,該砍。好的微互動有個反直覺標準——如果使用者「意識到」這個動畫,它可能太浮誇了。理想狀態是它像使用者自身動作的延伸,順手到不被注意,但少了它會覺得哪裡怪。

維持空間連續性與狀態一致

微互動要保住元素之間的空間關係。卡片展開成詳情頁時,應從原位置延展出來,讓使用者理解「新畫面是從剛才那張卡來的」,而不是硬切換場景。同理,同一種動作在整個產品裡的回饋要一致:所有「刪除」都用同一套確認節奏,所有「載入成功」都用同一種綠勾。2026 的新趨勢是適性微互動(adaptive microinteractions):靠裝置端 AI 判斷熟練度,老手看到更短更俐落的轉場,新手則得到稍明顯、帶解釋性的動態。

別忽略「失敗」與「空」的微互動

最容易被漏掉的是錯誤與邊界狀態。表單驗證失敗時,欄位該即時、就地給紅色提示與明確原因,而非等到送出才報錯。網路斷線、操作失敗、清單為空——這些時刻同樣需要有溫度的微回饋,讓使用者知道「系統看到你了、也知道發生什麼」。把 happy path 以外的微互動補齊,體驗的完整度差距最明顯。

🧠 記

  • 微互動 = 觸發 → 規則 → 回饋 → 循環/模式(Dan Saffer 四段框架)。
  • 動畫時長甜蜜區約 100–400ms;小元素短、大位移略長。
  • 入場 ease-out、離場 ease-in;spring 物理讓動態更自然可打斷。
  • 先問「這動畫在溝通什麼」,答不出來就砍——溝通優先於裝飾。
  • 使用者「意識到」動畫代表太浮誇;好的微互動順手到不被注意。
  • 維持空間連續性(卡片從原位展開)與跨產品的一致節奏。
  • 補齊錯誤、失敗、空狀態的微回饋,體驗完整度差距最大。

✍️ 實踐

  1. 盤點使用者流程,標出「動作點、需確認處、等待處」三類關鍵時刻。
  2. 對每個時刻用四段框架寫規格:觸發是什麼、規則允許哪些狀態、回饋長怎樣、會不會重複變化。
  3. 設定動態參數:時長 100–400ms、選對 easing 或改用 spring,並定義可被中斷的行為。
  4. 用 Figma / ProtoPie / Principle 做可互動原型,實機在真手機上感受節奏,別只看電腦畫面。
  5. 補上錯誤、失敗、空狀態的微互動,確保 happy path 以外也有回饋。
  6. 建立團隊的「動態語言」文件:把時長、緩動、共用手勢寫成 token,供設計與工程共用。

🔗 延伸學習


💬 問 AI

我正在設計 {產品/功能} 中的「{某個動作,如:按讚/切換開關/表單送出}」微互動。
請用 Dan Saffer 的四段框架(觸發、規則、回饋、循環/模式)幫我拆解,
建議合適的動畫時長與 easing,並提醒我容易漏掉的錯誤與空狀態回饋。
目標平台是 {web/iOS/Android},品牌調性偏 {專業/活潑/沉穩}。