15 lines
753 B
JavaScript
15 lines
753 B
JavaScript
(function () {
|
|
var allowed = { light: true, dark: true, system: true };
|
|
var cookieMatch = document.cookie.match(/(?:^|; )hpc-theme=([^;]+)/);
|
|
var cookieValue = cookieMatch ? decodeURIComponent(cookieMatch[1]) : null;
|
|
var stored = null;
|
|
try { stored = localStorage.getItem("hpc.theme.preference"); } catch (_) {}
|
|
var preference = allowed[cookieValue] ? cookieValue : (allowed[stored] ? stored : "system");
|
|
var dark = window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
var resolved = preference === "system" ? (dark ? "dark" : "light") : preference;
|
|
var root = document.documentElement;
|
|
root.dataset.themePreference = preference;
|
|
root.dataset.theme = resolved;
|
|
root.style.colorScheme = resolved;
|
|
})();
|