Traditional CSS and digital motion tools have historically relied on cubic-bezier timing functions such as ease-in, ease-out, and ease-in-out. A bezier curve maps progress (from 0.0 to 1.0) along a fixed time duration. While this works adequately for passive banner advertisements or static page fades, it breaks down fundamentally in touch-first mobile interfaces.
The fatal flaw of cubic-bezier curves is interruptibility. If a user taps a drawer open (a 350ms bezier transition) and immediately flicks it down at 150ms, a bezier curve cannot smoothly transfer the fingertip momentum. Instead, it must either finish the forward animation, abruptly jump backward, or restart with zero initial velocity—resulting in a jarring visual stutter that feels robotic and unpolished.
Spring animations solve this by replacing fixed-duration interpolation with harmonic physics equations: F = -kx - cv. Springs have no predetermined duration; their settling time is a natural emergent consequence of physical mass, spring tension (stiffness), friction (damping), and the incoming gesture velocity.
When an interaction is interrupted midway, the spring maintains its current velocity and applies opposing tension toward the new target position, creating the organic, tactile fluidity that defines iOS and modern design engineering.