Communitygithub.com

guycoful/web-animation-recipes

選擇並建置網站互動動畫。詢問套用位置(英雄區、捲動、卡片、表單、控制項、導覽、產品展示、游標夥伴)與對應動畫,從 30 個食譜中建置。適合需要驚豔效果、微互動、3D 英雄區、捲動轉場或動畫元件時使用。

web-animation-recipes 是什麼?

此技能從 30 個預先定義的動畫食譜中,協助使用者為網站選擇並建置互動式網頁動畫。它首先詢問動畫的套用位置(例如:英雄區、捲動切換、卡片網格、表單、按鈕、導覽選單、產品展示或游標伴隨效果),然後依據選定的位置,從對應的清單中推薦適合的動畫類型。技能會引導使用者完成三個快速設定問題(平台、內容、瀏覽器支援需求),接著根據 `recipes.md` 中的詳細規格從頭建置動畫。實作時遵循「先用 CSS,必要時用 Canvas,最後才用 WebGL/Three.js」的漸進原則,並將可調參數暴露為調整按鈕。最後,技能會執行五項檢查:使用者偏好減少動畫設定、60fps 效能(含 IntersectionObserver 與標籤頁隱藏最佳化)、行動裝置相容性、無障礙性(保留真實 HTML 文字),並在必要時提供 Chrome-only 功能的降級方案。此技能支援多種平台(HTML/CSS/JS、React、Next.js、Webflow、WordPress),並確保動畫既美觀又高效且易於存取。

相容平台~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/guycoful/web-animation-recipes-skill/tree/HEAD/skills/web-animation-recipes

在你喜歡的 AI 中提問

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

說明文件

網站動畫:選擇與建置

此技能協助你從 30 個食譜中選擇並建置網站動畫。資料夾中的檔案:

  • placements.md:8 個網站位置,以及每個位置適用的動畫。
  • recipes.md:30 個動畫各自的完整建置規格。

步驟 1:詢問套用位置

當技能載入時,先用使用者的語言,並以編號清單提出這個問題。在獲得答案之前,不要開始撰寫程式碼。

"你希望動畫套用在網站的哪個位置?"

  1. 登陸頁面的英雄區(Hero)
  2. 捲動切換或螢幕轉場
  3. 卡片與功能網格
  4. 表單、輸入欄位與一次性驗證碼
  5. 按鈕、開關與進度指示器
  6. 導覽與選單
  7. 產品或應用程式展示(手機模型、輪播)
  8. 跟隨游標的全身角色或效果

如果使用者在請求中已提及位置,則跳至步驟 2,並說明已理解的位置。

步驟 2:詢問動畫類型

讀取 placements.md,僅顯示所選位置的選項,並以編號清單呈現。每個選項需包含:名稱、一句以使用者語言描述的視覺效果,以及複雜度等級。請使用者選擇一個數字,或描述兩個選項的組合。

如果使用者不確定,根據已知資訊(行業類型、目標受眾、願意維護的複雜度)推薦一個,並用一句話說明理由。

步驟 3:建置前的三個簡短問題

在一則訊息中詢問:

  1. 建置平台:純 HTML/CSS/JS、React、Next.js、Webflow、WordPress 或其他?
  2. 內容:標題、文字、圖片、品牌顏色、商標。若無,則使用範例內容並標記為範例。
  3. 網站是否必須在所有瀏覽器與行動裝置上運作?標記為「實驗性」的動畫依賴僅限 Chrome 的 API。

步驟 4:建置

  1. 在 recipes.md 中開啟所選的食譜,閱讀完整規格。
  2. 根據規格與使用者的內容從頭實作。
  3. 選擇能達成效果的最簡單工具:優先使用 CSS,再來是 Canvas,最後才是 WebGL。僅在需要真實深度、光照或著色器時才使用 Three.js 或 R3F。
  4. 將食譜中的「調整按鈕」作為檔案頂端的變數,或透過小型面板(例如 lil-gui 或 Leva)暴露,以便無需修改程式碼即可調整。
  5. 對於標記為「僅限 Chrome」的食譜:建置降級方案,例如將 HTML 渲染為紋理或簡化的 CSS 版本。應在執行時期檢查支援度,而非根據使用者代理。

步驟 5:交付前檢查

逐項檢查並向使用者回報哪些已檢查、哪些未檢查:

  1. prefers-reduced-motion:在此設定下,動畫應停止或替換為靜態版本。
  2. 效能:目標在一般電腦上達到 60fps。當元件不可見時(IntersectionObserver)以及分頁隱藏時,應停止動畫循環。限制 devicePixelRatio 為 2。
  3. 行動裝置:使用觸控取代懸停效果,並在低效能裝置上提供較輕量或靜態版本。
  4. 無障礙性:文字應保持為真實 HTML,可被螢幕閱讀器與搜尋引擎存取。任何遮蔽內容的效果不應阻擋閱讀。
  5. 若未在瀏覽器中執行程式碼,應明確說明。

相關技能