
GSAP
Skill用 GSAP 编写或调试网页动画:补间、时间线与位置参数、缓动、错峰,以及 ScrollTrigger 的固定与滚动联动;说明优先动 transform、在 React 中用 gsap.context() 清理、图片加载后刷新等常见问题。
name: gsap
description: Use when you need to 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.
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.05or{ each, from: "start|center|end|random", grid } - Performance-friendly properties:
- Prefer transforms (
x,y,scale,rotation) and opacity (autoAlpha)
- Prefer transforms (
- ScrollTrigger (plugin):
gsap.registerPlugin(ScrollTrigger)- Inline:
gsap.to(".box", { scrollTrigger: ".box", x: 500 }) - Advanced:
scrollTrigger: { trigger, start, end, scrub, pin, snap, markers } - Standalone:
ScrollTrigger.create({ trigger, start, end, onUpdate, onToggle })
Common pitfalls (and fixes)
- Animating layout properties (top/left/width/height) → jank
- Use transforms, add
will-change: transform, avoid forced reflow.
- Use transforms, add
- ScrollTrigger “not firing” due to wrong trigger sizing/overflow containers
- Ensure trigger exists, has height, and check scroll container (nested scrolling needs config).
- Not cleaning up in SPA/React
- Use
gsap.context()and revert on unmount; kill triggers (ScrollTrigger.getAll().forEach(t => t.kill())) if needed.
- Use
- FOUC / measuring before fonts/images load
- Initialize after layout is stable; run
ScrollTrigger.refresh()after images load.
- Initialize after layout is stable; run
Quick recipes
1) Hero entrance (stagger)
gsap.from(".hero [data-anim]", {
y: 24,
autoAlpha: 0,
duration: 0.8,
ease: "power2.out",
stagger: 0.06,
});
2) Sequenced timeline
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
gsap.registerPlugin(ScrollTrigger);
gsap.timeline({
scrollTrigger: {
trigger: ".story",
start: "top top",
end: "+=800",
scrub: 1,
pin: true,
},
}).to(".story .panel", { xPercent: -200 });
What to ask the user (if requirements unclear)
- Is this a static site or SPA (React/Next/Vue)? Any page transitions?
- Do we need scroll-driven sections (pin/scrub/snap)?
- Performance constraints (mobile support, reduced motion)?
相關資源

GSAP AI Skills
SkillGSAP 官方动画技能合集:教 agent 正确使用核心 API、时间轴、ScrollTrigger 与各类插件,涵盖 React/Vue/Svelte 集成和动画性能优化。GreenSock 官方维护,所有插件均免费。
greensock/gsap-skills16.6k
Masked Reveal
Skill用 GSAP ScrollTrigger 让标题与短文案在进入视口时逐词从遮罩下方升起,提供不依赖付费 SplitText 插件的拆词代码、默认时长与错峰、React 清理写法,保留 aria-label 并支持减少动态效果。
MengTo/Skills6.8k
Cobe.js
Skill用轻量 WebGL 库 cobe 在首页或关于页加入可旋转的地球,讲解画布按设备像素比设置尺寸、位置标记、旋转动画、窗口缩放后重建与销毁,可在 React/Next.js 中集成。
MengTo/Skills6.8k
GSAP ScrollTrigger Storytelling
Skill用 GSAP ScrollTrigger 搭建滚动叙事式产品页:固定主画面,随滚动逐步揭示界面状态、功能层与数据视图,区块之间用缩放、遮罩或模糊过渡;要求及时清理触发器、小屏简化编排、不遮挡文字与按钮。
MengTo/Skills6.8k
Lottie Animation
Skill把 After Effects 导出的 Lottie 动画接入网页、iOS、Android 与 React Native:优先用 dotLottie 运行时,控制播放、片段与速度,做滚动或悬停驱动的交互,运行时换色,并附 AE 导出检查清单。
iart-ai/web-animation-skills45
WebGL Components
Skill在产品界面里嵌入小型常驻 WebGL 视觉元素(头像、光球、玻璃与彩虹质感、动态纹理)时的工程要点:全页共享一个 WebGL 上下文、统一帧循环并限帧、控制片元着色器开销、处理上下文丢失、始终提供非 WebGL 的降级样式,以及 React 服务端渲染下的写法。
flornkm/skills114