window.addEventListener('DOMContentLoaded', () => { const storageTheme = window.localStorage?.getItem('theme'); const preferesDark = window.matchMedia('(prefers-color-scheme: dark)').matches; let isDark = preferesDark; const hid = document.querySelector('#hid'); const html = document.querySelector('html'); const aside = document.querySelector('#side-bar'); const sidenotes = document.querySelector('.sidenotes'); const harr = document.querySelector('#harr'); if (storageTheme === 'dark' || storageTheme === 'light') { const theme = storageTheme; isDark = storageTheme === 'dark'; hid.classList.add(theme); html.classList.add(theme); aside.classList.add(theme); sidenotes.classList.add(theme); harr.classList.add(theme); for (const article of document.querySelectorAll('article')) { article.classList.add(theme); } } function toogleTheme() { const arg = isDark ? ['dark', 'light'] : ['light', 'dark']; const theme = arg[1]; if (!hid.classList.replace(...arg)) { hid.classList.add(theme); } if (!html.classList.replace(...arg)) { html.classList.add(theme); } if (!aside.classList.replace(...arg)) { aside.classList.add(theme); } if (!sidenotes.classList.replace(...arg)) { sidenotes.classList.add(theme); } if (!harr.classList.replace(...arg)) { harr.classList.add(theme); } for (const article of document.querySelectorAll('article')) { if (!article.classList.replace(...arg)) { article.classList.add(theme); } } isDark = !isDark; if (window.localStorage) { window.localStorage.setItem('theme', isDark ? 'dark' : 'light'); } } const sun = document.querySelector('.sun'); const moon = document.querySelector('.moon'); sun.addEventListener('click', toogleTheme); moon.addEventListener('click', toogleTheme); if (isDark) { hid.classList.add('dark'); } else { hid.classList.add('light'); } });