gpu acceleration
This commit is contained in:
@@ -26,11 +26,11 @@
|
||||
|
||||
// Set initial theme
|
||||
const initialTheme = savedTheme || (prefersDark ? THEMES.DARK : THEMES.LIGHT);
|
||||
document.documentElement.setAttribute('data-theme', initialTheme);
|
||||
setTheme(initialTheme);
|
||||
} catch (error) {
|
||||
console.warn('Early theme initialization error:', error);
|
||||
// Fallback to light theme
|
||||
document.documentElement.setAttribute('data-theme', DEFAULT_THEME);
|
||||
setTheme(DEFAULT_THEME);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,12 +58,17 @@
|
||||
return document.documentElement.getAttribute('data-theme') || DEFAULT_THEME;
|
||||
}
|
||||
|
||||
function setTheme(theme) {
|
||||
document.documentElement.setAttribute('data-theme', theme);
|
||||
document.body.dataset.theme = theme; // Add theme to body for better SSR support
|
||||
}
|
||||
|
||||
function toggleTheme() {
|
||||
try {
|
||||
const currentTheme = getCurrentTheme();
|
||||
const newTheme = currentTheme === THEMES.DARK ? THEMES.LIGHT : THEMES.DARK;
|
||||
|
||||
document.documentElement.setAttribute('data-theme', newTheme);
|
||||
setTheme(newTheme);
|
||||
localStorage.setItem(THEME_STORAGE_KEY, newTheme);
|
||||
updateThemeIcon(newTheme);
|
||||
} catch (error) {
|
||||
@@ -89,7 +94,7 @@
|
||||
// Only update theme if user hasn't set a preference
|
||||
if (!localStorage.getItem(THEME_STORAGE_KEY)) {
|
||||
const newTheme = e.matches ? THEMES.DARK : THEMES.LIGHT;
|
||||
document.documentElement.setAttribute('data-theme', newTheme);
|
||||
setTheme(newTheme);
|
||||
updateThemeIcon(newTheme);
|
||||
}
|
||||
} catch (error) {
|
||||
@@ -101,6 +106,7 @@
|
||||
try {
|
||||
const currentTheme = getCurrentTheme();
|
||||
localStorage.setItem(THEME_STORAGE_KEY, currentTheme);
|
||||
document.body.dataset.theme = currentTheme; // Ensure theme is set on body before unload
|
||||
} catch (error) {
|
||||
console.warn('Theme persistence error:', error);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user