circ
circ is a GSAP easing family (`circ.in`, `circ.out`, `circ.inOut`) whose curve traces a quarter circle, so the motion is nearly flat through the middle and bends hard at one or both ends. That gives it a sharper, more sudden ramp than `sine`, which follows a gentler quarter sine wave.
Updated July 1, 2026
How circ works
The three variants sample a unit circle. circ.out follows sqrt(1 - (t - 1)^2), circ.in follows 1 - sqrt(1 - t^2), and circ.inOut stitches the two halves together. Because the curve is a quarter circle, its slope is close to vertical right at the fast end, which is why the ramp reads as sudden rather than gradual.
circ.out launches with almost the full speed already spent in the first frames, then flattens into a long, slow settle. It's close in feel to expo.out, but the tail is even flatter, so the element looks like it decelerates into a near-stop before it actually lands. circ.in is the mirror: it creeps, then rips away at the end, useful for exits that should feel like the element gets yanked off screen.
The sharpest eases are the ones to cut for reduced motion
circ's hard ramp is exactly the kind of sudden movement that can trigger vestibular discomfort, and reduced-motion is now the most-adopted user preference query, up from 34% of sites in 2022 to over 50% of mobile sites in 2024 (HTTP Archive Web Almanac 2024, Accessibility). Gate the animation behind gsap.matchMedia() with a (prefers-reduced-motion: reduce) query and drop to duration: 0 or a plain fade for those users.Use circ for
- Circular or radial reveals (an expanding clip-path circle, a mask growing from a point) where the ease and the geometry are both arcs
- Entrances that should feel like they snap most of the way in, then coast to rest (
circ.out) - Exits that build slowly and then accelerate off screen (
circ.in) - Scale pops and image reveals where you want a firmer, less springy arrival than
back.out
Use something else when
- You want the standard responsive UI feel,
expo.outis the safer default and lands slightly softer - The motion should feel gentle and organic,
sine.inOutbends far less at the ends - You need a bit of overshoot at the end,
back.out(1.7)overshoots and settles - Continuous loops (marquee, spinner), use
none(linear), an ease makes a loop pulse
circ.inOut can feel too abrupt
circ.inOut makes the start and end both hard, which reads as jerky on longer UI moves. For a symmetric in-out that stays smooth, reach for power2.inOut or sine.inOut first, and keep circ.inOut for short, punchy transitions.Where circ fits in Annnimate components
Both of these components expose a data-anm-ease control, so you can drop circ.out in without touching the source. circ is a natural swap in each for the reasons below.
- Mask Reveal grows a circle or shape mask across the section on scroll. Setting the ease to
circ.outmatches the ease curve to the mask geometry, the arc opens fast and eases into full coverage instead of creeping the whole way - Popping Text scales characters in with a bounce by default. Swap the ease to
circ.outwhen you want the characters to snap into place with a firmer arrival and no overshoot, a cleaner read for corporate or editorial headlines
See it running in production
Common questions
- What's the difference between circ and expo easing?
- They're close cousins. Both
circ.outandexpo.outstart fast and decelerate hard, butcircis derived from a circle arc andexpofrom an exponential curve. In practicecirc.outhas an even flatter tail, so the element looks like it stops just before it lands. For most UI,expo.outis the go-to default, reach forcirc.outwhen you specifically want that near-stop settle or a radial reveal. - Is circ.out good for entrances?
- Yes. Like every
.outease, the slowest part ofcirc.outis at the end, which is the landing, so it's the right pick for something arriving on screen. Usecirc.inonly for exits, where you want the element to build speed and shoot away. - Why does circ feel more sudden than sine?
- Because the curves bend by different amounts.
sinefollows a quarter sine wave, which is a soft, gradual arc.circfollows a quarter circle, which curls much harder near its fast end, so the acceleration (or deceleration) is packed into a shorter slice of the duration. Same 'ease out' idea, sharper delivery. - Do I need a plugin to use circ?
- No.
circ.in,circ.out, andcirc.inOutship in the GSAP core, same aspower,sine,expo, andback. No registration, no import beyondgsapitself. As of GSAP 3.15 the whole library and every plugin is free, so there's nothing gated here either.
