Communitygithub.com

grahama1970/animation-vocabulary

反向查詢詞彙表,將對網頁動畫或動態效果的模糊描述轉換為精確術語(例如「彈出視窗打開時的那個彈跳效果」→ Pop in;「iOS 橡皮筋式滾動」→ Rubber-banding)。當使用者問「那個叫什麼…」或描述一個動態效果卻不知道名稱時使用,幫助找到正確的詞彙以向 AI 或設計師提出需求。僅用於命名效果,而非設計或構建。

animation-vocabulary 是什麼?

該技能旨在協助使用者將對網頁動畫或動態效果的模糊描述,轉換為精確的專業術語。其主要功能是作為一個反向查詢詞彙表,使用者在無法確切說出某個動畫效果的名稱時,只需描述其視覺或感官特徵(例如「彈性」、「滑出去」、「自己畫出來」),系統便會比對內建詞彙庫,提供最匹配的術語及其定義。此技能支援多種平台,包括但不限於主流的 AI 輔助開發工具(如 Claude Code、Cursor 等),方便開發者或設計師在使用 AI 進行動畫設計或溝通時,能準確提出需求。其運作機制基於一個詳盡的詞彙庫,涵蓋了入場與出場、序列與時序、移動與變形、狀態轉換以及滾動相關動畫等五大類別,例如「Stagger」、「Morph」、「Rubber-banding」等。技能不僅會給出最佳匹配術語,還會在有多個相近術語時提供對比說明(如 Clip-path vs Mask),幫助使用者做出正確選擇。若無完全匹配項目,則會給出最接近的術語或近似描述,避免自行發明不存在的詞彙,確保溝通精準。

相容平台~Claude Code~Codex CLI✓Cursor✓Antigravity
npx skills add https://github.com/grahama1970/agent-skills/tree/main/skills/animation-vocabulary

在你喜歡的 AI 中提問

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

說明文件

動畫詞彙

將動作或效果的粗略描述轉換為精確術語,讓使用者知道該如何提問。

快速開始

使用者粗略描述一種效果。你傳回以下格式的匹配術語:

**Stagger** — 多個項目依次動畫,彼此之間帶有短暫延遲,形成階梯效果。

如果有多個術語可能符合,先列出最匹配的,接著 1–2 個替代方案,並附上一行關於它們差異的簡短說明。

指示

  1. 理解意圖,而非關鍵字。 使用者描述他們「看到」或「感覺到」的內容(「有彈性」、「滑出去」、「自己畫出來」),而不是技術名稱。將這種感覺對應到下面的詞彙表。
  2. 逐字引用詞彙表。 詞彙表的描述是權威的——直接使用,不要改寫。
  3. 區分相近術語。 當兩個術語相互競爭(Clip-path vs Mask、Pop in vs Bounce、Shared element transition vs Layout animation)時,進行對比以便使用者選擇。
  4. 當無法完全匹配時, 指出最接近的術語,直接說明只是近似,或者使用詞彙表的詞彙描述該效果(例如「這是一系列 scale-in 入場的 stagger」)。
  5. 僅使用此詞彙表。 如果這裡確實沒有某個術語,就直接說沒有,而不是憑空發明一個——儘管你可以用這些詞語來解釋概念。
  6. 保持簡潔。 命名問題只需要一個名稱,而不是一篇論文。先給出術語;只有在被問到時才展開說明。

範例

範例 1 — 感受型 使用者:「當一個彈窗似乎是從你點擊的按鈕中長出來,而不是從它的中心長出來,這種效果叫什麼?」 輸出:

**Origin-aware animation** — 元素從其觸發點進行動畫,例如彈窗從打開它的按鈕中長出,而不是從其自身中心(CSS 中預設行為)。

範例 2 — 區分型 使用者:「一張圖片變成另一張圖片的這種東西。」 輸出:

**Morph** — 一個形狀平滑地轉變為另一個形狀,例如動態島。

