Skip to content

Commit 05cfd50

Browse files
committed
Refactor theme handling in header to simplify logic and improve performance
1 parent b84fddf commit 05cfd50

1 file changed

Lines changed: 13 additions & 25 deletions

File tree

_includes/header.html

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -21,49 +21,37 @@
2121
</div>
2222

2323
<script type="text/javascript">
24-
const theme = localStorage.getItem('theme');
25-
26-
if (theme === "light") {
27-
document.documentElement.setAttribute('data-theme', 'light');
28-
} else {
29-
document.documentElement.setAttribute('data-theme', 'dark');
30-
}
31-
const userPrefers = getComputedStyle(document.documentElement).getPropertyValue('content');
24+
// Get theme from localStorage, default to dark if not set
25+
const theme = localStorage.getItem('theme') || 'dark';
3226

3327
function activateDarkTheme() {
34-
document.getElementById('theme-toggle').checked = true;
3528
document.documentElement.setAttribute('data-theme', 'dark');
3629
document.documentElement.classList.add('theme--dark');
3730
document.documentElement.classList.remove('theme--light');
38-
document.getElementById("theme-toggle").className = 'light';
39-
window.localStorage.setItem('theme', 'dark');
31+
window.localStorage.setItem('theme', 'dark');
4032
}
4133

4234
function activateLightTheme() {
43-
document.getElementById('theme-toggle').checked = false;
4435
document.documentElement.setAttribute('data-theme', 'light');
4536
document.documentElement.classList.add('theme--light');
4637
document.documentElement.classList.remove('theme--dark');
47-
document.getElementById("theme-toggle").className = 'dark';
48-
window.localStorage.setItem('theme', 'light');
38+
window.localStorage.setItem('theme', 'light');
4939
}
5040

51-
if (theme === "dark") {
52-
activateDarkTheme();
53-
} else if (theme === "light") {
41+
// Apply theme immediately to prevent flash
42+
if (theme === "light") {
5443
activateLightTheme();
55-
} else if (userPrefers === "light") {
56-
activateDarkTheme();
5744
} else {
45+
// Default to dark theme
5846
activateDarkTheme();
5947
}
6048

6149
function modeSwitcher() {
62-
let currentMode = document.documentElement.getAttribute('data-theme');
63-
if (currentMode === "dark") {
64-
activateLightTheme();
65-
} else {
66-
activateDarkTheme();
67-
}
50+
let currentMode = document.documentElement.getAttribute('data-theme');
51+
if (currentMode === "dark") {
52+
activateLightTheme();
53+
} else {
54+
activateDarkTheme();
55+
}
6856
}
6957
</script>

0 commit comments

Comments
 (0)