F7.11.2Coherent mid-state on canceldesign

Interrupted motion still needs a coherent mid-state

Aliases: cancel mid-state · leftover translucency · layout after cancel

What it is

If a cancel leaves the page half-transparent, two layers stacked, or buttons untappable, interrupting is worse than playing out, because the mid-state has no interface contract. Interruptible is not only “input can enter”; the cancel landing has to be a legal state: jump to the end or roll back to the start. An interpolation frame must not be left behind as a product state.

Why it happens

In-between frames are for rendering, not for the domain model. At 40% interpolated, the route may already be B while pixels sit between A and B and neither side has a complete hit map. If cancel is only stop() with no commit or rollback, the user faces a third page that was never designed: mask present, content incomplete, back stack disagreeing with what is seen.

There are usually only two honest landings. Accept the navigation: snap (or a very short fade) to B’s complete layout. Reject it: restore A’s complete layout and tear down B’s half-built layer. A back gesture that scrubs the in-betweens with the finger is legal because on release it must attract to A or B, never rest at 40%.

Where it stops holding

  • A shared element cancelled at 40% may briefly have both surfaces unusable; restore the source list item before tearing down detail, or a hole flashes.
  • Under reduced motion there are fewer in-between frames, so landing is lighter, but a cut cancel still has to keep stack and focus truthful.
  • Performative motion in a game may stop on any frame; that is a content timeline, not an interface state machine.

Applying it

  • For every interruptible transition, define commit versus rollback on cancel: past a release threshold, go to the end state; otherwise return to the start.
  • Do not write the current interpolated opacity or translation into persistent layout.
  • Check: cancel at 30%, 50% and 80%, then inspect back stack, focus and hit targets. Double-tappable layers or nothing tappable means the mid-state has no contract.

Related

  • Same group: F7.11.1 The next action must not wait for unfinished motion · F7.11.3 Rapid triggers should coalesce or skip, not queue · F7.11.4 Forced motion feels slow in high-frequency use
  • Nearby: G4.01 Back stack and back semantics · F7.04.3 When a shared element cannot map, fall back to an ordinary transition
  • Search terms: animation cancel · interactive pop · settled state

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/F7.11.2