<!DOCTYPE html>
<html>

<head>
  <!-- web components polyfills -->
  <script src="//unpkg.com/@webcomponents/custom-elements"></script>
  <script src="//https://unpkg.com/@webcomponents/webcomponentsjs"></script>
  <script src="//unpkg.com/@webcomponents/shadydom"></script>
  <link rel="stylesheet" href="//unpkg.com/@webcomponents/shadycss">
</head>

<body>
  <script>
    class FancyTabs extends HTMLElement {
      constructor() {
        super();
        const shadowRoot = this.attachShadow({mode: 'open'});
        shadowRoot.innerHTML = `
          <div>Shadow-DOM contents</div>
          <slot></slot>
        `;
      }
    }
    customElements.define('fancy-tabs', FancyTabs);
  </script>
  <h1>Shadow DOM</h1>
  <h2>Composition and Slots</h2>

  <fancy-tabs>
    User contents
  </fancy-tabs>
</body>

</html>