Communitygithub.com

vmitsaras/apply-kinetic-continuity-motion

應用動態連續運動語言,規劃、建構或審查 GSAP 示範或介面,以實現自然流暢的編輯型空間運動。適用於圖片欄位、圖庫、輪播、聯絡表單轉場、錨定預覽、基於路徑的序列或節制型動態排版;不適用於無連續性或空間狀態問題的無關動畫任務。

apply-kinetic-continuity-motion 是什麼?

這個 AI Agent 技能專注於為 GSAP 示範或網頁介面套用「動態連續 (Kinetic Continuity)」運動語言,賦予佈局「物理記憶」。其核心目標是確保元素在位置、縮放與佈局變化時保持可識別性,回應使用者操作能量,並在每次動作後穩定於可供下一步決策的狀態。技能將提供的參考影片視為設計語言的證據,而非可複製的範本,並嚴格遵循使用者的請求概念、技術範疇與授權邊界,僅在使用者要求實作時才修改檔案,規劃或審查請求則僅提供指導。此技能適用於需要空間或佈局狀態連續性的互動,如圖片欄位、圖庫、輪播、聯絡表單轉場、錨定預覽、基於路徑的序列或節制型動態排版。它不適用於簡單的 CSS 過渡、無連續性問題的動畫,或涉及影片剪輯、角色動畫等非介面行為的任務。技能內含完整的運動合約、工作流程、時序簽章與實施不變量,並在規劃、實作與審查等不同模式下提供對應的輸出格式。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vmitsaras/Agent-Skills/tree/HEAD/skills/ui-ux-polish/apply-kinetic-continuity-motion

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

應用動態連續運動

目的

套用一種節制的運動語言,賦予佈局物理記憶:元素保持可識別性,回應使用者的能量,並在每次動作後穩定於可供下一步決策的狀態。

將提供的參考影片視為設計語言的證據,而非可複製的範本。保留使用者請求的概念、技術、範疇與授權邊界。僅在使用者要求實作時才套用檔案變更;對於規劃或審查請求,回傳指導而不編輯檔案。

何時使用此技能

在以下情況使用此技能:

  • GSAP 示範或網頁介面需要在不同空間或佈局狀態之間保持連續性。
  • 任務涉及圖片欄位、圖庫、輪播、聯絡表單、錨定預覽、基於路徑的序列、路由群組或節制型動態排版。
  • 現有運動感覺不連貫、在快速輸入下顯得停滯、過於裝飾性,或物件身份不明確。
  • 使用者希望將提供的運動參考轉譯為原創、可存取且可實作的互動語言。

在以下情況不使用此技能:

  • 簡單的懸停、焦點、按壓或透明度變化可用普通的 CSS 過渡處理。
  • 請求是無連續性或空間狀態問題的無關動畫任務。
  • 任務涉及電影、影片剪輯或角色動畫,而非介面行為。
  • 使用者需要全面的可存取性稽核,而非針對運動的規劃、實作或審查。

需檢查的輸入

檢查最小相關的可用輸入集合:

  • 使用者請求的任務、觸發條件、主體、起始狀態與目標狀態。
  • 相關的元件、模板、樣式、運動工具、測試、示範與文件。
  • 現有的動畫依賴項,特別是已使用的 GSAP 外掛。
  • 使用者提供的影片、原型、螢幕截圖、故事板或運動分析筆記。
  • 響應式行為、指標與觸控行為、鍵盤路徑、焦點行為以及減少動作需求。
  • 效能限制,如重複項目、圖片重量、幾何測量與高頻輸入。

不要假設參考媒體、GSAP 外掛或專案慣例在不存在時就已存在。

參考資料路由

在選擇運動原語、調整時序與緩動、定義減少動作行為或審查自然度時,請閱讀 references/pattern-catalog.md。

此目錄是自包含的。如果任務需要每個影片的來源資訊或與指定剪輯進行比較,請檢查該任務工作空間中提供的參考媒體或運動分析文件,而不是假設此技能的細節。

