From 8d067c913558253613f84f763d0898ac289d4917 Mon Sep 17 00:00:00 2001 From: madrilene Date: Sun, 4 Feb 2024 08:56:53 +0100 Subject: [PATCH] inline theme toggle --- src/_includes/theme-toggle-inline.js | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/_includes/theme-toggle-inline.js diff --git a/src/_includes/theme-toggle-inline.js b/src/_includes/theme-toggle-inline.js new file mode 100644 index 0000000..3e73915 --- /dev/null +++ b/src/_includes/theme-toggle-inline.js @@ -0,0 +1 @@ +(()=>{var r="theme-preference",l="{{ meta.themeSwitch.light }}",o="{{ meta.themeSwitch.dark }}",h=()=>{e.value=e.value==="light"?"dark":"light",document.querySelector("[theme-toggle]").querySelector("span").innerHTML=e.value==="light"?l:o,n()},i=()=>localStorage.getItem(r)?localStorage.getItem(r):window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",n=()=>{localStorage.setItem(r,e.value),c()},c=()=>{document.firstElementChild.setAttribute("data-theme",e.value)},e={value:i()};c();window.onload=()=>{let t=document.querySelector("[theme-toggle]"),a=document.querySelector("[data-theme-switcher]");a&&(a.removeAttribute("hidden"),c(),t.addEventListener("click",h),t.querySelector("span").innerHTML=e.value==="light"?l:o)};window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",({matches:t})=>{e.value=t?"dark":"light",n()});})();