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/patternsMotion recipe for interactive cards; pattern reference lists card compositions.
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/motionCards grow into detail surfaces; helpers in $lib/motion/morph.
Snap-into-place reorder/motionReorderable widgets; createSnapDrag in $lib/motion/snap.
Loading states (skeleton · cascade · roll)/elementsSkeleton + CountUp elements; consumer apps assemble crossfade + cascade locally.
AI generation motion/motionBorder sweep, text shimmer, pulsing caret, label morph — behavior recipe.
Completion celebration/elementsCheckDraw element — the approved/published/completed moment.
Ambient empty state/motionThe empty-state breathe/watch-dot ping — behavior recipe on consumer-composed empty states.
Animated counters + meter inertia/elementsMeter + CountUp elements; consumer apps compose the metric surface locally.
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/elementsDrawer element (overlay category); page-concede behavior recipe is in the motion module.
Spatial depth/elementsDialog element (overlay category); opt-in 2% recede is a behavior recipe.
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.