核心運動合約

  • 在位置、縮放與佈局變化期間保持物件身份。
  • 每個運動節拍賦予一個主要方向。
  • 讓相鄰元素以一個空間場的方式回應,具有相關的速度與基於距離的錯開。
  • 在下一個繪製影格上回應直接輸入。對「穩定」而非「抓取點」套用緩動。
  • 短暫加速,並在減速階段花費更多時間。
  • 重疊離開與進入狀態,以避免出現空白影格。
  • 一致地使用縮放來傳達焦點、深度或優先順序。
  • 將活躍的段落解析為穩定、可讀的靜止狀態。
  • 保持表現性的變形短暫、局部、可逆且非必要。

優先選擇連續性而非壯觀效果。移除不解釋狀態、層級、方向或回饋的運動。

選擇一個主要原語

選擇最能解釋狀態變化的原語。不要為了增加視覺新奇感而組合多個原語。

  • 慣性場: 一個可平移或漂移的星座,作為一個系統移動。
  • 平行軌道: 重複的媒體軌道,具有節制的速度變化。
  • 路由群組: 在可見的通道或類別之間移動的叢集。
  • 錨定預覽交換: 一個穩定的索引控制一個有界限的預覽區域。
  • 曲線行進: 卡片從一個路徑進度值衍生出位置、縮放與堆疊順序。
  • 收斂鏈: 一個概覽彎曲並縮放成一個聚焦的構圖。
  • 聯絡表單解析: 保留的項目橋接了密集與策展的佈局。
  • 有界限的文字中斷: 顯示文字短暫偏移,然後乾淨地重構。

當互動僅需要簡單的懸停、焦點、按壓或透明度變化時,請使用普通的 CSS 過渡。

工作流程

  1. 確認請求是規劃、實作還是審查,並保持該邊界。
  2. 識別觸發條件、主體、起始狀態、目標狀態與使用者任務。
  3. 撰寫一句運動論點,解釋為何需要運動。
  4. 選擇一個主要原語,並定義其穩定的起始與結束構圖。
  5. 在添加完整編排之前,先定義減少動作狀態。
  6. 建立微觀、中觀與宏觀層級。並非每個元素都需要在每個層級上運動。
  7. 實作或指定直接回應、協調行進與安靜的穩定。
  8. 讓快速輸入重新定位到當前渲染的狀態,而不是排隊動畫。
  9. 驗證指標、觸控、鍵盤、焦點、減少動作、中斷與失敗路徑。
  10. 以正常速度審查,並以逐影格或 0.25x 速度檢查,以發現不連續性與堆疊錯誤。
  11. 當請求實作時,執行儲存庫的相關測試或檢查,並報告仍待完成的手動驗證。

時序簽章

使用參考標記作為起點,然後根據行進距離與互動頻率進行適度調整:

  • 即時確認:約 90ms。
  • 懸停或焦點:約 180ms。
  • 緊湊狀態變化:約 320ms。
  • 佈局重新配置:約 520ms。
  • 大型空間場景:約 780ms,通常上限低於 1000ms。
  • 空間錯開:35–60ms,按與運動來源的距離排序。

對於標準的穩定,優先使用 power3.out;對於更強烈的編輯型進入,使用 power4.out;對於已知狀態的重新配置,使用 power2.inOut。僅在進度跟隨滾動、拖曳或其他連續輸入時使用線性運動。

不要將彈性或回彈緩動設為系統標誌。如果需要釋放時的回彈過衝,請將其保持在約 3% 以下。

實施不變量

  • 使用 CSS 處理簡單的狀態過渡,使用 GSAP 時間軸處理協調序列。
  • 在共享元素連續性有價值時,對真實佈局變化使用 GSAP Flip。
  • 僅在拖曳是真實互動且存在等效的可見控制項時,才使用 Draggable。
  • 僅在真正有滾動敘事時使用 ScrollTrigger;不要引入滾動劫持。
  • 從一個歸一化的進度值推導曲線運動屬性,使 x、y、縮放、不透明度與堆疊順序不會漂移。
  • 使用 overwrite: "auto"、quickTo() 或一個進度驅動的時間軸來處理可中斷的運動。
  • 優先動畫 transform 與 opacity。
  • 批量執行 DOM 讀取,快取幾何數據,並避免在高頻更新內部進行測量。
  • 僅在活躍運動期間套用 will-change,並在實際可行時於大型一次性序列後移除它。
  • 確保最終內容在 JavaScript 失敗時仍然可用。不需要一個進入時間軸來揭示必要內容。

