- From: Justin Fagnani <notifications@github.com>
- Date: Sat, 12 Apr 2025 11:16:22 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/pull/1101@github.com>
The current Declarative Custom Elements Strawman was authored before Declarative Custom Elements was specified, and the pattern of putting shadow root instance options on the `<template>` element. Now that that pattern does exist, it has created something of an semantic ambiguity with the strawman syntax. (with the assumption that `shadowmode` should be updated to `shadowrootmode`).
In this example, is `<template shadowmode="open">` intended to do?
```html
<definition name="my-element" constructor="MyElement">
<template shadowmode="open">~</template>
</definition>
```
Does it:
1. Create a shadow root on the `<definition>` element
2. Define a template with options to be used to initialize instance shadow roots.
If the answer is (2), then we have the same syntax with two different behaviors: one creates a shadow root instance, one defines future shadow roots.
Since the strawman was created before DSD, it doesn't seem like this collision was intended. I think to separate DSD from declarative custom elements, even just in this strawman syntax, we should make a small edit to put the options on a new element. This has the benefit of shortening the option names by not requiring the `shadowroot` prefix on every one.
```html
<definition name="my-element" constructor="MyElement">
<shadowoptions mode="open"></shadowoptions>
<template>~</template>
</definition>
```
cc @rniwa
You can view, comment on, or merge this pull request online at:
https://github.com/WICG/webcomponents/pull/1101
-- Commit Summary --
* Clarify that declarative custom element definitions don't contain declarative shadow roots.
-- File Changes --
M proposals/Declarative-Custom-Elements-Strawman.md (12)
-- Patch Links --
https://github.com/WICG/webcomponents/pull/1101.patch
https://github.com/WICG/webcomponents/pull/1101.diff
--
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/pull/1101
You are receiving this because you are subscribed to this thread.
Message ID: <WICG/webcomponents/pull/1101@github.com>
Received on Saturday, 12 April 2025 18:16:26 UTC