| <!DOCTYPE html> |
| |
| <style> |
| deprecated-syntax-element, new-syntax-element { |
| color: blue; |
| } |
| deprecated-syntax-element:--foo { |
| color: red; |
| } |
| new-syntax-element:state(foo) { |
| color: red; |
| } |
| </style> |
| |
| <deprecated-syntax-element> |
| <div>hello world</div> |
| </deprecated-syntax-element> |
| <new-syntax-element> |
| <div>hello world</div> |
| </new-syntax-element> |
| |
| <script> |
| class DeprecatedSyntaxElement extends HTMLElement { |
| constructor() { |
| super(); |
| this.internals = this.attachInternals(); |
| this.internals.states.add('--foo'); |
| } |
| }; |
| customElements.define('deprecated-syntax-element', DeprecatedSyntaxElement); |
| |
| class NewSyntaxElement extends HTMLElement { |
| constructor() { |
| super(); |
| this.internals = this.attachInternals(); |
| this.internals.states.add('foo'); |
| } |
| }; |
| customElements.define('new-syntax-element', NewSyntaxElement); |
| |
| const deprecatedSyntaxElement = document.querySelector('deprecated-syntax-element'); |
| const newSyntaxElement = document.querySelector('new-syntax-element'); |
| window.deprecatedSyntaxColor = getComputedStyle(deprecatedSyntaxElement).color; |
| window.newSyntaxColor = getComputedStyle(newSyntaxElement).color; |
| </script> |