class CustomThemeToggle extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.render(); } render() { const isDark = document.documentElement.classList.contains('dark'); this.shadowRoot.innerHTML = `
`; this.shadowRoot.querySelector('.toggle-btn').addEventListener('click', () => { const html = document.documentElement; const isDark = html.classList.contains('dark'); if (isDark) { html.classList.remove('dark'); localStorage.setItem('theme', 'light'); } else { html.classList.add('dark'); localStorage.setItem('theme', 'dark'); } this.render(); feather.replace(); }); feather.replace(); } } customElements.define('custom-theme-toggle', CustomThemeToggle);