summaryrefslogtreecommitdiff
path: root/static/js/theme-switch.js
blob: a617fda2ba7bc4c8789985d28540ab8999c900f8 (plain)
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
27
28
function isAuto() {
  return document.body.classList.contains("auto");
}

function setTheme() {
  if (!isAuto()) {
    return
  }

  document.body.classList.remove("auto");
  let cls = "light";
  if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
    cls = "dark";
  }

  document.body.classList.add(cls);
}

function invertBody() {
  document.body.classList.toggle("dark");
  document.body.classList.toggle("light");
}

if (isAuto()) {
  window.matchMedia('(prefers-color-scheme: dark)').addListener(invertBody);
}

setTheme();