相近替代:
- **Crossfade** — 如果它們只是在同一個位置互相淡入淡出。
- **Shared element transition** — 如果一個元素從一個位置移動並變換到另一個位置。

範例 3 — 物理感覺型 使用者:「iOS 那種滾動,當你拉得太遠時會產生阻力並彈回。」 輸出:

**Rubber-banding** — 當拖動超過邊界時產生的阻力和彈回(iOS 過滾動感覺)。

詞彙表

與專案 /vocabulary 頁面一致的精選快照;當其中任一變更時,請保持兩者同步。

入場與出場 — 元素如何出現和消失

  • Fade in / Fade out — 元素透過改變透明度出現或消失。
  • Slide in — 元素從螢幕外滑入(左、右、上或下)。
  • Scale in — 元素從小變大,經常與淡出結合。
  • Pop in — 元素以輕微過衝出現,像是彈入到位。
  • Reveal — 內容逐漸被揭露,通常透過剪輯路徑或遮罩的動畫。
  • Enter / Exit — 元素被新增到螢幕或從螢幕移除時播放的動畫。

序列與時序 — 協調多個元素或時刻

  • Keyframes — 動畫中的定義點(0%、50%、100%),瀏覽器在其中填充間格。
  • Interpolation / Tween — 在起始值和結束值之間生成所有中間幀,使運動連續。
  • Stagger — 多個項目依次動畫,彼此之間帶有短暫延遲,形成階梯效果。
  • Orchestration — 刻意安排多個動畫的時間,使它們感覺像一個協調的運動。
  • Delay — 動畫開始前的時間。
  • Duration — 動畫持續時間。
  • Fill mode — 元素在動畫開始前或結束後是否保留其第一幀或最後一幀的樣式(例如 forwards)。
  • Stepped animation — 分成離散步驟的動畫,例如倒數計時器。

移動與變形 — 改變元素的位置、大小或角度

  • Translate — 沿 X 或 Y 軸移動元素。
  • Scale — 放大或縮小元素。
  • Rotate — 繞點旋轉元素。
  • Skew — 沿 X 或 Y 軸傾斜元素,使其脫離矩形形狀。
  • 3D tilt / Flip — 在 3D 空間中旋轉(rotateX / rotateY)以增加深度。
  • Perspective — 3D 效果的強度——較低的值會誇大深度,像是觀看者更近。
  • Transform origin — 縮放或旋轉生長或旋轉的錨點。
  • Origin-aware animation — 元素從其觸發點進行動畫,例如彈窗從打開它的按鈕中長出,而不是從其自身中心(CSS 中預設行為)。

狀態之間的轉換 — 連接一個狀態、檢視或元素到另一個

  • Crossfade — 一個元素淡出,另一個元素在同一個位置淡入。
  • Continuity transition — 一種變更,透過視覺連接前後,讓使用者保持方向感。例如,使同一個矩形變大變小。
  • Morph — 一個形狀平滑地轉變為另一個形狀,例如動態島。
  • Shared element transition — 一個元素從一個位置移動並變換到另一個位置,例如縮圖擴展成卡片。
  • Layout animation — 當元素的大小或位置改變時,它會動畫到新位置而不是跳躍。
  • Accordion / Collapse — 一個部分平滑地展開和折疊其高度以顯示或隱藏內容。
  • Direction-aware transition — 內容向前滑動一個方向,向後滑動相反方向,使導航具有方向感。

滾動 — 與滾動或導航相關的運動

  • Scroll reveal — 元素在進入視口時淡入或滑入到位。
  • Scroll-driven animation — 動畫的進度直接與滾動位置相關。
  • Parallax — 滾動時背景和前景以不同速度移動,創造深度感。
  • Page transition — 從一個頁面或路由導航到另一個時播放的動畫。
  • View transition — 瀏覽器在兩個狀態或頁面之間變形,連接共享元素。

