Core · The staging ground for motion — currently all clear

Motion lab

Where motion earns its place: behaviours stage here, get worked with in real use, then promote into the system or get retired. The June 2026 brainstorm — twenty effects — has been fully evaluated: 26 behaviours are core, two were decided against, and nothing is pending. The lab stands ready for the next batch.

Nothing under evaluation

  Every staged behaviour has shipped or been retired. New candidates stage here before they touch the system.

See the motion system
01

Where everything lives now

The lab's forwarding addresses — every evaluated behaviour has a home on a real surface, demonstrated in context rather than in a rig.

BehaviourHomeIn context
Card lift + phantom-hover guard/pagesReview cards in the Reviews mock; shared-surface cards on Components.
3D tilt + cursor-follow glow/The system-pulse hero on the Overview — one hero per view.
Route transitions/Global — every navigation in this app rides the panel handover.
Command palette/Global — ⌘K anywhere; navigation + motion pace commands.
Shared surface morph/components#surface-morphCards grow into detail surfaces; helpers in $lib/motion/morph.
Snap-into-place reorder/components#snap-reorderReorderable widgets; createSnapDrag in $lib/motion/snap.
Loading states (skeleton · cascade · roll)/components#loadingSkeletons crossfade to cards; numbers roll after.
AI generation motion/components#aiBorder sweep, text shimmer, pulsing caret, label morph.
Completion celebration/components#celebrationCheckDraw — the approved/published/completed moment.
Ambient empty state/components#statesThe empty state breathes; the watch-dot pings.
Animated counters + meter inertia/objects#metricThe workload metric rolls in and fills with sheen (also on Pages).
Icon micro-motions/elements#buttonsHover previews every glyph’s move; events play it in full.
Press dips, selection slides/elements#buttonsButtons press; the ink seg’s black thumb glides Table ↔ Cards.
Drawer with parallax/dialogs#drawerThe page concedes the space — two honest layers.
Spatial depth/dialogs#spatialOpt-in 2% recede behind high-stakes confirms.
Row reordering (FLIP)/motionCore since V1 — the list settle demo lives on the Motion page.
02

Decided against

The no is as documented as the yes. These were built, evaluated in real use, and retired — they can be revisited, but they re-enter through the lab like anything else.

BehaviourWhy it was retiredDate
Magnetic buttonThe shell drifting toward the pointer read as pursuit, not polish. The press already answers the hand; the pull added motion without information.2026-06-12
Blanket press coverageScaling facets, tabs, nav items and option fills on press muddied the grammar and broke fills out of their frames. Settled rule: PRESS DIPS (actions — buttons, cards), SELECTION SLIDES (choosing — the marker moves). Choosing is never a press.2026-06-12

How the next batch works. A candidate behaviour gets a registry entry with stage: 'lab' and a usage contract, a test rig on this page, and a version bump. It earns core — or this table — through real use. The calm budget never moves: 80% stable · 15% smooth feedback · 5% delight.