Skip to content

Instantly share code, notes, and snippets.

@luukverhoeven
Created July 19, 2019 21:13
Show Gist options
  • Save luukverhoeven/0df7f464c0dd4da7ace0b1bad997df57 to your computer and use it in GitHub Desktop.
Save luukverhoeven/0df7f464c0dd4da7ace0b1bad997df57 to your computer and use it in GitHub Desktop.
window.addEventListener('load', () => {
document.body.classList.remove('preload')
});
(function () {
window.__onThemeChange = function () {};
function setTheme(newTheme) {
window.__theme = newTheme;
preferredTheme = newTheme;
newTheme == 'dark' ? document.body.setAttribute('data-dark', true) : document.body.removeAttribute('data-dark')
window.__onThemeChange(newTheme);
}
var preferredTheme;
try {
preferredTheme = localStorage.getItem('theme');
} catch (err) {}
window.__setPreferredTheme = function (newTheme) {
setTheme(newTheme);
try {
localStorage.setItem('theme', newTheme);
} catch (err) {}
}
var darkQuery = window.matchMedia('(prefers-color-scheme: dark)');
darkQuery.addListener(function (e) {
window.__setPreferredTheme(e.matches ? 'dark' : 'light')
});
setTheme(preferredTheme || (darkQuery.matches ? 'dark' : 'light'));
})();
document.getElementById('themeToggle').onclick = () => {
window.__setPreferredTheme(
window.__theme == 'light' ? 'dark' : 'light'
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment