mirror of
https://github.com/CaiJimmy/hugo-theme-stack.git
synced 2025-04-29 03:53:30 +08:00
29 lines
812 B
TypeScript
29 lines
812 B
TypeScript
export default () => {
|
|
const toggleDarkMode = document.getElementById('dark-mode-toggle');
|
|
const darkModeKey = 'StackDarkMode';
|
|
const darkModeEnabled = localStorage.getItem(darkModeKey) === 'true';
|
|
|
|
let darkMode = false;
|
|
|
|
if (darkModeEnabled) {
|
|
darkMode = true;
|
|
}
|
|
else {
|
|
darkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true;
|
|
}
|
|
|
|
document.body.style.setProperty('transition', 'background-color .3s ease');
|
|
|
|
toggleDarkMode.addEventListener('click', (e) => {
|
|
darkMode = !darkMode;
|
|
|
|
if (darkMode) {
|
|
document.body.classList.add('theme-dark');
|
|
}
|
|
else {
|
|
document.body.classList.remove('theme-dark');
|
|
}
|
|
|
|
localStorage.setItem(darkModeKey, darkMode.toString());
|
|
})
|
|
} |