The honest part
Where the columns break
For most of the catalogue, the four worlds line up neatly. Linear, Quad,
Cubic, Quart, Quint, Sine, Expo, and Circ all map cleanly across GSAP,
Penner, and Webflow — and even CSS can approximate them with a
cubic-bezier(). If that were the whole story, you wouldn’t need
GSAP.
The story is the asymmetry. Back, Elastic, Bounce, RoughEase,
CustomWiggle, and Steps are where the columns stop lining up. A single
cubic-bezier() can overshoot once — control-point y-values above 1
produce a Back-style ease (e.g. cubic-bezier(0.34, 1.56, 0.64, 1),
used in Material Design and Webflow’s “Bounce Past”) — but it
cannot oscillate or produce multiple bounces. So Elastic and Bounce are
the real breaks: classic CSS simply can’t do an elastic snap or a multi-bounce
landing, and neither can Webflow’s classic interactions for the configurable,
plugin-based eases. (Modern CSS linear() finally cracks this open by
approximating any curve as many tiny segments, but it’s an approximation you
have to generate, not a keyword you reach for.)
One honest caveat about Webflow, because it matters in practice:
Webflow’s classic IX2 interactions and the newer GSAP-powered
Interactions can coexist on a site, but they do not mix within a single
interaction. Classic Interactions give you the fixed Penner dropdown;
the newer “Interactions with GSAP” bundle custom easing, bounce,
wiggle, and an ease visualizer. You can use both across a project, but any one
interaction is built in one system or the other — you can’t drive an IX2
timeline with a GSAP custom ease.