Skip to content
FeedbackGenerated from the public API

MotionIntensityProvider

The provider that scales every motion decision in a subtree, including off.

@luc/ui/motion

Live preview

A scope, not a prop: components read the resolved profile, and reduced motion resolves to `none` in one place.

Resolved intensity: expressive

pointer effects on

<MotionIntensityProvider intensity="expressive" pointer ambient>
  <IntensityReadout />
</MotionIntensityProvider>

Usage

import { MotionIntensityProvider } from "@luc/ui/motion";
<MotionIntensityProvider intensity="expressive" pointer ambient>
  <IntensityReadout />
</MotionIntensityProvider>

API

Exported symbols
ExportKindSignature
MotionIntensityProvider4 documented props({ intensity, pointer, ambient, children, }: MotionIntensityProviderProps) => import("@types/react").JSX.Element
useMotionIntensityexport() => MotionIntensity
useMotionProfileexport() => IntensityProfile & { intensity: MotionIntensity; }
usePointerMotionEnabledexport() => boolean

MotionIntensityProvider props

Type: MotionIntensityProviderProps

Values the compiler reads from the declaration.

MotionIntensityProvider props
PropTypeDefaultNotes
ambient?boolean | undefined—
childrenReactNode—
intensity?MotionIntensity | undefined—
pointer?boolean | undefined—Hard overrides for the two behavioural halves of the profile. Useful when a screen wants expressive motion but no cursor effects (a touch-first page), or the opposite (a static re…

Accessibility

The accessibility contract is the one the primitive underneath the component already honours — the platform element for a control, or the ARIA pattern the component implements — and the Showcase's own pages are scanned for violations with axe.

What happens on the server, and when hydration changes it.

Luc UI v1.0MotionIntensityProviderdark theme