<script>
class CustomElement extends HTMLElement {
  constructor() {
    super();

    const shadow = this.attachShadow({ mode: 'open' });
    const slot = document.createElement('slot');
    const style = document.createElement('style');
    style.textContent = `
      :host {
        text-decoration: underline;
      }
    `;
    shadow.append(style, slot);
  }
}

customElements.define('custom-element', CustomElement);
</script>

<custom-element>This should be underlined</custom-element>
