jpskill.com
💬 コミュニケーション コミュニティ

motion-dev-animations

React、Next.js、Svelte、Astroプロジェクトで、Motion.devを用いてGPUアクセラレーションによる滑らかなアニメーションを生成するためのSkillです。

📜 元の英語説明(参考)

Creates 120fps GPU-accelerated animations with Motion.dev (Framer Motion successor) for React, Next.js, Svelte, and Astro projects. Use when user requests animation, motion, scroll effects, parallax, hero animations, gestures, drag interactions, spring physics, whileHover effects, whileInView animations, animated UI, micro-interactions, page transitions, or layout animations. Generates production TypeScript/JSX code with accessibility (prefers-reduced-motion) and performance validation (≥60fps). Supports entrance animations, gesture interactions (hover/tap/drag), scroll-based reveals, and layout transitions using spring physics and natural timing. Do NOT use for CSS-only transitions (use native CSS), static sites without JavaScript, Vue animations (use motion-v variant instead), or SVG/Canvas complex animations (GSAP better suited).

🇯🇵 日本人クリエイター向け解説

一言でいうと

React、Next.js、Svelte、Astroプロジェクトで、Motion.devを用いてGPUアクセラレーションによる滑らかなアニメーションを生成するためのSkillです。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o motion-dev-animations.zip https://jpskill.com/download/6051.zip && unzip -o motion-dev-animations.zip && rm motion-dev-animations.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6051.zip -OutFile "$d\motion-dev-animations.zip"; Expand-Archive "$d\motion-dev-animations.zip" -DestinationPath $d -Force; ri "$d\motion-dev-animations.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して motion-dev-animations.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → motion-dev-animations フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

[Skill 名] motion-dev-animations

Motion Dev アニメーション

Motion.dev - 月間1,000万以上のダウンロード数、Framer Motion の後継 React、Next.js、Svelte、Astro、Vue 向けの 120fps GPU アクセラレーションアニメーション

目的

Apple/Jon Ive の原則に従い、Motion.dev を使用してプロダクションレベルのアニメーションを生成します。 目的的 (機能に貢献する) | 滑らか (120fps) | アクセシブル (reduced-motion に対応) | 高性能 (GPU のみ) | エレガント (繊細) | 一貫性 (統一されたタイミング)

使用する場面

使用する場合:

  • React 19+/Next.js 15+/Svelte 5+/Astro 4+ でのアニメーション実装
  • スクロール効果 (パララックス、表示)、ジェスチャー (ホバー、ドラッグ、タップ)、レイアウトアニメーション
  • ヒーローセクション、カード、60fps以上のパフォーマンスを必要とするマイクロインタラクション
  • スプリング物理、自然な動き、アクセシビリティを必要とするプロジェクト

使用しない場合:

  • CSSのみのトランジション (ネイティブの transition プロパティを使用してください)
  • JavaScriptフレームワークを使用しない静的サイト
  • Vue プロジェクト (motion-v パッケージを使用してください - API が異なります)
  • SVG/Canvas の複雑なアニメーション (GSAP の方が適しています)
  • フォームのみの CRUD アプリ (オーバースペックです)

ワークフロー: 要件明確化 → 計画 → 実装 → 検証

ステップ 1: 要件の明確化

プロジェクトのコンテキストとアニメーションの目標を決定します。

  • フレームワーク (React 19+、Next.js 15+、Svelte 5+、Astro 4+)
  • アニメーションの種類 (エントランス、ジェスチャー、スクロール、レイアウト)
  • デザイン目標 (繊細、目立つ、遊び心のある、プロフェッショナル)
  • パフォーマンス制約 (ターゲットデバイス、バンドルサイズ制限、アクセシビリティ要件)
  • トリガーメカニズム (マウント時、ビューポート内、ユーザーインタラクション)

ステップ 2: アニメーション戦略の計画

実装アプローチを定義します。

  • アニメーション化するコンポーネント (ヘッダー、カード、ボタン、セクション)
  • モーションパターン (フェード、スライド、スケール、スプリング、パララックス)
  • タイミング仕様 (期間、遅延、スタッガー間隔)
  • 物理パラメータ (stiffness: 300-400、damping: 20、mass: 1)
  • アクセシビリティのフォールバック (prefers-reduced-motion の代替案)

ステップ 3: 段階的な実装

