@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
JavaScript
;
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;