All effect components use this hook internally with a reducedMotion prop defaulting to 'auto'. You only need this hook directly when building custom animated components.
Features
- Detects prefers-reduced-motion: reduce media query
- Detects low-end devices (≤2 CPU cores or ≤2GB memory)
- Reactive — updates when the user changes their system setting
- Override support: force animations on or off regardless of detection
- SSR-safe — returns safe defaults on the server
Basic usage
Override
Return value
API reference
Hardware detection
- navigator.hardwareConcurrency — number of CPU cores (≤2 = low-end)
- navigator.deviceMemory — device memory in GB (≤2 = low-end, Chrome/Edge only)