Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

prefers-mode

vidbase11MIT0.0.4-alpha-03TypeScript support: included

Detect & listen to preferences for prefers-color-scheme, prefers-reduced-motion, and prefers-contrast.

prefers-color-scheme, prefers-reduced-motion, prefers-contrast, prefers, dark mode, light mode, reduced motion, motion sickness, high contrast

readme

prefers-mode

A React library for detecting css media query system preferences: prefers-color-scheme, prefers-reduced-motion, & prefers-contrast.

Usage

# Next.js example
import usePrefersMode, { SCHEME_PREFS, MOTION_PREFS, CONTRAST_PREFS } from 'prefers-mode'

const IndexPage = (props) => {
    const prefs = usePrefersMode()

    const cls = [
        prefs.colorScheme === SCHEME_PREFS.DARK ? 'dark-mode' : 'light-mode',
        prefs.reducedMotion === MOTION_PREFS.REDUCE ? 'reduced-motion' : 'motion',
        prefs.contrast === CONTRAST_PREFS.MORE ? 'high-contrast' : 'normal-contrast'
    ].join(' ')

    return <div className={cls}>Hello</div>
}

export default IndexPage

See example for a more detailed working Next.js example.