gsap-web

gsap-web is a skill for Claude Code, Codex from OneWave-AI/open-agent-stack. It costs 56 tokens per session (1,217 once invoked), scanned A, original, MIT.

A set of coding patterns for using GSAP, a JavaScript animation library, in React or Next.js applications. It covers component lifecycles, animation timelines, cleanup, and scroll-based effects.

In plain words
What is it for?
Use it when building animations in component-based web apps, especially reusable page effects, timelines, and animations triggered by scrolling.
Why use it?
It helps prevent animations from running twice, remaining after a component is removed, or breaking when users change routes or page layouts.

Skill for Claude CodeCodex

Part of the vibe-stack plugin — 14 skills, 1 command, 1 agent shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/onewave-ai/open-agent-stack/gsap-web
Any agent
npx skills add OneWave-AI/open-agent-stack --skill gsap-web
Clone the repo
git clone --depth 1 https://github.com/OneWave-AI/open-agent-stack

Made for: Claude Code, Codex.

Or install vibe-stack, the plugin that ships this one along with the rest of its 14 skills, 1 command, 1 agent.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for gsap-web

README.md
[![agentmods](https://agentmods.dev/badge/skills/onewave-ai/open-agent-stack/gsap-web.svg)](https://agentmods.dev/skills/onewave-ai/open-agent-stack/gsap-web)
Your own site
<a href="https://agentmods.dev/skills/onewave-ai/open-agent-stack/gsap-web"><img src="https://agentmods.dev/badge/skills/onewave-ai/open-agent-stack/gsap-web.svg" alt="Measured on agentmods" height="20"></a>
Per session 56 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,217 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00056 $0.01217
Opus 5 $0.00028 $0.00609
Sonnet 5 $0.00011 $0.00243
Haiku 4.5 $0.00006 $0.00122

Measured 4d ago against content hash 5e70e885be1b, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

gsap-web scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/vibe-stack/skills/gsap-web/SKILL.md · 87 lines

How it starts

The opening of the file, as written. The whole thing — 87 lines — stays where its author put it; the contents beside it link to each section on GitHub.

GSAP for Web Apps

GSAP is straightforward until it meets React. Then every animation that worked in a CodePen starts double-firing in Strict Mode, surviving unmount, and pointing at stale DOM after a route change. The library is not the problem -- lifecycle is. These are the patterns that hold up.

Setup

Install gsap and @gsap/react. Register plugins once, at module scope in a client component, never inside render:

'use client'
import gsap from 'gsap'
import { ScrollTrigger } from 'gsap/ScrollTrigger'
import { useGSAP } from '@gsap/react'

gsap.registerPlugin(ScrollTrigger, useGSAP)
gsap.defaults({ duration: 0.28, ease: 'power3.out' })  // from motion-system

In Next.js App Router, anything touching GSAP is a client component. GSAP reads the DOM, so it cannot run during SSR -- a window is not defined build error means the import climbed into a server component.

Workflow

  1. Scope everything. useGSAP with a container ref. It reverts every animation created inside on unmount and handles Strict Mode's double-invoke, which is the source of nearly every "it fires twice" report.

    const container = useRef(null)
    useGSAP(() => {
      gsap.from('.card', { y: 24, opacity: 0, stagger: 0.05 })
    }, { scope: container })
    

    Selector strings inside the callback resolve within the scope, so .card cannot reach into another component's markup.

  2. Timelines, not stacked tweens. Three sequenced tweens with hand-computed delays become unmaintainable the moment one duration changes. One timeline with the position parameter stays readable:

    const tl = gsap.timeline()
    tl.from('.title', { y: 30, opacity: 0 })
      .from('.sub',   { y: 20, opacity: 0 }, '-=0.15')   // overlap
      .from('.cta',   { scale: 0.96, opacity: 0 }, '<')  // with previous
    

    Use labels (tl.addLabel('reveal')) once a timeline passes about five steps.

  3. from vs fromTo. from animates to the element's current CSS, which is fragile when other code or a re-render changes that state -- an interrupted from can leave the element stuck at its start values. For anything that can be interrupted or replayed, use fromTo and state both ends explicitly. Add immediateRender: false when a from inside a timeline flashes its end state on load.

Read the full file on GitHub · 87 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 87 lines · 56 tokens per session scan A 5e70e885be1b

Subscribe to this mod's changes

gsap-web is a skill published in the GitHub repository OneWave-AI/open-agent-stack (2 stars, last pushed 24d ago), licensed MIT. It adds 56 tokens to every session and 1,217 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

storybook

Storybook is the fidelity oracle, not the runtime. The converter bundles the package's compiled dist/ into dsbundle.js - the same bundle the claude.ai/design agent builds with - and generates each preview by compiling the story source module itself (hooks, fixtures, local helpers - the whole closure comes along), with…

asgeirtj/system_prompts_leaks · 0 tokens

design-sync

Push a React design system to claude.ai/design. This runs a converter that bundles the real component code (from Storybook or a bare package) and uploads it. Use when the user runs /design-sync or says "sync my design system to Claude Design".

asgeirtj/system_prompts_leaks · 56 tokens

chrome-ext-ui-react

This skill should be used when building React UI for Chrome extensions or when the user asks about UI patterns in extensions. Trigger when: "React in extension", "extension popup React", "side panel React", "Shadow DOM React", "content script UI", "createShadowRootUi", "extension accessibility", "rem to px extension"…

RadOrigin-LLC/RAD-Claude-Skills · 114 tokens

cs2-modding-ui

The Cities: Skylines II mod UI discipline: the C#-to-JavaScript binding layer and the game's React frontend. Use when a mod needs a panel, button or overlay in the game's UI, when exposing C# state to the frontend or invoking C# from it, when injecting into the game's own component tree, when a UI mod's bundle does…

CitiesSkylinesModding/agents-plugins · 99 tokens

aws-spa-deploy

Use this skill whenever the user is deploying a React/Vite single-page app to AWS, or mentions Amplify, CDK, or wiring up Lambda + API Gateway for a frontend. Covers Amplify hosting, custom domains, CDK backend (Lambda + API Gateway), SES email, CORS configuration, and environment variables. Skip for non-AWS hosts…

ziniman/ai-instruct · 110 tokens

vercel-react-best-practices

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance…

OpenSource03/harnss · 67 tokens