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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
motion-dev-animations.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
motion-dev-animationsフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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 スタイルのエントランス
- ヒーロースタッガー - 調整された要素
- ヒーロースプリットテキスト - 文字の表示
スクロール効果
- スクロール表示 - Intersection Observer によるフェードイン
- パララックスレイヤー - マルチスピードの奥行き
- スクロールプログレス - 読書インジケーター
ジェスチャーとインタラクション
- カードホバー - エレガントなリフトとシャドウ
- マグネティックボタン - カーソル追従
- ドラッグカー
(原文がここで切り詰められています)
📜 原文 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
transitionproperty) - Static sites without JavaScript frameworks
- Vue projects (use
motion-vpackage - 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
- Scroll Reveal - Intersection Observer fade-in
- Parallax Layers - Multi-speed depth
- Scroll Progress - Reading indicator
Gestures & Interactions
- Card Hover - Elegant lift + shadow
- Magnetic Button - Cursor-following
- Drag Carousel - Touch slider
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
- Start simple → Build from fade + slide, add complexity incrementally
- Extract variants → Define animation states as named variants for maintainability
- Prefer spring physics → Default to spring transitions (more natural than tween)
- Stagger list items → Use staggerChildren (0.1-0.2s) for rhythm and hierarchy
- Test mobile thoroughly → Verify touch gestures, performance on iOS/Android devices
- Include reduced-motion → Always provide prefers-reduced-motion fallback animations
- 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:
- Motion Config Schema - JSON schema
- Validation Script - Automated checks
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