Classic follow-through and overlapping action were pre-drawn sequences, but a drag is live user input with no predetermined in-betweens. So modern UI fakes the same feeling with a real-time spring simulation: every frame, it measures the gap between "target" (the cursor, or the final resting spot) and "current position," and nudges position toward it by a force proportional to that gap.
While dragging, the target is the cursor itself, so the object never snaps exactly onto it — it trails a beat behind, on an elastic lag. The instant the pointer releases, the target switches to the final resting position, but the velocity built up until then doesn't vanish — the object overshoots past the target and springs back, settling with a decaying wobble.
iOS sheets, Trello's card drag, and macOS window snapping all rely on this feeling — not that the numbers land exactly right, but that something was physically grabbed, carried, and let go.
In the demo, a fake cursor grabs the ball and drags it to the right. The ball trails a step behind the cursor the whole time (lag during the drag); the moment the cursor lets go, the ball's own momentum carries it a little further before it springs back and settles (overshoot and settle after release).
When to use
Use it for real drags, swipes, and bottom sheets — anything with a moment the user physically lets go. A single click doesn't need a spring settle; ordinary easing is enough.