mirror of
https://github.com/TomHodson/tomhodson.github.com.git
synced 2025-06-26 10:01:18 +02:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
// run the night mode toggle
|
|
const STORAGE_KEY = "user-color-scheme";
|
|
const COLOR_MODE_KEY = "--color-mode";
|
|
|
|
const getCSSCustomProp = (propKey) => {
|
|
let response = getComputedStyle(document.documentElement).getPropertyValue(
|
|
propKey
|
|
);
|
|
|
|
if (response.length) {
|
|
response = response.replace(/\"/g, "").trim();
|
|
}
|
|
|
|
return response;
|
|
};
|
|
|
|
const applySetting = () => {
|
|
let currentSetting =
|
|
localStorage.getItem(STORAGE_KEY) || getCSSCustomProp(COLOR_MODE_KEY);
|
|
|
|
if (currentSetting) {
|
|
document.documentElement.setAttribute(
|
|
"data-user-color-scheme",
|
|
currentSetting
|
|
);
|
|
}
|
|
console.log(
|
|
`Mode Preference set on document.documentElement.getAttribute("data-user-color-scheme"): ${currentSetting}`
|
|
);
|
|
};
|
|
|
|
let localStorageSetting = localStorage.getItem(STORAGE_KEY);
|
|
let defaultValue = getCSSCustomProp(COLOR_MODE_KEY);
|
|
|
|
if (localStorageSetting) {
|
|
console.log(
|
|
`Night mode setting found in localStorage: ${localStorageSetting}`
|
|
);
|
|
} else {
|
|
console.log(
|
|
`Night mode setting not found in localStorage. Set to value from css --color-mode key: ${defaultValue}`
|
|
);
|
|
}
|
|
|
|
applySetting();
|