init the wordpress theme

This commit is contained in:
2026-02-05 20:19:55 +08:00
parent 19ccba2e5a
commit 2ceb3cc86a
18 changed files with 1536 additions and 2 deletions
+35
View File
@@ -0,0 +1,35 @@
const themeToggle = document.querySelector('.theme-toggle');
const html = document.documentElement;
function getPreferredTheme() {
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
return savedTheme;
}
const systemPreference = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
return systemPreference;
}
function setTheme(theme) {
html.setAttribute('data-theme', theme);
localStorage.setItem('theme', theme);
}
const initialTheme = getPreferredTheme();
setTheme(initialTheme);
if (themeToggle) {
themeToggle.addEventListener('click', () => {
const currentTheme = html.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
setTheme(newTheme);
});
}
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (e) => {
if (!localStorage.getItem('theme')) {
const newTheme = e.matches ? 'dark' : 'light';
setTheme(newTheme);
}
});