36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
(function () {
|
|
var root = document.documentElement;
|
|
var storedMode = localStorage.getItem('neon-mode') || 'dark';
|
|
var storedAccent = localStorage.getItem('neon-accent') || 'green';
|
|
var modeButton = document.querySelector('[data-mode-toggle]');
|
|
|
|
function applyMode(mode) {
|
|
root.dataset.mode = mode;
|
|
localStorage.setItem('neon-mode', mode);
|
|
if (modeButton) {
|
|
modeButton.textContent = mode === 'light' ? 'Dark' : 'Light';
|
|
modeButton.setAttribute('aria-label', mode === 'light' ? 'Use dark mode' : 'Use light mode');
|
|
}
|
|
}
|
|
|
|
function applyAccent(accent) {
|
|
root.dataset.accent = accent;
|
|
localStorage.setItem('neon-accent', accent);
|
|
}
|
|
|
|
applyMode(storedMode);
|
|
applyAccent(storedAccent);
|
|
|
|
if (modeButton) {
|
|
modeButton.addEventListener('click', function () {
|
|
applyMode(root.dataset.mode === 'light' ? 'dark' : 'light');
|
|
});
|
|
}
|
|
|
|
document.querySelectorAll('[data-accent]').forEach(function (button) {
|
|
button.addEventListener('click', function () {
|
|
applyAccent(button.dataset.accent || 'green');
|
|
});
|
|
});
|
|
}());
|