Gestures

Same curve, same duration — the release still felt different. Frame timing explained it.

The rebuilt carousel used the same easing curve and duration as the reference, yet releasing a drag felt slightly more abrupt.

Log from inside the page

I timestamped the pointerup event and the track position on every animation frame, in both versions. Once the snap started, the curves agreed within a few percent. The difference was the start: the reference held the released position for roughly 50ms before easing.

The smallest correct fix

A 50ms delay on the snap tween after pointer release only. Dragging stays 1:1, keyboard navigation stays immediate, and the release now matches.

Start a project