class MobileMenu extends HTMLElement { connectedCallback() { this.attachShadow({ mode: 'open' }); this.shadowRoot.innerHTML = `
`; this.closeBtn = this.shadowRoot.querySelector('.close-btn'); this.menu = this.shadowRoot.querySelector('.mobile-menu'); this.closeBtn.addEventListener('click', () => this.closeMenu()); } openMenu() { this.menu.classList.add('open'); document.body.style.overflow = 'hidden'; feather.replace({ 'stroke-width': 1.5 }); } closeMenu() { this.menu.classList.remove('open'); document.body.style.overflow = ''; } } customElements.define('mobile-menu', MobileMenu);