From 8d1efef01dfd0eca47a2009a08adcfde8b78fb29 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 15 Apr 2026 15:36:17 +0200 Subject: feat: create theme toggle with localStorage persistence --- themes/danix-xyz-hacker/assets/js/theme-toggle.js | 30 +++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 themes/danix-xyz-hacker/assets/js/theme-toggle.js diff --git a/themes/danix-xyz-hacker/assets/js/theme-toggle.js b/themes/danix-xyz-hacker/assets/js/theme-toggle.js new file mode 100644 index 0000000..97ed1ce --- /dev/null +++ b/themes/danix-xyz-hacker/assets/js/theme-toggle.js @@ -0,0 +1,30 @@ +document.addEventListener('DOMContentLoaded', function() { + const themeToggle = document.getElementById('theme-toggle'); + + if (!themeToggle) { + return; + } + + themeToggle.addEventListener('click', function(e) { + e.preventDefault(); + + // Get current theme from html element + const htmlElement = document.documentElement; + const isDark = htmlElement.classList.contains('theme-dark'); + const newTheme = isDark ? 'light' : 'dark'; + + // Remove both theme classes + htmlElement.classList.remove('theme-light', 'theme-dark'); + + // Add the new theme class + htmlElement.classList.add(`theme-${newTheme}`); + + // Persist to localStorage + localStorage.setItem('theme', newTheme); + + // Update Feather Icons if available + if (window.feather) { + window.feather.replace(); + } + }); +}); -- cgit v1.2.3