motion-design
モーションデザインの原則を活用し、感情に訴える質の高いアニメーションやトランジションを設計します。タイミング・イージング・コレオグラフィ・ディズニーアニメーションの法則をUI向けにアレンジして提供します。アニメーション・トランジション・マイクロインタラクション・ローディング表示・ページ遷移・スクロール連動エフェクトなどのモーション制作全般で活用でき、CSS・Framer Motion・GSAP・Lottie・Springなど各種アニメーションシステムに対応しています。
description の原文を見る
> Applies motion design principles to create emotionally-driven, technically sound animations and transitions. Provides timing, easing, choreography, and Disney animation principles adapted for UI. Use when creating animations, transitions, micro-interactions, loading states, page transitions, scroll-triggered effects, or any motion work. Works with CSS, Framer Motion, GSAP, Lottie, Spring, or any animation system.
SKILL.md 本文
モーションデザインスキル
適用するとき
このスキルを使用する場合:
- UI アニメーション (ボタン、カード、モーダル、ページ遷移) を作成するとき
- マイクロインタラクションと フィードバックアニメーションをデザインするとき
- ローディング、成功、またはエラー状態を構築するとき
- イラストや装飾要素をアニメーションするとき
- スクロールトリガーまたはプログレスベースのアニメーションを計画するとき
- ブランドモーションアイデンティティを確立するとき
- マルチ要素シーケンスの振付をするとき
デシジョンツリー:
- 機能的な目的 (フィードバック、ガイダンス) があるか? → レスポンシブのためのタイミングルール
- ブランドのパーソナリティを表現しているか? → モーションパーソナリティアーキタイプ
- ストーリーを語っているか、注意を誘導しているか? → ディズニー原則 + 振付
- 複雑なマルチ要素シーンか? → 1/3 ルール + スタッガーパターン
クイックリファレンス: 8ステップチェックリスト
アニメーション作成前に:
- 感情的なターゲット? — 喜び、落ち着き、緊迫感、優雅さ
- モーションパーソナリティ? — Playful、Premium、Corporate、Energetic
- プライマリプロパティ? — position、scale、rotation、opacity
- デュレーション? — 以下のデュレーションテーブルを参照
- イージングファミリー? — 進入=decelerate、退出=accelerate
- ヒーロー要素? — ステージング原則を適用
- セカンダリ + アンビエントレイヤー? — 豊かさを追加
- 1/3 ルール? — モーション距離、同時実行要素
3つの柱 (重要)
すべてのアニメーションは、技術的な決定を行う前に 3 つの柱を満たす必要があります:
| 柱 | 質問 | 駆動するもの |
|---|---|---|
| 感情的インテント | 視聴者は何を感じるべきか? | イージング、タイミング、振幅 |
| ビジュアルナラティブ | マイクロストーリーは何か? | セットアップ → アクション → レゾリューション |
| モーションクラフト | 信頼性を持たせるには? | フィジックス、セカンダリモーション、パス |
3 つのモーションレイヤー (フラットなアニメーション = レイヤー不足):
- プライマリ: 視聴者が追う主なアクション
- セカンダリ: サポートする豊かさ (シャドウ、アイコンのシフト)
- アンビエント: 背景のライフ (グラデーション、微妙なパルス)
詳細:
director/core-philosophy.md
モーションパーソナリティ
プロジェクトごとに 1 つのアーキタイプを選択。一貫して適用してください。
| アーキタイプ | デュレーション | イージング | オーバーシュート | キーワード |
|---|---|---|---|---|
| Playful | 150-300ms | ease-out-back | 10-20% | fun、whimsical、bouncy、cute |
| Premium | 350-600ms | cubic-bezier(0.4,0,0.2,1) | 0% | elegant、minimal、luxury、sophisticated |
| Corporate | 200-400ms | cubic-bezier(0.2,0,0,1) | 0-3% | clean、professional、business、dashboard |
| Energetic | 100-250ms | ease-out-expo | 15-30% | dynamic、energetic、bold、exciting |
デフォルト: UI は Corporate、イラストは Playful。
ブランドモーションアイデンティティ — 3 つの定数を定義:
- シグネチャイージング: アニメーションの 80% に使用する 1 つのカーブ
- デュレーションパレット: 3 つのデュレーション (quick / standard / slow)
- エントランスパターン: 1 つの一貫したエントリスタイル
詳細:
director/motion-personality.md
プロパティ選択
| エフェクト目的 | プライマリプロパティ | セカンダリプロパティ |
|---|---|---|
| 進入/退出 | position | opacity、scale |
| 強調/注意 | scale | rotation (微妙)、opacity pulse |
| 状態変化 | opacity、color | scale (プレスフィードバック) |
| 方向/フロー | position | rotation (パスに従う) |
| 深度/3D フィール | scale + shadow | position (parallax) |
| ローディング/プログレス | rotation (spinner) | scale、opacity pulse |
| 成功 | scale (pop) | color、rotation (checkmark draw) |
| エラー/アラート | position (shake) | color、rotation (wobble) |
シンプリシティの閾値: 必要最小限のプロパティを使用してください。1 つ = ダイレクト。2 つ = ポーランド。3 つ以上 = 圧倒的な可能性。
詳細:
reference/property-selection.md
デュレーションテーブル
| 要素タイプ | デュレーション | 根拠 |
|---|---|---|
| ツールチップ / マイクロフィードバック | 80-120ms | 即座に感じる必要がある |
| ボタンプレス / トグル | 120-180ms | レスポンシブフィードバック |
| アイコン遷移 | 150-250ms | 明確な状態変化 |
| カード進入 / 退出 | 200-350ms | 空間認識 |
| モーダル / ダイアログ | 300-400ms | フォーカスシフト |
| ページ遷移 | 400-600ms | コンテキストスイッチ |
| ドラマティックリビール | 600-1200ms | シアトリカルビルド |
距離がデュレーションをスケール: 100px = ベース。200px = 1.3x。400px = 1.6x。
進入 > 退出: 進入は退出より 30-50% 長い。ユーザーは表示されるものに注意する。
インタラクティブフィードバック:
- ホバー: <100ms
- プレス: <150ms
- リリース/セトル: 200-300ms
- エラーシェイク: 300-400ms (2-3 振動)
詳細:
reference/timing-easing-tables.md
イージング選択
方向的ルール:
- 進入 → decelerate (高速スタート、穏やかなランディング): ease-out ファミリー
- 退出 → accelerate (穏やかなスタート、高速出発): ease-in ファミリー
- 画面内 → 両端スムーズ: ease-in-out ファミリー
- ループアンビエント → シームレス: sine ベースの ease-in-out
業界標準:
| 標準 | Cubic Bezier | 用途 |
|---|---|---|
| Material Design 3 | (0.2, 0, 0, 1) | 画面内デフォルト |
| MD3 Emphasized | (0.05, 0.7, 0.1, 1) | 進入、注意 |
| MD3 Accelerate | (0.3, 0, 1, 1) | 退出、ディスミッサル |
| Apple HIG | (0.25, 0.1, 0.25, 1) | 標準 iOS |
| Snappy UI | (0.2, 0, 0, 1) | 高速、確定的 |
| Gentle float | (0.4, 0, 0.2, 1) | アンビエント、背景 |
| Bounce settle | (0.175, 0.885, 0.32, 1.275) | オーバーシュート、playful |
マテリアルベースのイージング:
| マテリアル | デュレーションスケール | オーバーシュート |
|---|---|---|
| Rigid (metal、stone) | 1.2x | 0% |
| Elastic (rubber、gel) | 0.8x | 15-25% |
| Fluid (water、paint) | 1.5x | 5% |
| Paper (cards、sheets) | 1.0x | 3-5% |
| Gas (smoke、fog) | 2.0x | 0% |
| Glass (brittle) | 0.9x | 0% |
詳細:
reference/timing-easing-tables.md
一般的なパターン
ボタンプレス (Playful)
- 予期: Scale to 0.97 (50ms、ease-out)
- スクワッシュ: Scale to [1.04、0.96] (100ms、ease-in)
- フォロースルー: Overshoots to 1.02、settles to 1.0 (spring、200ms)
- セカンダリ: プレス時にシャドウが縮小、アイコンが 2px 下にシフト
- 合計: ~150ms プレス + 200ms セトル
カード進入 (Premium)
- スタート: ターゲットより 20px 下、opacity 0
- パス: 微妙なカーブ (中点で 10px X オフセット)
- イージング: ease-out-cubic deceleration
- フォロースルー: シャドウはカード着地後 50ms で到着
- セカンダリ: コンテンツはカード着地後 100ms でフェードイン
- ステージング: 他のカードは 80% にディム
成功状態 (Playful)
- プライマリ: ease-out-back を使用した Scale pop
- セカンダリ: チェックマークの描画
- アンビエント: 微妙なパーティクルバースト
- カラー: グリーン フィル
- 合計: 300-400ms
エラーシェイク (Corporate)
- プライマリ: Position が 2-3 回振動、±10-15px 水平
- イージング: ease-in-out で鋭いストップ
- カラー: 赤いティント
- 合計: 300-400ms
- オーバーシュートなし: エラーはしっかりした感じ
さらにパターン:
patterns/entrance-exit.md|patterns/state-feedback.md
振付エッセンシャル
調整されたエントリ:
- ヒーローをリードで — プライマリ要素が最初に、または最も目立つように進入
- 空間的一貫性 — すべての要素が同じ方向から進入
- カウンターモーション — ヒーロが右に動く → アンビエントが 20-30% スピードで左に動く
1/3 ルール (距離): キーフレーム変更なしで、モーションが画面の 1/3 を超えて移動しない。
1/3 ルール (要素): 3 つ以上の要素がある場合、同時にアクティブに動いている要素は 1/3 以下。
スタッガーバジェット:
| パターン | 遅延 | 合計バジェット | ユースケース |
|---|---|---|---|
| Micro cascade | 20-40ms | <200ms | リストアイテム、グリッドセル |
| Standard | 50-100ms | <400ms | カード、パネル、ナビ |
| Dramatic | 100-200ms | <600ms | ヒーロセクション |
| Wave | 30-60ms | <500ms | データビジュアライゼーション |
重要: 合計スタッガーは 500ms 以下に留める必要があります。
詳細:
director/choreography.md
感情からモーションへのマップ
| 感情 | キャラクター | パス | イージング | デュレーション |
|---|---|---|---|---|
| Joy | Bouncy、arcs | Curved、upward | ease-out-back | 200-400ms |
| Calm | Smooth、flowing | Gentle curves | sine ease-in-out | 500-1000ms |
| Urgency | Sharp、fast | Straight lines | ease-out | 100-200ms |
| Sadness | Slow、downward | Drooping curves | cubic ease-in-out | 600-1200ms |
| Surprise | Sudden、expanding | Radial outward | ease-out-expo | 150-300ms |
| Elegance | Slow、controlled | Long arcs | (0.4,0,0.2,1) | 400-700ms |
| Playfulness | Bouncy、irregular | Arcs、squiggly | ease-out-back | 200-350ms |
言語としてのパス: Angular = テンション。Curved = フレンドリー。Spiral = whimsical。Diagonal = 意図的。Vertical = 成長/重み。Horizontal = プログレス。
詳細:
director/emotion-mapping.md
重みの分類
| 重さ | 例 | デュレーション | オーバーシュート | イージング |
|---|---|---|---|---|
| Heavy | モーダル、オーバーレイ | 300-500ms | 0% | Gentle、高ダンピング |
| Medium | カード、パネル | 200-350ms | 3-5% | Moderate |
| Light | ツールチップ、バッジ、アイコン | 80-200ms | 5-15% | レスポンシブ |
品質ルール
重要 — 絶対に破るな
- 空間的モーションに linear を使用しない — 常にイージングカーブを使用 (spinner、プログレスバーのみ linear)
- 重要な状態変化に opacity のみを使用しない — position または scale と組み合わせる
- 中間キーフレームなしで 1/3 画面を超えない
- 常に 3 つのモーションレイヤー — primary + secondary + ambient
高 — 強く従う
- 要素タイプに合わせてデュレーションをマッチさせる (テーブルを参照)
- 方向的イージングを使用 (ease-out 進入、ease-in 退出)
- ディズニー原則を適用 (特に anticipation、follow-through)
- シーン全体でパーソナリティを一貫させる
完全なチェックリスト:
reference/quality-checklist.md
トラブルシューティング クイックリファレンス
| 問題 | 可能な原因 | 修正 |
|---|---|---|
| ロボットのように見える | Linear イージングまたはアーク不足 | イージングカーブ + アークパスを追加 |
| 遅すぎる | 要素タイプに対してデュレーションが長い | デュレーションテーブルをチェック、ease-out を使用 |
| 安っぽい/フラット | セカンダリ + アンビエント不足 | シャドウモーション + 背景のライフを追加 |
| 気が散る | 動いている要素が多すぎる | 1/3 ルールを適用、振幅を減らす |
| パーソナリティがない | どこでも一般的なイージング | パーソナリティアーキタイプを一貫して適用 |
詳細:
reference/troubleshooting.md
ファイルリファレンス
フィロソフィー (director/):
core-philosophy.md— 3 つの柱の深掘りdecision-framework.md— 完全なデシジョンパイプラインdisney-principles.md— 12 原則、UI 適応motion-personality.md— 4 つのアーキタイプ + ブランドアイデンティティemotion-mapping.md— 感情 → モーション + カラーサイコロジーchoreography.md— マルチ要素のコーディネーションnarrative-structure.md— マイクロストーリーフレームワークcontext-adaptation.md— プラットフォーム、a11y、パフォーマンス
リファレンス (reference/):
timing-easing-tables.md— デュレーション + イージングルックアップproperty-selection.md— プロパティコミュニケーションガイドtroubleshooting.md— アニメーション スメル + 修正quality-checklist.md— 評価基準
パターン (patterns/):
entrance-exit.md— 進入/退出レシピstate-feedback.md— 成功、エラー、ローディング、ホバーambient-continuous.md— ループ、呼吸、parallaxmulti-element.md— スタッガー + 振付レシピ
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- lottiefiles
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/lottiefiles/motion-design-skill / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。