21 lines
829 B
JavaScript
21 lines
829 B
JavaScript
function applyTheme(theme) {
|
|
document.documentElement.setAttribute('data-theme', theme);
|
|
document.documentElement.setAttribute('data-bs-theme', theme);
|
|
}
|
|
|
|
function setSiteTheme(theme) {
|
|
localStorage.setItem('theme', theme);
|
|
applyTheme(theme);
|
|
document.querySelectorAll('[data-theme-option]').forEach((btn) => {
|
|
btn.classList.toggle('active', btn.getAttribute('data-theme-option') === theme);
|
|
});
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const currentTheme = localStorage.getItem('theme') || 'dark';
|
|
document.querySelectorAll('[data-theme-option]').forEach((btn) => {
|
|
btn.classList.toggle('active', btn.getAttribute('data-theme-option') === currentTheme);
|
|
btn.addEventListener('click', () => setSiteTheme(btn.getAttribute('data-theme-option')));
|
|
});
|
|
});
|