Compare · Motion · GSAP-style
jsKjs vs GSAP
Motion gives you the GSAP-style API for everyday UI animation — tweens, transforms, easing, stagger, timelines — in a fraction of the size. GSAP remains the tool for animation-heavy work, and it is now free.
Choose jsKjs when…
- Your motion is UI feedback: entrances, hovers, toasts, modals, staggered lists, small sequences.
- You want it in the same 8.1 KB file as your DOM, requests and state.
Choose GSAP when…
- You need ScrollTrigger, Flip, Draggable, SplitText, MorphSVG or any other plugin (GSAP and all its plugins are free since Webflow's 2025 change).
- You need playback control: pause, reverse, seek, progress, timeScale, repeat and yoyo.
- You animate colours, SVG attributes, 3D transforms or hundreds of concurrent tweens.
Feature by feature
Compared with GSAP 3.15.0. ✓ works the same · ◐ supported with differences · ✗ not included.
| GSAP | jsKjs | Notes |
|---|---|---|
| gsap.to / from / fromTo | ✓ Yes | $.to / $.from / $.fromTo — return Promises. |
| x, y, rotation/rotate, scale, scaleX, scaleY, skewX, skewY | ✓ Yes | Composed into one transform per frame. |
| xPercent, yPercent, z, rotationX/Y, transformOrigin | ✗ No | Set transform-origin in CSS. |
| Numeric CSS properties (opacity, width, margin…) | ✓ Yes | Tweens from the computed value; keep units consistent. |
| Colours, SVG attributes, CSS variables | ✗ No | |
| duration (s), delay, onComplete | ✓ Yes | |
| onStart, onUpdate, onRepeat, callbacks with params | ✗ No | |
| Eases | ◐ Partial | 10 built-in (power2 family, back.out, elastic.out, bounce.out, CSS-style) + any function. |
| stagger (number) | ✓ Yes | |
| stagger object (each, amount, from, grid) | ✗ No | Sort the collection or compute per-element delays. |
| gsap.timeline with sequencing, "<" and "+=N" | ✓ Yes | $.timeline with defaults, paused, play(), onComplete, .add(fn). |
| Labels, absolute positions, "-=N", nesting | ✗ No | |
| repeat, yoyo, repeatDelay | ✗ No | |
| pause, resume, reverse, seek, progress, timeScale, kill | ✗ No | |
| gsap.set, quickTo, utils, matchMedia | ✗ No | Use .css() for set. |
| Overwrite management | ✗ No | Competing tweens on the same property are not cancelled automatically. |
| Plugins (ScrollTrigger, Flip, Draggable, SplitText, MorphSVG, MotionPath, Observer…) | ✗ No |
Same intro, renamed
JavaScript
// GSAP
gsap.timeline({ defaults: { duration: .5 } }).from('.hero h1', { y: 30 }).from('.hero p', { y: 30 }, '<');
// jsKjs
$.timeline({ duration: .5 }).from('.hero h1', { y: 30 }).from('.hero p', { y: 30 }, '<');