gsap-animate
Add or debug professional web animations with GSAP (timelines, ScrollTrigger, stagger, transforms) in HTML/CSS/JS/React. Includes patterns for smooth motion, performance, and common pitfalls.
Best use case
gsap-animate is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Add or debug professional web animations with GSAP (timelines, ScrollTrigger, stagger, transforms) in HTML/CSS/JS/React. Includes patterns for smooth motion, performance, and common pitfalls.
Teams using gsap-animate should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/gsap-animate/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How gsap-animate Compares
| Feature / Agent | gsap-animate | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Add or debug professional web animations with GSAP (timelines, ScrollTrigger, stagger, transforms) in HTML/CSS/JS/React. Includes patterns for smooth motion, performance, and common pitfalls.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# GSAP (GreenSock) — Web Animation Skill
## When to use
- High-quality UI/motion design: entrances, micro-interactions, page transitions
- Timeline-based sequences (vs. scattered CSS transitions)
- Scroll-driven storytelling (with ScrollTrigger)
- Complex easing, staggering, orchestration across many elements
## Key concepts & APIs
- Tweens:
- `gsap.to(targets, vars)`
- `gsap.from(targets, vars)`
- `gsap.fromTo(targets, fromVars, toVars)`
- Timelines:
- `const tl = gsap.timeline({ defaults, repeat, yoyo, paused })`
- Chain: `tl.to(...).from(...).addLabel('x').add(() => ...)`
- Position parameter: absolute `1.2`, relative `"+=0.5"`, overlap `"-=0.3"`, label `"intro"`
- Eases: `ease: "power2.out"`, `"expo.inOut"`, `"elastic.out(1, 0.3)"`
- Staggers: `stagger: 0.05` or `{ each, from: "start|center|end|random", grid }`
- Performance-friendly properties:
- Prefer transforms (`x`, `y`, `scale`, `rotation`) and opacity (`autoAlpha`)
- ScrollTrigger (plugin):
- `gsap.registerPlugin(ScrollTrigger)`
- Inline: `gsap.to(".box", { scrollTrigger: ".box", x: 500 })`
- Advanced: `scrollTrigger: { trigger, start, end, scrub, pin, snap, markers }`
## Common pitfalls (and fixes)
- Animating layout properties (top/left/width/height) → jank → Use transforms
- ScrollTrigger "not firing" → Ensure trigger has height, check scroll container
- Not cleaning up in SPA/React → Use `gsap.context()` and revert on unmount
- FOUC → Initialize after layout is stable; `ScrollTrigger.refresh()` after images load
## Quick recipes
### 1) Hero entrance (stagger)
```js
gsap.from(".hero [data-anim]", {
y: 24, autoAlpha: 0, duration: 0.8,
ease: "power2.out", stagger: 0.06,
});
```
### 2) Sequenced timeline
```js
const tl = gsap.timeline({ defaults: { ease: "power2.out", duration: 0.6 } });
tl.from(".nav", { y: -20, autoAlpha: 0 })
.from(".hero-title", { y: 30, autoAlpha: 0 }, "-=0.2")
.from(".hero-cta", { scale: 0.95, autoAlpha: 0 }, "-=0.2");
```
### 3) Scroll-scrub pinned section
```js
gsap.registerPlugin(ScrollTrigger);
gsap.timeline({
scrollTrigger: { trigger: ".story", start: "top top", end: "+=800", scrub: 1, pin: true },
}).to(".story .panel", { xPercent: -200 });
```
## Tips for AI Agents
- Ask whether this is a static site or SPA (React/Next/Vue) for cleanup patterns.
- Confirm if scroll-driven sections are needed (pin/scrub/snap).
- Always consider `prefers-reduced-motion` for accessibility.Related Skills
motion-canvas-animate
Create programmatic animations using Motion Canvas at {{MOTION_CANVAS_HOST}}:{{MOTION_CANVAS_PORT}}.
animejs-animate
Comprehensive guide to using Anime.js v4 for JavaScript-driven web animations — timelines, SVG animations, scroll effects, draggable interactions, and stagger patterns.
youtube-growth
Act as an expert YouTube Strategy Consultant. Apply the Creator Unlock N.I.C.E.R. Framework for conducting channel audits, niche validation, and data-backed video ideation/thumbnail generation.
xyops-automate
Build and manage automation pipelines using xyOps at {{XYOPS_HOST}}:{{XYOPS_PORT}}.
xml-parse
Parse and transform XML/HTML documents using command-line tools in the shared volume at {{SHARED_VOLUME}}.
woodpecker-ci
Lightweight container-native CI/CD with Woodpecker
whisper-transcribe
Transcribe audio and video files to text using the Whisper speech-to-text API at {{WHISPER_HOST}}:{{WHISPER_PORT}}.
web-interface-guidelines
Checklist for reviewing UI code for compliance with comprehensive web interface, accessibility, performance, and content guidelines — based on Vercel's Web Interface Guidelines.
web-design-reviewer
Inspect web interfaces for layout, responsive, accessibility, and visual issues, then apply targeted source code fixes and re-verify results.
weaviate-search
Perform hybrid vector and keyword search using Weaviate at {{WEAVIATE_HOST}}:{{WEAVIATE_PORT}}.
watchtower-update
Auto-update Docker containers using Watchtower.
vaultwarden-manage
Self-hosted password management with Vaultwarden