webbed-site/theme.js
2024-12-23 13:29:18 -06:00

20 lines
No EOL
689 B
JavaScript

window.addEventListener('load', function() {
var prefersDarkScheme = window.matchMedia !== undefined && window.matchMedia("(prefers-color-scheme: dark)").matches;
var DEFAULT_THEME = prefersDarkScheme ? 'moon' : 'peach';
var THEMES = ["moon", "peach", "sakura", "honey"];
function setTheme(theme) {
if (THEMES.indexOf(theme) < 0) theme = DEFAULT_THEME;
document.getElementById('switcher-id').href = '/themes/' + theme + '.css';
localStorage.setItem('style', theme);
}
setTheme(localStorage.getItem('style'));
const switches = document.getElementsByClassName('switch');
for (const el of switches) {
el.addEventListener('click', () => {
setTheme(el.dataset.theme);
});
};
})