回饋與互動 — 回應使用者操作

  • Hover effect — 遊標移到元素上時的視覺變化。
  • Press / Tap feedback — 點擊元素時輕微縮小,使其感覺有物理感。
  • Hold to confirm — 使用者按住按鈕時填充的進度效果。
  • Drag — 透過抓住元素來移動它,釋放時通常帶有慣性。
  • Drag to reorder — 拖動列表中的項目重新排列,其他項目則移動騰出空間。
  • Swipe to dismiss — 將元素拖離螢幕以關閉它,例如抽屜或提示。
  • Rubber-banding — 當拖動超過邊界時產生的阻力和彈回(iOS 過滾動感覺)。
  • Shake / Wiggle — 快速左右抖動,表示錯誤或拒絕輸入。
  • Ripple — 從觸摸點擴散的圓圈,確認按壓。

緩動 — 動畫過程中速度如何變化

  • Easing — 動畫加速或減速的速率。
  • Ease-out — 開始快,結束慢。大多數 UI 和任何回應使用者的物件的預設值。
  • Ease-in — 開始慢,結束快。通常應避免;可能感覺遲緩。
  • Ease-in-out — 慢、快、慢。適合已經在螢幕上從 A 移動到 B 的元素。
  • Linear — 恆定速度。避免用於 UI;保留給旋轉圖示或跑馬燈。
  • Cubic-bezier — 自訂的緩動曲線,用於精確控制。
  • Asymmetric easing — 加速和減速速率不同的曲線。感覺比對稱的曲線更有活力。

彈簧動畫 — 基於物理的運動,作為固定持續時間緩動的替代方案

  • Spring — 由物理(張力、質量、阻尼)驅動的運動,而非固定持續時間。
  • Stiffness / Tension — 彈簧拉向目標的強度。值越高感覺越乾脆。
  • Damping — 彈簧穩定下來的速度。阻尼越低,彈跳和震盪越多。
  • Mass — 動畫元素感覺到的重量。質量越大,運動越慢,越遲緩。
  • Bounce — 過衝並穩定下來的彈簧,增加趣味性。
  • Perceptual duration — 彈簧感覺上完成所需的時間,即使它仍在下面微調。
  • Momentum — 攜帶速度的運動,特別是在拖動或中斷之後。
  • Velocity — 元素移動的速度和方向。彈簧會將這個速度帶入下一個動畫,因此被輕彈的元素會保持其速度。
  • Interruptible animation — 可以在中途平滑地重新導向的動畫,而不是先完成。

循環與環境運動 — 自行運行的動畫

  • Marquee — 文字或內容連續循環滾動。
  • Loop — 重複的動畫,指定次數或無限次。
  • Alternate (yoyo) — 循環每次迭代先向前播放再反向播放,而不是跳回起點。
  • Orbit — 一個元素繞著另一個元素沿連續路徑旋轉。
  • Pulse — 溫和的縮放或透明度重複變化以引起注意。
  • Float — 溫和、連續的上下漂移,使靜態元素感覺有生命且失重。
  • Idle animation — 元素閒置等待互動時播放的細微運動。

打磨與效果 — 將好與卓越區分開來的小細節

  • Blur — 用於柔化元素或遮蓋微小瑕疵的模糊濾鏡。
  • Clip-path — 將元素裁剪成某種形狀,用於揭示、遮罩和對比滑塊。
  • Mask — 使用形狀或漸層隱藏或揭示元素的一部分——類似 clip-path,但具有柔和的、可淡化的邊緣。
  • Before / after slider — 可拖動的分隔線,在兩個重疊的圖像之間擦除以進行比較。
  • Line drawing — SVG 路徑自行繪製,就像一支看不見的筆在追蹤它。
  • Text morph — 文字改變時逐個字元動畫,引起對新值的注意。
  • Skeleton / Shimmer — 在內容載入時顯示帶有移動光澤的佔位符。
  • Number ticker — 數字滾動或計數到某個值。
  • Tabular numbers — 固定寬度的數字,使數字在變化時不會移動。對計數器、計時器和計數器至關重要。
  • Typewriter — 文字一次一個字元出現,像在打字。

