~cytrogen/masto-fe

ref: bc69d48652e431b06a1fff2c3fd0a67b54d23f81 masto-fe/app/javascript/flavours/glitch/utils/accessibility.js -rw-r--r-- 770 bytes
bc69d486 — Cytrogen Cherry-pick PR #104: Reduced motion accessibility 14 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import ready from "../ready";

ready(() => {
  setReducedMotionBodyClass();
});

export function setMediaQueryBodyClass(query, className) {
  if (query.matches) {
    document.body.classList.add(className.true);
    document.body.classList.remove(className.false);
  } else {
    document.body.classList.add(className.false);
    document.body.classList.remove(className.true);
  }
}

export function setReducedMotionBodyClass() {
  const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)");
  const className = {
    true: "reduce-motion",
    false: "no-reduce-motion",
  };

  setMediaQueryBodyClass(prefersReducedMotion, className);
  prefersReducedMotion.addEventListener("change", () => setReducedMotionBodyClass(prefersReducedMotion));
}