Skip to content
Skillpedia
Interfaces (UI/UX)40k · #5176

gsap-framer-scroll-animation

Lets your agent create scroll-triggered animations. It uses libraries like GSAP and Framer Motion for visual effects on web pages.

What it does

This tool helps create website animations that happen as the user scrolls down the page. You can make elements appear, change size, or move in interesting ways based on their position on the page.

When to use it

  • ✓When you want an element to fade in smoothly as the user scrolls.
  • ✓To create a 'zoom' or 'blur' effect on an image while scrolling.
  • ✓To make an entire page section 'stick' in place as the user scrolls past it.

Example of what to ask your AI

“Make a text element fade out and back in as I scroll.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/github/awesome-copilot/blob/main/skills/gsap-framer-scroll-animation/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/github/awesome-copilot/blob/main/skills/gsap-framer-scroll-animation/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

You choose between two popular libraries (GSAP or Framer Motion) and use their commands to tell how and when the animation should happen in relation to the page scroll.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add github/awesome-copilot --skill gsap-framer-scroll-animation

Or download just the file:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/gsap-framer-scroll-animation/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

GSAP & Framer Motion — Scroll Animations Skill

Production-grade scroll animations with GitHub Copilot prompts, ready-to-use code recipes, and deep API references.

Design Companion: This skill provides the technical implementation for scroll-driven motion. For the creative philosophy, design principles, and premium aesthetics that should guide how and when to animate, always cross-reference the premium-frontend-ui skill. Together they form a complete approach: premium-frontend-ui decides the what and why; this skill delivers the how.

Quick Library Selector

Need Use
Vanilla JS, Webflow, Vue GSAP
Pinning, horizontal scroll, complex timelines GSAP
React / Next.js, declarative style Framer Motion
whileInView entrance animations Framer Motion
Both in same Next.js app See notes in references

Read the relevant reference file for full recipes and Copilot prompts:

  • GSAP → references/gsap.md — ScrollTrigger API, all recipes, React integration
  • Framer Motion → references/framer.md — useScroll, useTransform, all recipes

Setup (Always Do First)

GSAP

npm install gsap
import gsap from 'gsap';
import { ScrollTrigger } from 'gsap/ScrollTrigger';
gsap.registerPlugin(ScrollTrigger); // MUST call before any ScrollTrigger usage

Framer Motion (Motion v12, 2025)

npm install motion   # new package name since mid-2025
# or: npm install framer-motion  — still works, same API
import { motion, useScroll, useTransform, useSpring } from 'motion/react';
// legacy: import { motion } from 'framer-motion'  — also valid

Workflow

  1. Interpret the user's intent to identify if GSAP or Framer Motion is the best fit.
  2. Read the relevant reference document in references/ for detailed APIs and patterns.
  3. Suggest the required package installation if not already present.
  4. Implement the scaffold for the animation structure, adhering to the requested format (React components, hook requirements, or vanilla JS).
  5. Apply the correct tools (scrolling vs in-view elements) ensuring accessibility options are present and hooks don't cause infinite re-renders.

The 5 Most Common Scroll Patterns

Quick reference — full recipes with Copilot prompts are in the reference files.

1. Fade-in on enter (GSAP)

gsap.from('.card', {
  opacity: 0, y: 50, stagger: 0.15, duration: 0.8,
  scrollTrigger: { trigger: '.card', start: 'top 85%' }
});

2. Fade-in on enter (Framer Motion)

<motion.div
  initial={{ opacity: 0, y: 40 }}
  whileInView={{ opacity: 1, y: 0 }}
  viewport={{ once: true, margin: '-80px' }}
  transition={{ duration: 0.6 }}
/>

3. Scrub / scroll-linked (GSAP)

gsap.to('.hero-img', {
  scale: 1.3, opacity: 0, ease: 'none',
  scrollTrigger: { trigger: '.hero', start: 'top top', end: 'bottom top', scrub: true }
});

4. Scroll-linked (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. Pinned timeline (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 });

Critical Rules (Apply Always)

  • GSAP: always call gsap.registerPlugin(ScrollTrigger) before using it
  • GSAP scrub: always use ease: 'none' — easing feels wrong when scrub is active
  • GSAP React: use useGSAP from @gsap/react, never plain useEffect — it auto-cleans ScrollTriggers
  • GSAP debug: add markers: true during development; remove before production
  • Framer: useTransform output must go into style prop of a motion.* element, not a plain div
  • Framer Next.js: always add 'use client' at top of any file using motion hooks
  • Both: animate only transform and opacity — avoid width, height, box-shadow
  • Accessibility: always check prefers-reduced-motion — see each reference file for patterns
  • Premium polish: follow the premium-frontend-ui skill principles for motion timing, easing curves, and restraint — animation should enhance, never overwhelm

Copilot Prompting Tips

  • Give Copilot the full selector, base image, and scroll range upfront — vague prompts produce vague code

…

FAQ

Do I need to install anything?

Yes, you need to install the GSAP or Framer Motion library using a command in your terminal before using it.

Which library should I use?

Use GSAP for more complex animations like horizontal scrolling or timelines. Use Framer Motion for simpler 'enter' animations in React/Next.js components.

How do I make sure the animation doesn't bother users sensitive to motion?

It's important to check 'prefers-reduced-motion' settings to ensure animations are disabled or simplified for those users.

Details

Original description by the author

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 (useScro

repo: github/awesome-copilot

Popularity

GitHub stars
40k
Ranking position
#5176
License
MIT
Updated
10/15/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills