Fixing light theme selector so it can be stored and remember after page refresh

This commit is contained in:
Rafael Foster
2026-04-28 22:07:08 -03:00
parent 5062e1e61f
commit 7174bd6560
4 changed files with 24 additions and 10 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ data/
*.swp
*.swo
.codex
AGENTS.md
# Claude Code — share skills/agents/rules/hooks/settings; keep local permissions and worktrees out
.claude/settings.local.json
+2
View File
@@ -48,6 +48,8 @@
document.documentElement.setAttribute('data-theme', 'dark');
} else if (stored === 'light') {
document.documentElement.setAttribute('data-theme', 'light');
} else {
document.documentElement.removeAttribute('data-theme');
}
// System/null: tokens.css @media (prefers-color-scheme: dark) übernimmt
})();
+1 -9
View File
@@ -1788,15 +1788,7 @@ function currentTheme() {
}
function applyTheme(value) {
localStorage.setItem('oikos-theme', value);
if (value === 'dark') {
document.documentElement.setAttribute('data-theme', 'dark');
} else if (value === 'light') {
document.documentElement.setAttribute('data-theme', 'light');
} else {
document.documentElement.removeAttribute('data-theme');
// tokens.css @media (prefers-color-scheme: dark) übernimmt sofort
}
window.oikos?.applyTheme(value);
}
function showError(el, msg) {
+20
View File
@@ -1199,6 +1199,16 @@ if (/iPhone|iPad|iPod/.test(navigator.userAgent)) {
// --------------------------------------------------------
(async () => {
try {
// Vorab-Theme-Anwendung ohne Abhängigkeit von window.oikos
const stored = localStorage.getItem('oikos-theme');
if (stored === 'dark') {
document.documentElement.setAttribute('data-theme', 'dark');
} else if (stored === 'light') {
document.documentElement.setAttribute('data-theme', 'light');
} else {
document.documentElement.removeAttribute('data-theme');
}
await initI18n();
navigate(location.pathname, false);
} catch (err) {
@@ -1214,6 +1224,16 @@ window.oikos = {
navigate,
showToast,
setThemeColor,
applyTheme: (value) => {
localStorage.setItem('oikos-theme', value);
if (value === 'dark') {
document.documentElement.setAttribute('data-theme', 'dark');
} else if (value === 'light') {
document.documentElement.setAttribute('data-theme', 'light');
} else {
document.documentElement.removeAttribute('data-theme');
}
},
restoreThemeColor: () => {
const route = ROUTES.find((r) => r.path === currentPath);
updateThemeColorForRoute(route);