New to Claude Skills? Learn how to install them →

nexu-io on GitHub

GSAP Timeline

Free

Streamline your animation sequences with GSAP timelines.

Get this skill

Free · Opens the source repo

What GSAP Timeline does

The GSAP Timeline skill provides a structured approach to managing complex animations using the GSAP animation library. By utilizing the gsap.timeline() method, developers can create multi-step animations that coordinate multiple tweens either in sequence or parallel. This skill is particularly useful when working on projects that require precise timing and control over animation sequences, such as web applications, interactive graphics, or multimedia presentations.

With this skill, users can easily define the order and timing of animations through the position parameter, which allows for absolute or relative placement of tweens. This means that you can specify when each animation should start, whether it be at a specific time, after another animation, or even at designated labels within the timeline. This level of control helps create smooth transitions and dynamic user experiences.

The skill also supports nesting timelines, enabling developers to create complex animations that are both manageable and readable. By adding child timelines to a master timeline, users can organize their animations hierarchically, making it easier to maintain and modify them as needed. Additionally, the ability to set defaults for all child tweens ensures consistency across animations, reducing the need for repetitive code.

Overall, the GSAP Timeline skill is designed for developers and designers who need to implement sophisticated animation sequences efficiently. It is an essential tool for anyone looking to enhance their projects with advanced animation techniques using GSAP.

When to use it

Use this skill when you need to coordinate multiple animations in a precise order or when working with keyframe-style animations in GSAP.

When not to use it

Avoid this skill for simple animations that do not require sequencing or when using libraries that do not support timelines.

What you can build with it

Coordinating Multiple Animations

When building a web application with multiple interactive elements, use GSAP Timeline to ensure animations play in the correct order.

Creating Complex Visual Effects

For projects requiring intricate animations, such as presentations or multimedia content, GSAP Timeline allows for organized sequencing.

Maintaining Animation Readability

Use GSAP Timeline to structure your animations with labels and nested timelines, making it easier to understand and modify.

How to install GSAP Timeline

View source

1. Install with the skills CLI

npx skills add nexu-io/open-design/gsap-timeline --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by nexu-io

GSAP Timeline

Curated from GreenSock's official GSAP skills: https://github.com/greensock/gsap-skills

When to Use This Skill

Apply when building multi-step animations, coordinating several tweens in sequence or parallel, or when the user asks about timelines, sequencing, or keyframe-style animation in GSAP.

Related skills: For single tweens and eases use gsap-core; for scroll-driven timelines use gsap-scrolltrigger; for React use gsap-react.

Creating a Timeline

const tl = gsap.timeline();
tl.to(".a", { x: 100, duration: 1 })
  .to(".b", { y: 50, duration: 0.5 })
  .to(".c", { opacity: 0, duration: 0.3 });

By default, tweens are appended one after another. Use the position parameter to place tweens at specific times or relative to other tweens.

Position Parameter

Third argument (or position property in vars) controls placement:

  • Absolute: 1 — start at 1 second.
  • Relative (default): "+=0.5" — 0.5s after end; "-=0.2" — 0.2s before end.
  • Label: "labelName" — at that label; "labelName+=0.3" — 0.3s after label.
  • Placement: "<" — start when recently-added animation starts; ">" — start when recently-added animation ends (default); "<0.2" — 0.2s after recently-added animation start.

Examples:

tl.to(".a", { x: 100 }, 0);           // at 0
tl.to(".b", { y: 50 }, "+=0.5");      // 0.5s after last end
tl.to(".c", { opacity: 0 }, "<");     // same start as previous
tl.to(".d", { scale: 2 }, "<0.2");    // 0.2s after previous start

Timeline Defaults

Pass defaults into the timeline so all child tweens inherit:

const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }); // both use 0.5s and power2.out

Timeline Options (constructor)

  • paused: true — create paused; call .play() to start.
  • repeat, yoyo — same as tweens; apply to whole timeline.
  • onComplete, onStart, onUpdate — timeline-level callbacks.
  • defaults — vars merged into every child tween.

Labels

Add and use labels for readable, maintainable sequencing:

tl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.to(".b", { opacity: 0 }, "outro");
tl.play("outro");  // start from "outro"
tl.tweenFromTo("intro", "outro"); // pauses the timeline and returns a new Tween that animates the timeline's playhead from intro to outro with no ease.

Nesting Timelines

Timelines can contain other timelines.

const master = gsap.timeline();
const child = gsap.timeline();
child.to(".a", { x: 100 }).to(".b", { y: 50 });
master.add(child, 0);
master.to(".c", { opacity: 0 }, "+=0.2");

Controlling Playback

  • tl.play() / tl.pause()
  • tl.reverse() / tl.progress(1) then tl.reverse()
  • tl.restart() — from start.
  • tl.time(2) — seek to 2 seconds.
  • tl.progress(0.5) — seek to 50%.
  • tl.kill() — kill timeline and (by default) its children.

Official GSAP Best practices

  • ✅ Prefer timelines for sequencing
  • ✅ Use the position parameter (third argument) to place tweens at specific times or relative to labels.
  • ✅ Add labels with addLabel() for readable, maintainable sequencing.
  • ✅ Pass defaults into the timeline constructor so child tweens inherit duration, ease, etc.
  • ✅ Put ScrollTrigger on the timeline (or top-level tween), not on tweens inside a timeline.

Do Not

  • ❌ Chain animations with delay when a timeline can sequence them; prefer gsap.timeline() and the position parameter for multi-step animation.
  • ❌ Forget to pass defaults (e.g. defaults: { duration: 0.5, ease: "power2.out" }) when many child tweens share the same duration or ease.
  • ❌ Forget that duration on the timeline constructor is not the same as tween duration; timeline “duration” is determined by its children.
  • ❌ Nest animations that contain a ScrollTrigger; ScrollTriggers should only be on top-level Tweens/Timelines.

Frequently asked questions about GSAP Timeline

Similar skills