效能 — 保持運動流暢而非卡頓的關鍵

  • Frame rate (FPS) — 每秒繪製的幀數。60fps 是流暢運動的基準;在較新的顯示器上為 120fps。
  • Jank — 瀏覽器因無法跟上動畫而丟幀時出現的可見卡頓。
  • Dropped frame — 瀏覽器錯過了繪製截止時間的幀,導致運動中出現微小停頓。
  • Compositing — 讓 GPU 在其自己的圖層上移動或淡出元素,而無需重新進行佈局或繪製。
  • will-change — 一個 CSS 提示,表示元素即將進行動畫,因此瀏覽器可以提前將其提升到自己的圖層。
  • Layout thrashing — 對 width、height、top 或 left 等屬性進行動畫,迫使瀏覽器每幀重新計算佈局,導致卡頓。

需要了解的原則 — 指導何時以及如何進行動畫的概念

  • Purposeful animation — 運動應服務於某種功能——引導、提供回饋、顯示關係——而不僅僅是裝飾。
  • Anticipation — 在移動之前向相反方向小幅預備,暗示即將發生的事情。
  • Follow-through — 元素的部分在主運動停止後繼續移動並略微穩定,增加重量感。
  • Squash & stretch — 在運動過程中使元素變形,以傳達重量、速度和靈活性。
  • Perceived performance — 正確的動畫使介面感覺更快,即使實際上並沒有。
  • Frequency of use — 使用者看到一個動畫的頻率越高,它應該越短且越微妙。
  • Spatial consistency — 讓元素在狀態之間保持其身份和位置,以便使用者永遠不會失去對事物去向的追蹤。
  • Hardware acceleration — 對 transform 和 opacity 進行動畫可讓 GPU 保持運動流暢。
  • Reduced motion — 尊重使用者的 prefers-reduced-motion 設定,降低或移除運動。

Individual skills in this repo

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

grahama1970/acceptance-contract

Turn a client brief, zip bundle, directory, or single requirements file into a typed acceptance-contract bundle with extracted requirements, acceptance checks, open questions, an immutable-goal draft, and a create-report-backed decision report. Use when users say acceptance contract, brief to requirements, freeze the goal, create immutable goal, amend immutable goal, build a Battle requirements bundle, or extract requirements from this bundle.

grahama1970/agent-ecosystem

Canonical map and shared contracts for the agent-governance ecosystem: the pi.receipt_envelope.v1 boundary envelope, the component graph, and the rules for which component owns which schema. Use when wiring a skill or extension into the shared receipt world, when asking how shame, triage-error, tau, ask, project-watchdog, ops-herdr, ponytail, and Memory fit together, or when validating an envelope.

grahama1970/agentic-evals

Agentic evaluation of skills using multi-trial fixtures, deterministic command assertions, trajectory checks, safety constraints, and evidence-backed readiness scoring. Use when users ask for agentic evals, multi-trial skill evaluation, skill trajectory validation, or readiness scoring for a skill workflow.

grahama1970/agent-inbox

File-based inter-agent messaging with headless dispatch. Check inbox, send bugs/requests to other projects, automatically spawn headless agents to fix bugs, and track progress via task-monitor.

grahama1970/agents-registry

