Skip to Content
DocsCloud UI HooksuseReducedMotion

useReducedMotion

Detect if user prefers reduced motion.

Import

import { useReducedMotion } from '@tidbcloud/uikit'

Usage

useReducedMotion detects if user prefers to reduce motion using the (prefers-reduced-motion: reduce) media query.

import { useReducedMotion } from '@tidbcloud/uikit' import { Transition } from '@tidbcloud/uikit' function Demo() { const reduceMotion = useReducedMotion() return ( <Transition mounted={true} transition={reduceMotion ? 'fade' : 'slide-up'} duration={reduceMotion ? 0 : 200}> {(styles) => <div style={styles}>Content</div>} </Transition> ) }

API

The hook relies on window.matchMedia() API and will return false if the API is not available (for example, during server-side rendering), unless the initial value is provided.

import { useReducedMotion } from '@tidbcloud/uikit' // Provide initial value for SSR const reduceMotion = useReducedMotion(true)

Definition

interface UseMediaQueryOptions { getInitialValueInEffect: boolean } function useReducedMotion(initialValue?: boolean, options?: UseMediaQueryOptions): boolean
Last updated on