アニメーションを段階的に構築します。

  • セットアップ: Motion.dev のインストール、インポートの設定、コンポーネント構造の準備
  • コアアニメーション: モーションプロパティ (initial、animate、transition) の適用
  • 洗練: 自然な感覚のためにタイミング、イージングカーブ、スプリング物理を調整
  • アクセシビリティ: reduced-motion の検出、キーボードナビゲーションのサポートを追加
  • 最適化: GPU アクセラレーションの検証、バンドルサイズの最小化、パフォーマンスのテスト

ステップ 4: 品質基準の検証

要件に対するチェックを行います。

  • パフォーマンス: ≥60fps (Chrome DevTools → Performance タブ)
  • レイアウトの安定性: CLS = 0 (Lighthouse audit)
  • アクセシビリティ: prefers-reduced-motion を尊重 (システム設定テスト)
  • キーボードナビゲーション: すべてのインタラクティブ要素がキーボードでアクセス可能
  • モバイルレスポンシブ: タッチフレンドリーなジェスチャー、iOS/Android でテスト済み

アニメーションパターン決定木

INPUT: 何をアニメーション化すべきですか?

├─ ENTRANCE (ページロード、マウント)
│   → パターン: initial={{opacity: 0, y: 20}} animate={{opacity: 1, y: 0}}
│   → タイミング: 0.6-0.8秒、ease: [0.22, 1, 0.36, 1]
│   → スタッガー: 要素間に 0.1-0.2秒
│   → 例: ./examples/hero-fade-up.md
│
├─ GESTURE (ホバー、タップ、ドラッグ)
│   → パターン: whileHover={{scale: 1.05}}, whileTap={{scale: 0.95}}
│   → 物理: スプリング (stiffness: 300-400, damping: 20)
│   → タイミング: 即時応答 (期間なし)
│   → 例: ./examples/card-hover.md, ./examples/magnetic-button.md
│
├─ SCROLL (表示、パララックス)
│   → パターン: whileInView + viewport または useScroll + useTransform
│   → トリガー: viewport={{once: true, amount: 0.3}}
│   → パフォーマンス: Transform/opacity のみ
│   → 例: ./examples/scroll-reveal.md, ./examples/parallax-layers.md
│
└─ LAYOUT (並べ替え、展開)
    → パターン: layout プロパティ (自動 FLIP)
    → 共有: モーフィング用の layoutId="id"
    → 注意: transform のみアニメーション化されます

API クイックリファレンス

コンポーネント/フック 用途 使用時
motion.div <motion.div animate={{x: 100}}> 基本的なアニメーション
whileHover whileHover={{scale: 1.05}} ホバーステート (0.2-0.3秒)
whileTap whileTap={{scale: 0.95}} クリックフィードバック
whileInView whileInView={{opacity: 1}} スクロール表示
drag drag="x" dragConstraints ドラッグ可能な要素
layout <motion.div layout /> 自動 FLIP アニメーション
useScroll スクロール進行状況を追跡 パララックス、プログレスバー
useTransform 値をマッピング スクロール連動効果
useSpring スプリング物理 滑らかな値の変化
useInView ビューポート検出 アニメーションをトリガー

完全な API: 完全な API リファレンス を参照してください。

フレームワーク統合

フレームワーク インポート コンポーネント 終了アニメーション
React/Next.js "motion/react" <motion.div> <AnimatePresence>
Svelte "motion" Vanilla API N/A
Astro "motion" クライアントスクリプト N/A
Vue "motion-v" <motion.div> React と類似

品質基準

カテゴリ 要件 検証方法
パフォーマンス ≥60fps Chrome DevTools → Performance
GPU アクセラレーション transform/opacity のみ width/height/left/top は使用しない
バンドルサイズ <50KB webpack-bundle-analyzer
アクセシビリティ prefers-reduced-motion システム設定テスト
モバイル タッチフレンドリー iOS/Android テスト
レイアウトシフト CLS = 0 Lighthouse audit

サンプルライブラリ (プログレッシブローディング)

アニメーションの種類に基づいてオンデマンドでロードします。

ヒーローセクション

  • ヒーローフェードアップ - クラシックな Apple スタイルのエントランス
  • ヒーロースタッガー - 調整された要素
  • ヒーロースプリットテキスト - 文字の表示

スクロール効果

ジェスチャーとインタラクション

(原文がここで切り詰められています)

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Motion Dev Animations

Motion.dev - 10M+ downloads/month, successor to Framer Motion 120fps GPU-accelerated animations for React, Next.js, Svelte, Astro, Vue

Purpose

