<hello-text name="Петя"></hello-text>
customElements.define('hello-text', class extends HTMLElement {
  connectedCallback() {
    const shadow = this.attachShadow({mode: 'open'});
    shadow.innerHTML = `
    <style>
      p {font: bold 20px sans-serif}
    </style>
    <p>
      Привет! Меня зовут ${this.getAttribute('name')}.
    </p>`;
  }
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.