class ThemeToggle extends HTMLElement { constructor() { super(); this.isLight = true; } connectedCallback() { this.render(); this.addEventListener('click', this.toggleTheme.bind(this)); } toggleTheme() { this.isLight = !this.isLight; document.documentElement.setAttribute('data-theme', this.isLight ? 'light' : 'dark'); this.render(); } render() { this.innerHTML = ` ${this.isLight ? '' : '' } `; } } customElements.define('theme-toggle', ThemeToggle);