Generate production-grade animations using Motion.dev following Apple/Jon Ive principles: Purposeful (serves function) | Smooth (120fps) | Accessible (reduced-motion) | Performant (GPU-only) | Elegant (subtle) | Consistent (unified timing)

When to Use

Use for:

  • React 19+/Next.js 15+/Svelte 5+/Astro 4+ animation implementation
  • Scroll effects (parallax, reveal), gestures (hover, drag, tap), layout animations
  • Hero sections, cards, micro-interactions requiring 60fps+ performance
  • Projects needing spring physics, natural motion, accessibility

Don't use for:

  • CSS-only transitions (use native transition property)
  • Static sites without JavaScript frameworks
  • Vue projects (use motion-v package - different API)
  • SVG/Canvas complex animations (GSAP better suited)
  • Form-only CRUD apps (overkill)

Workflow: Clarify → Plan → Implement → Verify

Step 1: Clarify Requirements

Determine project context and animation goals:

  • Framework (React 19+, Next.js 15+, Svelte 5+, Astro 4+)
  • Animation type (entrance, gesture, scroll, layout)
  • Design goal (subtle, prominent, playful, professional)
  • Performance constraints (target device, bundle limits, accessibility requirements)
  • Trigger mechanism (mount, viewport, user interaction)

Step 2: Plan Animation Strategy

Define implementation approach:

  • Components to animate (headers, cards, buttons, sections)
  • Motion patterns (fade, slide, scale, spring, parallax)
  • Timing specifications (duration, delay, stagger intervals)
  • Physics parameters (stiffness: 300-400, damping: 20, mass: 1)
  • Accessibility fallbacks (prefers-reduced-motion alternatives)

Step 3: Implement in Phases

Build animations incrementally:

  • Setup: Install Motion.dev, configure imports, prepare component structure
  • Core Animation: Apply motion properties (initial, animate, transition)
  • Refinement: Tune timing, easing curves, spring physics for natural feel
  • Accessibility: Add reduced-motion detection, keyboard navigation support
  • Optimization: Verify GPU-acceleration, minimize bundle size, test performance

Step 4: Verify Quality Standards

Check against requirements:

  • Performance: ≥60fps (Chrome DevTools → Performance tab)
  • Layout Stability: CLS = 0 (Lighthouse audit)
  • Accessibility: Honors prefers-reduced-motion (system settings test)
  • Keyboard Navigation: All interactive elements keyboard-accessible
  • Mobile Responsive: Touch-friendly gestures, tested on iOS/Android

Animation Pattern Decision Tree

INPUT: What should animate?

├─ ENTRANCE (page load, mount)
│   → Pattern: initial={{opacity: 0, y: 20}} animate={{opacity: 1, y: 0}}
│   → Timing: 0.6-0.8s, ease: [0.22, 1, 0.36, 1]
│   → Stagger: 0.1-0.2s between elements
│   → Example: ./examples/hero-fade-up.md
│
├─ GESTURE (hover, tap, drag)
│   → Pattern: whileHover={{scale: 1.05}}, whileTap={{scale: 0.95}}
│   → Physics: Spring (stiffness: 300-400, damping: 20)
│   → Timing: Instant response (no duration)
│   → Examples: ./examples/card-hover.md, ./examples/magnetic-button.md
│
├─ SCROLL (reveal, parallax)
│   → Pattern: whileInView + viewport OR useScroll + useTransform
│   → Trigger: viewport={{once: true, amount: 0.3}}
│   → Performance: Transform/opacity only
│   → Examples: ./examples/scroll-reveal.md, ./examples/parallax-layers.md
│
└─ LAYOUT (reorder, expand)
    → Pattern: layout prop (auto FLIP)
    → Shared: layoutId="id" for morphing
    → Caveat: Only animates transforms

API Quick Reference

Component/Hook Usage When
motion.div <motion.div animate={{x: 100}}> Basic animations
whileHover whileHover={{scale: 1.05}} Hover states (0.2-0.3s)
whileTap whileTap={{scale: 0.95}} Click feedback
whileInView whileInView={{opacity: 1}} Scroll reveal
drag drag="x" dragConstraints Draggable elements
layout <motion.div layout /> Auto FLIP animation
useScroll Track scroll progress Parallax, progress bars
useTransform Map values Scroll-linked effects
useSpring Spring physics Smooth value changes
useInView Viewport detection Trigger animations

Full API: See Complete API Reference

Framework Integration

