@magica11y/prefers-contrast
Version:
Detects user’s preferences for contrast using the 'prefers-contrast' CSS3 level 5 media query.
33 lines (24 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _matchUserPreference = _interopRequireDefault(require("@magica11y/match-user-preference"));
var _contrastPreferences = _interopRequireDefault(require("./contrastPreferences"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const contrastPreferenceValues = [_contrastPreferences.default.NO_PREFERENCE, _contrastPreferences.default.MORE, _contrastPreferences.default.LESS, _contrastPreferences.default.CUSTOM];
/**
* Detects user’s preferences for contrast
* using CSS3 Media Queries level 5 specification for `'prefers-contrast'`.
*
* @returns Either 'no-preference', 'more', 'less' or `null`
* @see https://drafts.csswg.org/mediaqueries-5/#prefers-contrast
*/
const prefersContrast = () => {
const matchedContrastPreference = contrastPreferenceValues.find(contrastPreferenceValue => (0, _matchUserPreference.default)('prefers-contrast', contrastPreferenceValue));
if (matchedContrastPreference) {
return matchedContrastPreference;
}
return null;
};
var _default = exports.default = prefersContrast;