♻️ Refactor dark mode inline JS to dark.js

This commit is contained in:
James Panther
2022-01-12 10:15:41 +11:00
parent 2043921232
commit 4754607fb5
4 changed files with 58 additions and 27 deletions
+3 -23
View File
@@ -63,29 +63,9 @@
/>
{{ end }}
{{ if eq (.Site.Params.darkMode | default "auto") "auto" }}
<script>
function loadPreferredAppearance() {
if (localStorage.preferredAppearance === "dark" || (!("preferredAppearance" in localStorage) && window.matchMedia("(prefers-color-scheme: dark)").matches)) {
document.documentElement.classList.add("dark");
} else {
document.documentElement.classList.remove("dark");
}
}
function setPreferredAppearance(scheme) {
if (scheme == "default") {
localStorage.removeItem("preferredAppearance");
} else {
localStorage.preferredAppearance = scheme;
}
loadPreferredAppearance();
}
loadPreferredAppearance();
window.matchMedia("(prefers-color-scheme: dark)").addListener(loadPreferredAppearance);
</script>
{{ else }}
<script>
localStorage.removeItem("preferredAppearance");
</script>
{{ $darkJS := resources.Get "js/dark.js" }}
{{ $darkJS := $darkJS | resources.Minify | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $darkJS.RelPermalink }}" integrity="{{ $darkJS.Data.Integrity }}"></script>
{{ end }}
{{/* Icons */}}
{{ if templates.Exists "partials/favicons.html" }}