Back to scenario guides
Scenario guide 07

Turn a vague motion brief into a spec

“More polished” and “has weight” give direction. A buildable spec turns that feeling into observable change.

A line such as “make it feel more natural” can start a conversation; it cannot be a delivery standard. A buildable motion spec translates feeling into object, state, trigger, space, time, interruptibility, and low-motion rules so design judgment can be shared by implementation, testing, and later iteration.

Make this decision first

Clarify when people see the change, what result they need to understand, and whether the motion can be interrupted.

Implementation path

  1. 01

    Name the before and after states

    Replace abstract adjectives with visible states such as draft, publishing, and published.

  2. 02

    Choose space and speed

    State where the object starts, where it settles, how far it travels, and whether the curve needs a slight rebound.

  3. 03

    Add failure and reduced-motion paths

    Include failure, undo, and reduced-motion behaviour in the same specification.

Turn adjectives into observable events

Words such as polished, weighty, and smooth describe feeling without describing what happens in an interface. The first step of a spec is to ask for observable events: who triggers the change, which object changes, what people can see before and after, and how long the result needs to be understood. “A card arrives with an action and gradually stops” can become a card entering near its trigger, arriving quickly, decelerating near the end, and retaining a clear boundary and title. The team then discusses states and rhythm instead of private interpretations of aesthetic words.

Naming before and after states also reveals missing information. A publish button commonly has at least Draft, Publishing, Published, and Publish failed; a request that says only “play a success animation after click” misses waiting, failure, and repeat activation. Once states sit in a table, each row has visible copy, allowed actions, accessibility announcement, and visual cue. The spec becomes a compact behavior contract: engineering can build a state machine from it and testing can write assertions from it.

“Make it feel natural” passes through object, state, space, and time questions to become a buildable spec.Make itnaturalFeeling wordWhich objectCard, button,recordWhich statesBefore,after,failureMotion specSpace, time,low motion
Diagram 1: from feeling words to observable events“Make it feel natural” passes through object, state, space, and time questions to become a buildable spec.

Write the state graph before key beats

A state graph answers which transitions are allowed; a beat plan answers what becomes visible when. Keeping them separate prevents a common failure: a lovely timeline that cannot handle a second click, a slow network, or a failed request. Draw legal transitions first, such as Draft to Publishing to Published, with Publishing also able to move to Failed. Then write key beats for each transition: at 0ms lock the button and acknowledge input, at 80ms show processing, and after the server returns switch the final state. Beats describe perceptible nodes rather than documenting every frame.

The number of beats should increase with information complexity, not decorative ambition. Save confirmation may need only Pressed, Saving, and Saved; an approval request needs the approver queue because people must understand whom the system is awaiting. For several elements, state who changes first, who follows, and who stays still. Stillness is often an important design choice: it gives an anchor against which a new row, result number, or status label can be compared. A good spec explicitly names what should remain still.

Describe feeling through space and time

A spatial spec includes origin, destination, distance, and hierarchy. Origin tells people why change occurs here; destination tells them where the result belongs; distance determines whether motion steals attention; hierarchy decides whether content overlays, pushes, or sits beside other content. Replace “slide in from the left” with “enter the result region beneath the active filter, travel no more than 16px, and keep the result count in place.” Engineering can then choose transform, inserting a row, or replacing existing content, while design can judge whether the action still follows interface structure.

A time spec needs both duration and relationships. A lone value such as 240ms says how long one change lasts, while saying nothing about whether a button and status label synchronize, whether a list appears after the result settles, or whether failure interrupts processing. “Button feedback: 120ms; status copy appears after 80ms; success switches when the request completes; follow-up record delays 60ms” is clearer. Add the job of the curve: ease-out supports a definite arrival, while spring supports continuous input or interruptible objects. Curve names are implementation choices; people perceive arrival, pause, and continuity.

A state graph shows draft, publishing, published, and failed; a beat plan shows input acknowledgement, processing, and result timing.0msRequest completeFailureDraftEditablePublishingPreventrepeatsPublishedResultsettledPublishfailedKeep retry
Diagram 2: state graph and beat plan have distinct jobsA state graph shows draft, publishing, published, and failed; a beat plan shows input acknowledgement, processing, and result timing.

Put interruption, failure, and low motion in the same spec

Motion specs often end at the success path, forcing edge cases to be improvised after launch. Every in-progress state should answer: What happens on another click? On leaving the page? On timeout? When returned data is stale? For cancelable work, the visual state should return to a clear starting point; for noncancelable work, button and copy should explain what is completing. A failure state must retain the original input or recoverable context so people do not see failure and lose their previous work at the same time.

Low-motion rules also belong in state definitions. “Reduce motion” is too vague; state which signals remain, which travel shortens, which loops stop, and how focus is managed. In a publishing flow, the low-motion version still retains button state, publishing result, and record insertion while removing travel along a path and decorative rotation. Put that rule on every key transition so it never becomes a last-minute patch. It also clarifies the default path because the team must state what every animation actually communicates.

Make the spec an asset for handoff and testing

A handoff-ready spec lets someone who missed the conversation reproduce the judgment. Start with scenario, audience, and success criteria; give state graph, beats, spatial relationships, and parameter ranges in the middle; close with failure, undo, low-motion behavior, and review methods. A static diagram or interactive prototype helps communication, yet an image cannot replace words: tests need to know when to assert, engineering needs to know when data updates, and content design needs to know how copy changes. Text, diagram, and code fragment together create a traceable decision.

Acceptance statements should be observable. Instead of “feel smooth,” write: “Within 120ms of Publish, show an in-progress state; when complete, button, status marker, and timeline record become Published in the same state update; low-motion mode uses no decorative travel over 1px; on failure, title, body copy, and retry remain.” Such standards preserve room for design judgment while giving automation and human review the same facts. The spec then feeds the content library: every verified scenario can become a future Product Moment.

Scenario, states, space and time, failure and low motion, and review form a handoff-ready motion spec.Scenario andgoalWhy change isneededStates andbeatsAllowedtransitionsSpace andtimeOrigin,distance,relationFailure andlow motionInterrupt andrecoverReviewObservableassertions
Diagram 3: parts of a handoff-ready specScenario, states, space and time, failure and low motion, and review form a handoff-ready motion spec.

Motion-spec handoff checklist

  • State scenario, audience, and result to understandLet motion serve the task before discussing visual character.
  • List before/after states and legal transitionsInclude waiting, failure, undo, and repeat input.
  • Write key beats and synchronizationState who changes first, who stays still, and when data updates.
  • Mark origin, destination, distance, and hierarchyMake spatial relationships map directly to implementation.
  • Provide low-motion rules and observable acceptanceAnyone can verify the result after handoff.

Case: turn “the card arrives and gradually stops” into a spec

When filtered results appear, the product wants the new card to feel introduced without stealing attention from the result count.

Trigger: filter value changes after input settles
States: previous results → updating → filtered results
Space: new cards enter from the result region, translateY(12px) maximum
Beats: 0ms update count; 40ms reveal first visible row; 60ms stagger only the next two rows
Curve: cubic-bezier(.23, 1, .32, 1)
Reduced motion: update count and rows in place; no travel; preserve live-region announcement

The spec turns “gradually stops” into a 12px cap, named curve, limited three-row beat plan, and in-place low-motion path. The result count stays fixed, giving people a stable anchor throughout.