Fix theme toggle on phone
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
<span class="nav-icons-divider"></span>
|
<span class="nav-icons-divider"></span>
|
||||||
<div class="nav-link" id="dark-theme-toggle">
|
<div class="nav-link dark-theme-toggle">
|
||||||
<a>
|
<a>
|
||||||
<span id="theme-toggle-icon" data-feather="moon"></span>
|
<span id="theme-toggle-icon" data-feather="moon"></span>
|
||||||
</a>
|
</a>
|
||||||
@@ -44,8 +44,8 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<li class="nav-item">
|
<li class="nav-item dark-theme-toggle">
|
||||||
<a id="dark-theme-toggle">
|
<a>
|
||||||
<span id="theme-toggle-icon" data-feather="moon"></span>
|
<span id="theme-toggle-icon" data-feather="moon"></span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ html {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
background-color: rgb(var(--dark-bg-color));
|
background-color: rgba(var(--dark-bg-color), 0.95);
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav-hamburger-list {
|
.nav-hamburger-list {
|
||||||
|
|||||||
@@ -14,15 +14,16 @@ function ready() {
|
|||||||
|
|
||||||
const savedTheme = localStorage.getItem(THEME_PREF_STORAGE_KEY) ||
|
const savedTheme = localStorage.getItem(THEME_PREF_STORAGE_KEY) ||
|
||||||
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark': 'light');
|
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark': 'light');
|
||||||
setTheme(savedTheme);
|
const darkThemeToggles = document.querySelectorAll('.dark-theme-toggle');
|
||||||
document.getElementById('dark-theme-toggle').addEventListener('click', () => {
|
setTheme(savedTheme, darkThemeToggles);
|
||||||
toggleIcon = document.querySelector("#dark-theme-toggle a svg.feather");
|
darkThemeToggles.forEach(el => el.addEventListener('click', (event) => {
|
||||||
|
toggleIcon = event.currentTarget.querySelector("a svg.feather");
|
||||||
if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.dark) {
|
if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.dark) {
|
||||||
setTheme('light');
|
setTheme('light', [event.currentTarget]);
|
||||||
} else if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.light) {
|
} else if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.light) {
|
||||||
setTheme('dark');
|
setTheme('dark', [event.currentTarget]);
|
||||||
}
|
}
|
||||||
});
|
}));
|
||||||
|
|
||||||
document.getElementById('hamburger-menu-toggle').addEventListener('click', () => {
|
document.getElementById('hamburger-menu-toggle').addEventListener('click', () => {
|
||||||
const hamburgerMenu = document.getElementsByClassName('nav-hamburger-list')[0]
|
const hamburgerMenu = document.getElementsByClassName('nav-hamburger-list')[0]
|
||||||
@@ -47,9 +48,11 @@ window.addEventListener('scroll', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
function setTheme(themeToSet) {
|
function setTheme(themeToSet, targets) {
|
||||||
localStorage.setItem(THEME_PREF_STORAGE_KEY, themeToSet);
|
localStorage.setItem(THEME_PREF_STORAGE_KEY, themeToSet);
|
||||||
darkThemeCss.disabled = themeToSet === 'light';
|
darkThemeCss.disabled = themeToSet === 'light';
|
||||||
document.querySelector('#dark-theme-toggle a').innerHTML = feather.icons[THEME_TO_ICON_CLASS[themeToSet].split('-')[1]].toSvg();
|
targets.forEach((target) => {
|
||||||
|
target.querySelector('a').innerHTML = feather.icons[THEME_TO_ICON_CLASS[themeToSet].split('-')[1]].toSvg();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user