UNPKG

@magica11y/prefers-reduced-motion

Version:

Detects user’s preferences for reduced motion using the 'prefers-reduce-motion' CSS3 level 5 media query.

34 lines (25 loc) 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _matchUserPreference = _interopRequireDefault(require("@magica11y/match-user-preference")); var _motionPreferences = _interopRequireDefault(require("./motionPreferences")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const motionPreferenceValues = [_motionPreferences.default.NO_PREFERENCE, _motionPreferences.default.REDUCE]; /** * Detects user’s preferences for reduced motion * using CSS3 Media Queries level 5 specification for `'prefers-reduce-motion'`. * * @returns Either 'no-preference', 'reduce' or `null` * @see https://drafts.csswg.org/mediaqueries-5/#prefers-reduced-motion */ const prefersReducedMotion = () => { const matchedMotionPreference = motionPreferenceValues.find(motionPreferenceValue => (0, _matchUserPreference.default)('prefers-reduced-motion', motionPreferenceValue)); if (matchedMotionPreference) { return matchedMotionPreference; } return null; }; var _default = prefersReducedMotion; exports.default = _default;