Motion

Large things land and stop, the keyboard is never behind, and only small direct feedback bounces. Each motion has a time and a curve in the tokens.

The curves

Six curves drawn from the tokens: Arrive 300 ms, a fast rise that ends flat; Leave 200 ms, a slow start that ends fast; Fade 200 ms; Fade fast 150 ms; Hover 80 ms, a straight line; and Spring 350 ms, which overshoots and settles.
The curve of each, drawn from its token.
MotionTimeCurveUse
Arrive300 ms0.05, 0.7, 0.1, 1.0A panel growing
Arrive, small250 ms0.05, 0.7, 0.1, 1.0A field growing, rows moving to new places
Leave200 ms0.3, 0.0, 0.8, 0.15A panel closing
Fade200 ms0.34, 0.8, 0.34, 1.0Content fading in after its surface starts moving
Fade, fast150 ms0.31, 0.94, 0.34, 1.0Content changing with the selection, rows leaving a filter
Hover80 msLinearWashes in and out
Spring350 ms0.42, 1.67, 0.21, 0.9Small direct feedback only: a switch knob, a pressed button returning

The rest are timings for small things, each a token too.

MotionTimeCurveUse
Scroll200 ms0, 0, 0, 1A mouse-wheel step
Press120 ms0.215, 0.61, 0.355, 1.0A Slab, the transport ring or a slider's knob pressed and returning
Tone140 msLinearA fill or a knob changing colour
Reveal110 msLinearA slider's knob appearing and going
Dismiss100 msLinearA menu going
Follow120 msLinearContent following its panel: the wait before it fades in, and the time it fades out
Sweep1400 ms0.455, 0.03, 0.515, 0.955One pass of the stretch along a line while the end is not known
Notice6000 msLinearHow long a notice stays; it waits while the pointer is on it or the keyboard is in it
Confirm wait4000 msLinearHow long an action that asks waits for the second press before it goes back to its words
Bar stays900 msLinearHow long the scroll bar stays after the view stops

Sweep is the only endless motion: the page header's reading line and an endless progress.

Large things land and stop

Arrive decelerates hard and ends still. A panel reaches nearly all its width early and then settles, so it looks finished when it is. A curve that overshoots makes a large surface look finished and still moving, so it is not used on panels or lists.

Leave is faster than Arrive. Closing is a decision already made; 200 ms against 300.

The content follows

A panel's content travels with its edge and fades in (Fade, 200 ms) 120 ms after the panel starts to open (Follow), so it does not appear on a surface that has not arrived. When the selection changes, the panel's content changes with Fade, fast. When a filter removes rows, the rows that leave fade first (150 ms), then the rows that stay move up (Arrive, small, 250 ms).

The keyboard is never behind

A selection that follows a held arrow key jumps to the next row and keeps up with the key. It does not glide, because a glide that lags the key is a lie about where the keyboard is.

Hover and spring

Hover is 80 ms and linear: a wash in, a wash out. Spring is the one overshooting curve, for the small, direct thing a person just touched: a switch knob, a button that was pressed and returns. A pressed Slab scales to 0.97 over Press.

Reduced motion

Every duration goes through one function, Kit.ms(), so Kit.reducedMotion makes all of them 0 ms together. Accessibility says how it is set.

Experimental, in Tacit.Kit 0.1.