hexo-theme-kratos-rebirth
Version:
A lovely yet modern theme for Hexo.
2 lines (1 loc) • 1.13 kB
JavaScript
(()=>{(()=>{let d="user-color-scheme",m=(e,t)=>{try{localStorage.setItem(e,t)}catch(r){}},u=e=>{try{localStorage.removeItem(e)}catch(t){}},a=e=>{try{return localStorage.getItem(e)}catch(t){return null}},n=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",s={dark:!0,light:!0},c=e=>{let t=document.getElementById("theme-dark-css"),r=e||a(d),i=n();switch(document.documentElement.setAttribute("data-theme",r||i),(!s[r]||r===i)&&(u(d),r=null),r){case"dark":t.setAttribute("media","all"),t.removeAttribute("disabled");break;case"light":t.setAttribute("disabled","disabled");break;default:t.setAttribute("media","(prefers-color-scheme: dark)"),t.removeAttribute("disabled");break}},l={dark:"light",light:"dark"},g=()=>{let e=a(d);return s[e]?e=l[e]:e=l[n()],m(d,e),e};c();let o=()=>{document.removeEventListener("DOMContentLoaded",o,!1),window.removeEventListener("load",o,!1),document.getElementById("theme-toggle").addEventListener("click",()=>{c(g())})};document.readyState==="complete"?setTimeout(o):(document.addEventListener("DOMContentLoaded",o,!1),window.addEventListener("load",o,!1))})();})();