Framework Import Components Exit Animations
React/Next.js "motion/react" <motion.div> <AnimatePresence>
Svelte "motion" Vanilla API N/A
Astro "motion" Client scripts N/A
Vue "motion-v" <motion.div> Similar to React

Quality Standards

Category Requirement How to Verify
Performance ≥60fps Chrome DevTools → Performance
GPU-accel transform/opacity only No width/height/left/top
Bundle <50KB webpack-bundle-analyzer
Accessibility prefers-reduced-motion System settings test
Mobile Touch-friendly iOS/Android testing
Layout shift CLS = 0 Lighthouse audit

Examples Library (Progressive Loading)

Load on-demand based on animation type:

Hero Sections

  • Hero Fade Up - Classic Apple-style entrance
  • Hero Stagger - Orchestrated elements
  • Hero Split Text - Character reveal

Scroll Effects

Gestures & Interactions

Layout Animations

  • List Reorder - Drag-to-reorder FLIP
  • Accordion - Expand/collapse
  • Tab Switch - Shared layout

Full examples: All files in ./examples/ directory

Reference Documentation (Load On-Demand)

  • Complete API Reference - All components, hooks, props
  • Spring Physics Guide - Tuning stiffness, damping, mass
  • Performance Optimization - GPU, will-change, lazy loading
  • Accessibility Guide - Reduced motion, keyboard, screen readers
  • Troubleshooting - Common issues, solutions
  • Framer Motion Migration - Upgrade guide

Templates (Production-Ready)

  • Next.js Page Template - Hero + features + testimonials
  • Component Library - 10+ reusable components
  • Scroll Template - Parallax + reveal patterns
  • Dashboard Template - Interactive cards, charts

Installation

# React/Next.js/Svelte/Astro
npm install motion

# Vue
npm install motion-v

Common Patterns (Copy-Paste Ready)

Pattern 1: Fade Up Entrance

<motion.div
  initial={{ opacity: 0, y: 20 }}
  animate={{ opacity: 1, y: 0 }}
  transition={{ duration: 0.6, ease: [0.22, 1, 0.36, 1] }}
/>

Pattern 2: Hover Card

<motion.div
  whileHover={{ y: -8, boxShadow: "0 20px 40px rgba(0,0,0,0.12)" }}
  transition={{ type: "spring", stiffness: 300, damping: 20 }}
/>

Pattern 3: Scroll Reveal

<motion.div
  initial={{ opacity: 0, y: 50 }}
  whileInView={{ opacity: 1, y: 0 }}
  viewport={{ once: true, amount: 0.3 }}
/>

More patterns: Staggered lists, exit animations, layout transitions → ./examples/ directory

Error Handling

Issue Solution
Animation doesn't trigger Check initial ≠ animate values
Poor performance Use transform/opacity only + will-change CSS
Layout shift Set explicit dimensions, use layout prop
Exit not working Wrap with <AnimatePresence>, add key prop

Implementation Best Practices

  1. Start simple → Build from fade + slide, add complexity incrementally
  2. Extract variants → Define animation states as named variants for maintainability
  3. Prefer spring physics → Default to spring transitions (more natural than tween)
  4. Stagger list items → Use staggerChildren (0.1-0.2s) for rhythm and hierarchy
  5. Test mobile thoroughly → Verify touch gestures, performance on iOS/Android devices
  6. Include reduced-motion → Always provide prefers-reduced-motion fallback animations
  7. Profile performance → Use Chrome DevTools Performance tab, target ≥60fps

Design Philosophy (Apple/Jon Ive Principles)

Apply these design principles to all animations:

  • Simplicity: Use 200-400ms durations, minimize simultaneous motion, prefer transform properties
  • Natural Physics: Implement spring-based transitions, avoid linear easing, apply mass-based movement
  • Purposeful Motion: Guide user attention, provide interaction feedback, establish visual hierarchy
  • Elegant Restraint: Apply "less is more" principle, maintain consistent timing, respect user motion preferences

Validation

For structured output validation, see:

Metadata

Version: 3.0.0 (Research-Backed Optimization) Optimization: Imperative language, few-shot patterns (3 examples), layered complexity, progressive loading Token Efficiency: 87% core reduction (15K → 2K) + auto-caching Motion.dev: v11+ Frameworks: React 19+, Next.js 15+, Svelte 5+, Astro 4+, Vue 3+ Research: arXiv 2402.07927v1, 2211.01910, 2310.14735v5, PubMed 40334089 License: MIT