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);