Pathfinderby Commenda
Foundations

Motion tokens

Durations, curves, and spring presets from The System.

These are tokens and guidance, not an animation engine. No motion runtime or automatic animation is installed.

Durations

TokenCSS variableMilliseconds
instant--pf-duration-instant100
fast--pf-duration-fast150
base--pf-duration-base200
slow--pf-duration-slow300
deliberate--pf-duration-deliberate500

Easing

TokenCSS variableValue
out--pf-easing-outcubic-bezier(0.23, 1, 0.32, 1)
in-out--pf-easing-in-outcubic-bezier(0.77, 0, 0.175, 1)
standard--pf-easing-standardease

Springs

Import spring from @commenda/pathfinder/tokens. Durations in these presets are seconds, and bounce is dimensionless. Use duration/bounce only with engines that support that model; do not treat them as CSS easing curves.

PresetSecondsBounce
snappy0.20
smooth0.30.15
expressive0.40.25

Use snappy for presses and small controls; smooth for sliding and expanding content; expressive only for success. Exits do not bounce. Color hover changes use instant plus standard easing. Closing uses fast plus out. Sheets alone use deliberate with motionRecipe.sheetEasing.

Recipe constants

These constants are available on motionRecipe; they are not independently themeable CSS variables. Offsets and blur values are px; stagger is milliseconds; scales are dimensionless.

ConstantValue
pressScale0.97
smallPressScale0.94
enterScale0.96
exitScale0.98
anchoredOffset4
overlayOffset8
edgeOffset16
textBlur1
iconBlur3
stagger30
staggerLimit5
sheetEasingcubic-bezier(0.32, 0.72, 0, 1)

Input and reduced motion

Keyboard-initiated menus, tabs and toggles change instantly. With reduced motion, replace springs with a 150ms fade using out easing; remove scale, offset and blur. Loading indicators can continue. Hover never translates or scales. Animations follow the current state toward a target so interruptions do not restart from a fixed origin.

Design guidance

Read Design principles for shared usage guidance and motion recipes.

Source: The System. Snapshot: 2026-10-12.

On this page