Skip to content

Motion

Motion gallery

Every kinetic primitive in @luc/ui, grouped by what it is for. Each entry names the public API, and every one of them is driven by the same intensity profile and the same reduced-motion contract.

Signature motion

Spatial

Depth, geometry and continuity: one public export per capability family, all with live controls.

Signature

Distinctive, reusable interactions with their own pages and live controls.

Pointer

Cursor-reactive depth and light. Inert on touch devices and under reduced motion.

Feedback

Answers to something the user did, or to something the product is doing.

Entrance

Content arriving with intent: once, in reading order, and never on a timer.

One grammar, one switch

Every primitive above reads the same resolved profile, so loudness is scoped rather than hard-coded.

One grammarMotionIntensityProvider

A component reads the resolved profile (`pointer`, `ambient`, `travel`, `glow`, `depth`) and nothing else. A dense table toolbar scopes itself to `functional`, a hero pushes to `showcase`, and reduced motion resolves every level to `none` — once, in one place.

Luc UI v1.0Motion gallerydark theme