Animate
/impeccable animate
适用场景
- 介面在狀態之間感覺死氣沉沉或突兀。
- 載入、回饋或過渡需要能解釋正在發生什麼的動態。
- 你想要有紀律的動畫,附帶減少動態的後備方案。
何時使用
/impeccable animate 適用於感覺死氣沉沉的介面,狀態變化瞬間且突兀,載入內容就那樣蹦出來,使用者永遠不太確定自己的點擊是否已註冊。用它來添加能溝通正在發生什麼的小動態:進場、退場、回饋、狀態之間的過渡。
不要用它來添加彈跳或彈性彈簧效果以追求活力。那是裝飾,而這個技能不會給你那些。
運作方式
技能識別能從動態中受益的靜態時刻,然後以嚴格的紀律應用它們:
- 進場和退場:元素以 200 到 300ms 的淡入加上微妙的 Y 或縮放出現和消失,絕不使用版面屬性。
- 狀態回饋:hover、active、focus、loading、success 都透過動態而非突然替換來溝通。
- 視圖之間的過渡:在合理的地方使用共享元素過渡,否則使用淡入穿透。
- 進度和載入:骨架螢幕、確定性進度條、表示「仍在處理中」的動態。
- 減少動態:每個動畫都有
prefers-reduced-motion後備方案。
緩動始終是指數型的(ease-out-quart、quint 或 expo),因為真實物體平穩減速。不使用彈跳、不使用彈性、除了進度指示器外不使用線性。
技能只對 transform 和 opacity 做動畫。如果你發現自己在對 width、height、top 或 left 做動畫,那就是在做錯的事。高度過渡請使用 grid-template-rows。
試試看
/impeccable animate the sign-up flow典型新增:
- 電子郵件輸入框在 focus-visible 時獲得焦點光暈(opacity + shadow,180ms)
- 提交按鈕在 loading 狀態時在自身內部顯示 spinner,而不是旁邊的獨立 spinner
- 成功畫面以 opacity + translateY(8px) 進場,260ms,ease-out-quart
- 錯誤訊息以 grid-template-rows(非 height)向下滑出,220ms
- 每個過渡都有
@media (prefers-reduced-motion: reduce)後備方案
注意事項
- 要求「更多動畫」。 Animate 不是一個旋鈕。它只在動態能溝通的地方添加,不是到處添加。
- 移除減少動態的後備方案。 技能會自動添加它們。這對無障礙性來說是不可協商的。
讓想法化為交付成果。
HagiCode 是面向專案開發的 AI 編碼工作台:以 OpenSpec 工作流程規劃變更,多 Agent 並行執行,再由 Hero Scenario 讓進度一目了然,將想法化為交付成果。
- 智慧
- OpenSpec 工作流程將意圖轉化為從提案到交付的可執行路徑。
- 高效
- 多 Agent 並行推進研究、實作與審查。
- 有趣
- 豐富、便利的介面互動,讓規劃、Agent 執行與專案工作更容易跟進。
生態站點
快速連結
社群
© 2026 HagiCode | Powered By hagilight-starlight@0.18.0 | Branch: main | Commit: 4369090 | Built:
