Declarative Shadow DOM
Shadow DOMを宣言的に書けるようにする仕様
https://web.dev/declarative-shadow-dom/
言い換えると、JSを使わずにShadow DOMを生成できる
templateタグにshadowroot属性を使ってShadow Rootを宣言する
このように書くと
code:html
<host-element>
<template shadowroot="open">
<slot></slot>
</template>
<h2>Light content</h2>
</host-element>
このようなDOMツリーになる
code:html
<host-element>
#shadow-root (open)
<slot>
↳
<h2>Light content</h2>
</slot>
</host-element>
なかなか進んでいないように見えていたが、仕様策定も進み、SafariのTechnology Previewにも入り、Firefoxにも実装されつつあるようなので、ようやく使える時が来そうだ
https://developer.chrome.com/articles/declarative-shadow-dom/
https://webkit.org/blog/13851/declarative-shadow-dom/
https://github.com/mozilla/standards-positions/issues/335
https://github.com/mozilla/standards-positions/pull/740
https://speakerdeck.com/uhyo/shadow-domtocssnoxian-zhuang