48 lines
1.9 KiB
PHP
48 lines
1.9 KiB
PHP
<script>
|
|
(function() {
|
|
// Theme Toggle Funktionalität
|
|
const themeToggleBtn = document.getElementById('theme-toggle');
|
|
const themeToggleLightIcon = document.getElementById('theme-toggle-light-icon');
|
|
const themeToggleDarkIcon = document.getElementById('theme-toggle-dark-icon');
|
|
const themeToggleText = document.getElementById('theme-toggle-text');
|
|
const html = document.documentElement;
|
|
|
|
// Abbrechen wenn Elemente nicht gefunden wurden
|
|
if (!themeToggleBtn || !themeToggleLightIcon || !themeToggleDarkIcon || !themeToggleText) {
|
|
return;
|
|
}
|
|
|
|
// Theme aus localStorage laden oder Standard verwenden
|
|
const savedTheme = localStorage.getItem('theme') || 'dark';
|
|
|
|
function updateThemeUI(theme) {
|
|
if (theme === 'dark') {
|
|
html.classList.add('dark');
|
|
themeToggleLightIcon.classList.remove('hidden');
|
|
themeToggleDarkIcon.classList.add('hidden');
|
|
themeToggleText.textContent = 'Hell';
|
|
} else {
|
|
html.classList.remove('dark');
|
|
themeToggleLightIcon.classList.add('hidden');
|
|
themeToggleDarkIcon.classList.remove('hidden');
|
|
themeToggleText.textContent = 'Dunkel';
|
|
}
|
|
}
|
|
|
|
// Initiales Theme setzen
|
|
updateThemeUI(savedTheme);
|
|
|
|
// Vorherigen Event-Listener entfernen (falls vorhanden) und neuen hinzufügen
|
|
const newBtn = themeToggleBtn.cloneNode(true);
|
|
themeToggleBtn.parentNode.replaceChild(newBtn, themeToggleBtn);
|
|
|
|
newBtn.addEventListener('click', () => {
|
|
const currentTheme = html.classList.contains('dark') ? 'dark' : 'light';
|
|
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
|
|
|
|
localStorage.setItem('theme', newTheme);
|
|
updateThemeUI(newTheme);
|
|
});
|
|
})();
|
|
</script>
|
|
|