Files
site-portfolio/public/js/modules/shared/media.js
T

18 lines
645 B
JavaScript

export function prefersReducedMotion() {
return typeof window.matchMedia === "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches;
}
export function prefersColorSchemeDark() {
return typeof window.matchMedia === "function" && window.matchMedia("(prefers-color-scheme: dark)").matches;
}
export function subscribePrefersColorSchemeChange(handler) {
const mq = window.matchMedia?.("(prefers-color-scheme: dark)");
if (!mq) return;
if (typeof mq.addEventListener === "function") {
mq.addEventListener("change", handler);
} else if (typeof mq.addListener === "function") {
mq.addListener(handler);
}
}