遵循儲存庫現有的 HTML、CSS、JavaScript、資產與示範文件慣例。未經使用者授權,請勿添加或替換動畫依賴項。

互動與可存取性不變量

  • 匹配懸停與焦點以及點擊或輕觸行為。
  • 保持焦點樣式可見,且至少與懸停一樣清晰。
  • 當視覺項目變為空間性時,保留語意來源順序。
  • 對於分割或中斷的排版,保留一個完整的可讀文字來源。
  • 將拖曳、滑動與滾輪設為可選輸入方法;提供「上一頁」與「下一頁」控制項或另一種鍵盤路徑。
  • 當新手勢開始時,取消慣性。
  • 在有意義的互動期間以及頁面不可見時,暫停連續運動。
  • 對於 prefers-reduced-motion: reduce,移除慣性、環繞、自動播放、縮放行進與文字中斷。透過即時變化或簡短的不透明度過渡來保留內容與選擇。
  • 未經測試,請勿聲明符合可存取性標準。

審查標準

當運動有以下情況時標記為問題:

  • 瞬間移動或替換本應保持可識別的物件;
  • 使用隨機錯開而沒有空間來源;
  • 排隊過時的懸停狀態;
  • 在閱讀內容旁邊保持持續運動;
  • 使縮放變為裝飾性而非有意義;
  • 依賴拖曳、懸停或動畫來揭露必要內容;
  • 在每個動畫影格上造成佈局工作;
  • 轉換一個 sticky 擁有者而不是內場景層;
  • 比狀態變化所應有的時間更長或更精細。

輸出格式

回傳符合模式的結果:

規劃

  • 運動論點與選擇的原語。
  • 起始、過渡與穩定狀態。
  • 運動層級、時序、中斷與減少動作行為。
  • 可存取性、效能、實作與驗證備註。

實作

  • 套用運動行為的摘要。
  • 變更的檔案以及每個變更的角色。
  • 選擇的原語、運動層級、減少動作結果、可存取性行為與效能策略。
  • 已執行的測試或檢查,以及仍待完成的手動檢查。

審查

優先級問題證據建議

同時報告推斷的原語、運動層級、減少動作結果、可存取性行為、效能策略與任何證據限制。

品質標準

僅在以下情況下任務才算完成:

  • 選擇的原語比更簡單的過渡更清楚地解釋了狀態變化。
  • 物件身份、方向、回應、中斷、穩定與靜止是連貫的。
  • 完整運動與減少動作狀態保留相同的內容與任務結果。
  • 指標、觸控、鍵盤與焦點行為在適用時具有等效的可使用路徑。
  • 高頻運動避免重複的佈局測量與過時的排隊狀態。
  • 審查發現引用具體的介面狀態、程式碼或可觀察的行為。
  • 實作工作遵循專案慣例並包含相稱的驗證。

邊界情況

  • 如果專案不使用 GSAP,保留其現有技術棧,除非使用者要求添加 GSAP;使用可用的平台 API 表達相同的原則,或提供一個計劃。
  • 如果參考媒體不可用,使用捆綁的模式目錄,並揭露未執行特定剪輯比較。
  • 如果多個狀態變化需要不同的原語,為每個狀態變化選擇一個主要原語,並保持共享的時序與物理規則一致。
  • 如果動畫失敗或 JavaScript 不可用,必要的內容與控制項必須保持可用。
  • 如果一個 sticky 或滾動擁有的元素看起來需要轉換,請動畫一個內場景層,而不是 sticky 擁有者。
  • 如果一個概念與減少動作、鍵盤或內容存取需求衝突,請在簡化編排的同時保留任務結果與狀態關係。

相關技能

  • motion-behavior-planner 用於與函式庫無關的運動計劃,不包含實作。
  • motion-experience-director 用於更廣泛的站點級運動系統。
  • motion-animation-accessibility-audit 用於全面的運動可存取性稽核。
  • creative-technologist 用於更廣泛的前端可行性與漸進增強規劃。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相關技能