SVG — Animation Timelines & Libraries

Libraries like GSAP shine at orchestration: timelines, staggers, and scrubbing that are painful to hand-roll. This is a vanilla timeline player demonstrating the feature you're really paying for.

a staggered timeline (play & scrub)

0%
90ms
what a library gives you (GSAP)
const tl = gsap.timeline();
tl.from('.bar', {
  scaleY: 0,
  transformOrigin: 'bottom',
  opacity: 0,
  duration: 0.5,
  ease: 'back.out(1.7)',
  stagger: 0.09,        // ← the killer feature
});
// tl.pause(); tl.seek(0.5); tl.reverse();  ← free scrubbing & control

The scrubber above drives a hand-written timeline. Re-implementing seek/reverse/stagger/eases robustly is exactly the work GSAP/anime/Motion save you.

which tool when

ToolBest atReach for it when
CSS / WAAPIsimple state transitions, hovers, loadersone-shot motion, no orchestration, smallest footprint
SMILself-contained portable icon animationanimation must travel inside the .svg file
GSAPcomplex timelines, scrub, MorphSVG, MotionPathsequenced, interactive, production motion
anime.jslightweight timelines & staggersGSAP-like ergonomics, smaller bundle
Motionspring physics, React/component motiondeclarative component animation, gestures

Rule of thumb: CSS/SMIL until you need a timeline (sequencing, stagger, scrub, reverse) — then a library earns its bytes.