gsap-scrolltrigger-storytelling — Claude Code skill: scroll-driven
A skill for scroll-driven product storytelling: pinned scenes, progressive UI reveals and transitions between sections, built on GSAP ScrollTrigger.
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a claude-codeWhat gsap-scrolltrigger-storytelling does
The skill gives the agent a frame for scroll choreography. Each scroll segment reveals a new product state: a feature layer, a data view, a workflow step. Copy, panels, screenshots and background move as one authored sequence instead of a pile of separate animations.
Inside are concrete implementation notes. The main narrative runs on GSAP timelines with scrub, while plain tweens stay for entrance and hover motion. Long story sections get pin: true and explicit timeline labels so scenes are easy to tune. Animate transform and opacity rather than layout-affecting properties, and use will-change sparingly. In React components the skill calls for gsap.context() with cleanup on unmount, otherwise ScrollTriggers keep running after the component is gone. Refresh ScrollTrigger once images, fonts or async content load, since section height and pinned offsets shift.
A tuning section covers pin duration, scrub feel, reveal density and transition intensity. For narrow screens it points to matchMedia() or equivalent breakpoints so desktop choreography simplifies. The avoid list is just as useful: no animations on every scroll tick without a story beat, no pinned sections that trap the reader, no effects that cut text contrast or cover CTAs. Worth checking your scenes against that list before shipping.
What it helps with
- build a product scroll story from pinned sections
- sync copy, panels and background into one sequence
- reveal UI elements progressively as the user scrolls
- smooth the handoff between two scenes
- simplify desktop choreography for narrow screens
Example prompts for the agent
- build a landing page with a scroll-driven product story using GSAP ScrollTrigger
- pin the product UI section and reveal panels step by step on scroll
- add a smooth handoff between scenes and check text readability
How to install gsap-scrolltrigger-storytelling
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a claude-code2Manually: put the files in place
~/.claude/skills/gsap-scrolltrigger-storytelling/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gsap-scrolltrigger-storytelling/
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a codex2Manually: put the files in place
.agents/skills/gsap-scrolltrigger-storytelling/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a cursor2Manually: put the files in place
.cursor/skills/gsap-scrolltrigger-storytelling/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install MengTo/Skills gsap-scrolltrigger-storytelling2Manually: put the files in place
.github/skills/gsap-scrolltrigger-storytelling/SKILL.md1Skills CLI (Vercel)
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a gemini-cli2Platform CLI
gemini skills install https://github.com/MengTo/Skills --path agent-skills/web-design/gsap-scrolltrigger-storytellingManually: put the files in place
.devin/skills/gsap-scrolltrigger-storytelling/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about gsap-scrolltrigger-storytelling
How do I install gsap-scrolltrigger-storytelling in Claude?
Run npx skills add MengTo/Skills --skill gsap-scrolltrigger-storytelling -a claude-code. The skill file lands at ~/.claude/skills/gsap-scrolltrigger-storytelling/SKILL.md.
What does gsap-scrolltrigger-storytelling do?
It guides the agent through building a scroll narrative with GSAP ScrollTrigger: pinned scenes, progressive interface reveals, scroll-synced animation and section transitions.
What should I watch out for with pinned sections?
The skill says to refresh ScrollTrigger after images, fonts or async content load, and in React to clean up gsap.context() on unmount so triggers do not stay alive.
Source text
SKILL.md · MIT
--- name: gsap-scrolltrigger-storytelling description: "Build cinematic sticky product storytelling with GSAP ScrollTrigger, progressive UI reveals, scroll-synced animation, smooth interpolation, and immersive section transitions." --- # GSAP ScrollTrigger Storytelling Skill ## Use When - Build cinematic sticky product storytelling with GSAP ScrollTrigger, progressive UI reveals, scroll-synced animation, smooth interpolation, and immersive section transitions. ## Workflow ## Scope - Apply this when the page should feel like a scroll-driven product story rather than a static marketing layout. - Use GSAP ScrollTrigger as the main choreography layer for sticky sections, progressive interface reveals, pinned scenes, scrubbed timelines, and immersive transitions between sections. - Preserve the actual product narrative and interface clarity. The motion should amplify comprehension, not hide basic content behind theatrical effects. ## Experience target - Create sticky product storytelling where each scroll segment reveals a new product state, feature layer, data view, device frame, or workflow step. - Use scroll-synced animation so copy, UI panels, screenshots, overlays, and background atmosphere move together as one authored sequence. - Build progressive UI reveals: draw in frames, fade in controls, slide panels into place, count values up, highlight regions, and swap states as the user advances. - Keep the overall mood cinematic, premium, and immersive with controlled pacing, clean staging, depth, and transitions that feel intentional. ## Implementation guidance - Use GSAP timelines with ScrollTrigger `scrub` for the main scroll narrative and regular tweens only for supporting entrance or hover motion. - Pin long-form story sections with `pin: true` and map each scene to explicit timeline labels so the sequence is easy to tune. - Prefer transform and opacity animation over layout-affecting properties. Use `will-change` sparingly on animated elements that actually need it. - Use `gsap.context()` in React components and clean it up on unmount so ScrollTriggers are killed correctly. - Refresh ScrollTrigger after images, fonts, or async content load if those assets affect section height or pinned offsets. - Use `matchMedia()` or equivalent breakpoints so desktop sticky choreography can simplify gracefully on smaller screens. ## Motion patterns - Sticky product frame: keep the main artifact pinned while the surrounding narrative updates in measured steps. - Layer reveal: bring labels, overlays, panels, and product states in one at a time with short offsets and a shared easing language. - Section handoff: let the current scene scale, mask, blur, or translate into the next section instead of ending abruptly. - Smooth interpolation: use scrub smoothing, quickSetter/quickTo, or lerped values for pointer-following and scroll-reactive details. - Cinematic depth: use foreground/background parallax, subtle camera moves, dimming layers, masks, and focus shifts without overwhelming readability. ## Tuning knobs - Pin duration: extend for dense product stories, shorten when the scene has only one or two state changes. - Scrub feel: use direct scrub for precise technical walkthroughs and eased scrub for a more cinematic product film feel. - Reveal density: add more micro-reveals for complex UI, reduce them for narrative sections where copy needs to carry the moment. - Transition intensity: keep high-impact transitions reserved for section handoffs, not every small content change. ## Avoid - Triggering unrelated animations on every scroll tick without a clear story beat. - Using sticky/pinned sections that trap the reader for too long or make the page feel broken. - Animating width, height, top, left, or layout-heavy properties during scrubbed scenes when transforms can do the job. - Letting cinematic effects reduce text contrast, cover CTAs, or obscure the product UI the section is meant to explain. - Leaving ScrollTriggers alive after component unmounts or route changes.
© MengTo · MIT · MengTo/Skills