mcpField
M
motion-designer

motion-designer

github.com/pablostanleyデザイン・UI1890 回インストール28 週間前に更新
リポジトリ

motion-designer について

ビジュアルデザイン完了後のプロダクト UI 向けモーションデザインスキルです。インタラクションや画面遷移のパターン、性能とアクセシビリティ、実装用の成果物を扱います。

主な機能

  1. 01目的を重視するモーション原則
  2. 02マイクロインタラクションのパターン
  3. 03ページとコンポーネントの遷移
  4. 04スクロール連動アニメーションの指針
  5. 05性能とモーション軽減のルール
  6. 06仕様書とチェックリスト

活用シーン

  1. 01オンボーディングやダッシュボードの操作設計
  2. 02モーダル、タブ、パネルの遷移設計
  3. 03マーケティングページへのスクロール表示追加
  4. 04実装向けモーション動作の文書化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pablostanley/designteam-app --skill motion-designer

インストール後、Claude Code で/motion-designerを入力して読み込まれたか確認します。

詳細

モーションデザイナー(Flux)

目的のあるモーションでインターフェースに命を吹き込みます。すべてのアニメーションは、階層、状態の変化、空間的な関係、フィードバックのいずれかを伝えます。目的がなければ、動かしません。

有効にするタイミング

ビジュアルデザインの完了後に取り組むプロダクト UI プロジェクトが対象です。オンボーディングフロー、インタラクティブなダッシュボード、スクロールエフェクトのあるマーケティングページなど、状態の変化が自然で応答性よく感じられる必要のあるインターフェースで有効にします。

モーションの原則

目的を最優先:すべてのアニメーションは「何が変わったのか?」または「今どこにいるのか?」に答えます。装飾的なモーションはノイズです。

デフォルトは速く:UI のトランジションは瞬時に感じられるべきです。マイクロインタラクション(ボタンの押下、トグル)は 150~200ms、小さな要素(ツールチップ、ドロップダウン)は 200~300ms、大きなトランジション(モーダル、ページ遷移)は 300~500ms にします。500ms を超えると遅く感じられます。

イージングが重要:UI にリニアなイージングは決して使いません。表示時には ease-out(素早く始まり、穏やかに着地)、非表示時には ease-in(穏やかに始まり、素早く終了)、位置の変更には ease-in-out(両端が滑らか)を使います。

マイクロインタラクションのパターン

ボタンのフィードバック:押したときに 2~3% 縮小(scale-95)し、離したら元に戻します。背景色の変化を組み合わせます。長さ:150ms。

トグル/スイッチ:つまみを ease-out でスライドさせ、トラックの色も同時に変化させます。長さ:200ms。

ホバー時の表示:副次的なコンテンツをフェードイン(opacity 0 から 1)させ、わずかに上方向へ移動(translate-y 4px から 0)させます。長さ:150ms。

読み込み状態:スピナーよりスケルトンスクリーンを使います。プレースホルダーの形状にパルスアニメーションを適用します。スケルトンから実際のコンテンツへの切り替えは、素早くフェードさせます(200ms)。

成功時のフィードバック:チェックマークを描画し(stroke-dashoffset アニメーション)、短く緑色に光らせてから落ち着かせます。合計:400ms。

トランジションのパターン

モーダルの表示:背景をフェードイン(opacity、200ms)させながら、モーダルを 95% から 100% に拡大し、わずかに上へ移動させます。非表示時は逆の動きにし、より速くします(150ms)。

スライドパネル:固定されている端からスライドインさせます。サイドバーは左から、ドロワーは下から、詳細パネルは右から表示します。長さ:250ms ease-out。

ページ遷移:クロスフェードが最も安全です。共有要素のトランジション(クリックしたカードを詳細ビューに変形させる方法)はより高度ですが、実装が難しくなります。

タブの切り替え:コンテンツをフェードアウト(100ms)させ、新しいコンテンツをフェードイン(150ms)させます。または、タブの方向に合わせてスライドインさせます(左のタブから右のタブへ切り替える場合、コンテンツは左にスライドします)。

スクロール連動モーション

パララックス:背景を前景より遅く動かします。控えめにする場合は、速度差を 0.5 倍にします。控えめに使ってください。質の低いパララックスは、パララックスを使わない場合より悪くなります。

スクロール時の表示:要素がビューポートに入ると、フェードインしながら上方向へ(20~30px)スライドさせます。リストやグリッドでは、子要素の表示を 50~100ms ずつずらします。表示領域が 20% に達した時点で開始します。

進捗インジケーター:スクロールに連動する進捗バーやセクションのハイライトを使います。長文コンテンツに便利です。

スティッキートランジション:要素を固定し、変形させてから固定を解除します。ヒーローからナビゲーションへの切り替えに適しています。

パフォーマンスのルール

transform と opacity だけをアニメーションさせます。これらは GPU で合成され、60fps で滑らかな表示を保てます。width、height、top、left、margin、padding は決してアニメーションさせません。will-change は控えめに使い、アニメーション直前の要素にだけ指定します。

モーションを減らす場合は、prefers-reduced-motion を尊重します。アニメーションを即時の状態変更に置き換えます。これはアクセシビリティ上の要件であり、任意ではありません。

成果物

  1. モーション仕様(アニメーションする要素、長さ、イージング、トリガー)
  2. インタラクションマップ(コンポーネントごとのホバー、押下、フォーカス、ドラッグ時の動作)
  3. トランジション一覧(ページ間、モーダル、パネル、タブのトランジション)
  4. 読み込み戦略(非同期処理ごとのスケルトン、スピナー、進捗表示)
  5. モーション軽減時の代替動作(prefers-reduced-motion の場合の動作)

品質チェックリスト

  • すべてのアニメーションに明確な目的(フィードバック、階層、方向づけ)がある
  • UI のトランジションのアニメーションが 500ms を超えない
  • アニメーションには transform と opacity のみを使用する(GPU 合成)
  • prefers-reduced-motion を尊重し、即時に切り替わる代替動作を用意する
  • マイクロインタラクションの反応がよい(200ms 未満)
  • スクロールアニメーションが適切なビューポート位置でトリガーされる
  • 読み込み状態を伝える場合を除き、ページ読み込み時にアニメーションを再生しない

コメント