Rapid triggers should coalesce or skip, not queue
Aliases: motion coalescing · animation queue · queued bursts
What it is
If eight displacements from a burst of taps play in a queue, people watch intermediate pages they have already abandoned flash by in order. On rapid triggers, motion must merge onto the latest target or skip the in-betweens, not run a first-in-first-out cinema programme. A queue performs every historical intent. That is not “the new intent cannot enter”; the intent entered, and then sat behind old clips.
Why it happens
Each trigger play()s a new animation, which queues by default. Burst-tapping tabs, a stepper, or back, and queue length equals surplus intents. Visually: the destination is already item 5, but 2, 3 and 4 must still make their entrance. The target moves inside the queue, hit regions chase stale coordinates, miss rate rises.
Coalescing means: when a new trigger arrives, the clip in flight takes its current progress as origin and re-interpolates to the latest end; stale ends are never drawn. Skipping means: cut to the latest end state. Both revoke performance rights from historical intents. Springs are especially bad here, because each queued item still carries velocity and a merge beats the phases against each other — one more reason high-frequency controls should not overshoot, but even without overshoot the queue itself is already wrong.
Where it stops holding
- Scenes that are a record of process (visualising an undo stack, playing back a timeline) are exceptions; that motion is the history.
- If two triggers are farther apart than settling time, there is no queue; treat them as two independent transitions.
- Merging to latest must still land on a legal state; fields from two end states must not be blended into a third document.
Applying it
- On a new trigger for the same property on the same object, cancel the in-flight clip and retarget to the latest end, or
finish()to latest. - Do not put navigation on a global animation queue; navigation keeps only the current destination route.
- Check: tap a stepper or eight tabs in a burst. If the screen walks through the six in-betweens, it is programming a cinema; only the last landing should be seen.
Related
- Same group: F7.11.1 The next action must not wait for unfinished motion · F7.11.2 Interrupted motion still needs a coherent mid-state · F7.11.4 Forced motion feels slow in high-frequency use
- Nearby: F7.03.3 Spring curves do not suit frequently triggered motion · F7.10.1 Stacked motion lengthens total wait
- Search terms:
coalesce animations·animation queue·latest-wins