darkmode.js (1099B)
1 // Toggle Theme function
2 function toggleTheme(set_mode = null) {
3 // Set Mode and switch toggle icon
4 if (set_mode === 0) {
5 document.querySelector("body").classList = ["list"];
6 document.querySelector("#darkmodetoggle").style="display:inherit;";
7 document.querySelector("#lightmodetoggle").style="display:none;";
8 } else {
9 document.querySelector("body").classList = ["list dark"];
10 document.querySelector("#darkmodetoggle").style="display:none;";
11 document.querySelector("#lightmodetoggle").style="display:inherit;";
12 }
13 // Mark mode in session storage
14 sessionStorage.setItem("dark-mode", set_mode);
15 }
16 // On Load: set dark mode if necessary
17 function initialTheme() {
18 if (
19 // Case 1: Dark Mode is preferred and no cookie is set
20 (window.matchMedia('(prefers-color-scheme: dark)').matches &&
21 sessionStorage.getItem("dark-mode") === null) ||
22 // Case 2: Dark Mode is set via session Storage
23 sessionStorage.getItem("dark-mode") == 1
24 ) {
25 toggleTheme(set_mode = 1);
26 } else {
27 toggleTheme(set_mode = 0);
28 }
29 }