Generate and query the centralized agent identity registry. Scans .pi/agents/*/AGENTS.md, parses frontmatter, outputs agents-registry.json and optionally syncs to /memory for semantic search.

grahama1970/agent-status

Artifact-driven status surfaces for long-running project-agent work. Maintains status.json, events.jsonl, proof manifests, and a stale-aware STATUS.html so humans can tell where the agent is, what passed, what is still unproven, and what decision or action is next — without dashboard theater.

grahama1970/align

Round-based context alignment before execution. Use when the human, project agent, WebGPT, scillm, ask, dogpile, memory, or project-knowledge may each hold different facts about a task; especially before ambiguous design, infographic, product workflow, high-stakes implementation, plan-iterate, project-infographic, or multi-review work.

grahama1970/analytics

Flexible data science analytics for any dataset. Auto-discovers schema, recommends charts, exports to create-figure. Works with JSONL, JSON, CSV from any source.

grahama1970/analyze-chatterbox-emotions

Evaluate generated Chatterbox voice files as voice-quality artifacts: affect match, arousal/valence proxies, pause placement, intelligibility inputs, clipping, loudness, and discontinuity flags. Use when reviewing Chatterbox emotional tags, pauses, Turbo/base affect delivery, Persona Dream utterance renders, or whether generated speech matches an intended product-facing affect.

grahama1970/analyze-elf

Reverse-engineer features from ELF binaries. Extracts CLI commands, state machines, protocols, Zod schemas, and data models. Automatically generates a /create-walkthrough prosecution brief with Mermaid diagrams. Uses /treesitter for AST analysis of bundled JS/TS source.

grahama1970/anonymize-data

Anonymize supported CSV, JSON, UTF-8 text, and SQLite files using an explicit policy through the oai-trial project. Use for anonymize data, pseudonymize exports, redact policy literals, or discover and explicitly approve fuzzy name aliases. The skill is a thin CLI/Docker interface, not another engine.

grahama1970/anvil

Heavy-duty "No-Vibes" debugging and hardening orchestrator. Use this for complex, stubborn bugs where `review-code` has failed, or for "Red Teaming" (hardening) a codebase. Runs multiple agents in parallel (Thunderdome) using git worktree isolation.

grahama1970/apple-design

Apple's approach to interface design and fluid, physical motion, translated for the web. Use when building or reviewing gesture-driven UI, spring animations, drag/swipe/sheet interactions, momentum and interruptible transitions, translucent materials and depth, typography (optical sizing, tracking, leading), reduced-motion, or the design foundations (feedback, spatial consistency, restraint) behind Apple-style interfaces.

grahama1970/argue

Multi-persona structured debate orchestrator. Personas research via /dogpile, consult colleagues via /ask, and argue toward nuanced synthesis on complex questions.

grahama1970/arxiv

Search arXiv for papers and extract knowledge into memory. Use `search` to find papers, `learn` to extract knowledge.

grahama1970/ask

Use when the user asks to query project memory, ask an oracle, use supported browser-backed reviewers, run Tau roundtable/single-handler workflows, ask Pi-native subagents from within Pi, run persona/deep-review workflows, generate image prompts, check OS/project health through composed skills, or run an ask DAG. This skill is the executable /ask runtime; do not replace it with an informal subagent, plain web search, or hand-written review; inside Pi, explicit Pi-native subagent targets are routed through the pi-subagents tool as an Ask target type.

grahama1970/assess

Step back and critically reassess project state. Use when asked to "assess", "step back", "fresh eyes", "check alignment", "sanity check", "health check", "prune documentation", or "evaluate what's working". Offers documentation pruning and doc-code alignment analysis. Offer to run after major changes (don't auto-run).

grahama1970/assistant

Shared GPT + classifier inference gateway for persona monitor tasks. Routes validation and classification through a 4-tier cascade: heuristic → classifier → local GPT → scillm.

grahama1970/assistant-lab

Self-improvement workbench for /assistant. All the tools needed to diagnose, train, evaluate, and promote models in a continuous loop. The "warm pond" where /assistant evolves its own inference stack.

grahama1970/batch-quality

Pre-flight validation and quality gates for batch LLM operations. ACTUALLY tests samples through LLM before burning tokens. Uses SPARTA contracts for DuckDB validation queries. Integrates with task-monitor for enforced quality gates.

相關技能