gsap-framer-scroll-animation
バニラJS・React・Next.jsにおけるスクロール連動アニメーションを構築したい場合に使用するスキル。GSAP ScrollTrigger(ピン留め・スクラブ・スナップ・横スクロール・ScrollSmoother等)およびFramer Motion / Motion v12(useScroll・useTransform・whileInView等)を網羅し、「スクロールでフェードイン」「Appleっぽいスクロール」「パララックス」「スクロールプログレスバー」といった要望にも対応する。
description の原文を見る
>- Use this skill whenever the user wants to build scroll animations, scroll effects, parallax, scroll-triggered reveals, pinned sections, horizontal scroll, text animations, or any motion tied to scroll position — in vanilla JS, React, or Next.js. Covers GSAP ScrollTrigger (pinning, scrubbing, snapping, timelines, horizontal scroll, ScrollSmoother, matchMedia) and Framer Motion / Motion v12 (useScroll, useTransform, useSpring, whileInView, variants). Use this skill even if the user just says "animate on scroll", "fade in as I scroll", "make it scroll like Apple", "parallax effect", "sticky section", "scroll progress bar", or "entrance animation". Also triggers for Copilot prompt patterns for GSAP or Framer Motion code generation. Pairs with the premium-frontend-ui skill for creative philosophy and design-level polish.
SKILL.md 本文
GSAP & Framer Motion — スクロールアニメーションスキル
GitHub Copilot プロンプト、すぐに使えるコードレシピ、深い API リファレンスを備えた本番環境レベルのスクロールアニメーション。
デザインコンパニオン: このスキルは、スクロール駆動モーションの 技術的実装 を提供します。 創造的な哲学、デザイン原則、プレミアムな美学については、常に premium-frontend-ui スキルを参照してください。 このスキルがアニメーション化する 方法 と 時期 に関する創造的なガイダンスを定義します。 一緒に完全なアプローチを形成します。premium-frontend-ui が 何を なぜ アニメーション化するかを決定し、 このスキルが どのように 実装するかを提供します。
クイックライブラリセレクタ
| 必要な場合 | 使用 |
|---|---|
| バニラ JS、Webflow、Vue | GSAP |
| ピン留め、水平スクロール、複雑なタイムライン | GSAP |
| React / Next.js、宣言的なスタイル | Framer Motion |
| whileInView エントランスアニメーション | Framer Motion |
| 同じ Next.js アプリで両方を使用 | リファレンスのノートを参照 |
完全なレシピと Copilot プロンプトについては、関連するリファレンスファイルを読んでください:
- GSAP →
references/gsap.md— ScrollTrigger API、すべてのレシピ、React 統合 - Framer Motion →
references/framer.md— useScroll、useTransform、すべてのレシピ
セットアップ (必ず最初に行う)
GSAP
npm install gsap
import gsap from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';
gsap.registerPlugin(ScrollTrigger); // ScrollTrigger 使用前に必ず呼び出す
Framer Motion (Motion v12、2025)
npm install motion # 2025 年中盤以降の新しいパッケージ名
# または: npm install framer-motion — 従来のまま、同じ API で機能
import { motion, useScroll, useTransform, useSpring } from 'motion/react';
// レガシー: import { motion } from 'framer-motion' — これも有効
ワークフロー
- ユーザーの意図を解釈して、GSAP または Framer Motion のどちらが最適かを特定します。
references/にある関連リファレンスドキュメントを読んで、詳細な API とパターンを確認します。- まだパッケージがインストールされていない場合は、必要なパッケージのインストールを提案します。
- リクエストされた形式 (React コンポーネント、フック要件、またはバニラ JS) に準拠して、アニメーション構造のスキャフォルドを実装します。
- 正しいツール (スクロール vs ビュー内の要素) を適用し、アクセシビリティオプションが存在し、フックが無限再レンダリングを引き起こさないことを確認します。
最も一般的なスクロールパターン 5 つ
クイックリファレンス — Copilot プロンプト付きの完全なレシピはリファレンスファイルに含まれています。
1. 入場時のフェードイン (GSAP)
gsap.from('.card', {
opacity: 0, y: 50, stagger: 0.15, duration: 0.8,
scrollTrigger: { trigger: '.card', start: 'top 85%' }
});
2. 入場時のフェードイン (Framer Motion)
<motion.div
initial={{ opacity: 0, y: 40 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true, margin: '-80px' }}
transition={{ duration: 0.6 }}
/>
3. スクラブ / スクロールリンク (GSAP)
gsap.to('.hero-img', {
scale: 1.3, opacity: 0, ease: 'none',
scrollTrigger: { trigger: '.hero', start: 'top top', end: 'bottom top', scrub: true }
});
4. スクロールリンク (Framer Motion)
const { scrollYProgress } = useScroll({ target: ref, offset: ['start end', 'end start'] });
const y = useTransform(scrollYProgress, [0, 1], [0, -100]);
return <motion.div style={{ y }} />;
5. ピン留めタイムライン (GSAP)
const tl = gsap.timeline({
scrollTrigger: { trigger: '.section', pin: true, scrub: 1, start: 'top top', end: '+=200%' }
});
tl.from('.title', { opacity: 0, y: 60 }).from('.img', { scale: 0.85 });
重要なルール (常に適用)
- GSAP: ScrollTrigger 使用前に必ず
gsap.registerPlugin(ScrollTrigger)を呼び出す - GSAP scrub: 常に
ease: 'none'を使用 — scrub がアクティブな場合、イージングは不自然に見える - GSAP React:
@gsap/reactのuseGSAPを使用、プレーンなuseEffectは決して使用しない — ScrollTrigger を自動的にクリーンアップ - GSAP デバッグ: 開発中は
markers: trueを追加; 本番環境では削除 - Framer:
useTransform出力はmotion.*要素のstyleプロップに配置される必要があり、プレーン div ではない - Framer Next.js: motion フックを使用するファイルの先頭に常に
'use client'を追加 - 両方:
transformとopacityのみをアニメーション化 —width、height、box-shadowは避ける - アクセシビリティ: 常に
prefers-reduced-motionをチェック — 各リファレンスファイルでパターンを参照 - プレミアムポーランド: premium-frontend-ui スキルの原則に従ってモーションタイミング、イージング曲線、控えめさを確保 — アニメーションは強化すべきで、決して圧倒されない
Copilot プロンプトのヒント
- Copilot に完全なセレクタ、ベース画像、スクロール範囲を前もって提供 — 曖昧なプロンプトは曖昧なコードを生成
- GSAP の場合、常に指定: セレクタ、start/end 文字列、scrub または toggleActions が必要かどうか
- Framer の場合、常に指定: どのフック (useScroll vs whileInView)、オフセット値、何を変換するか
/fixで質問する場合、正確なエラーメッセージを貼り付け — Copilot の修正は実際のエラーがあるとはるかに優れている- Copilot Chat で
@workspaceスコープを使用して、既存のコンポーネント構造を読む
リファレンスファイル
| ファイル | 内容 |
|---|---|
references/gsap.md | 完全な ScrollTrigger API リファレンス、10 のレシピ、React (useGSAP)、Lenis、matchMedia、アクセシビリティ |
references/framer.md | 完全な useScroll / useTransform API、8 つのレシピ、バリアント、Motion v12 のノート、Next.js のヒント |
関連スキル
| スキル | 関係 |
|---|---|
| premium-frontend-ui | 創造的な哲学、デザイン原則、美的ガイドライン — アニメーション化する 時期 と 理由 を定義 |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。