Re: [WICG/webcomponents] "open-stylable" Shadow Roots (#909)

@LeaVerou 

> I do have reservations about this proposed solution.

Struggling a bit to understand your concerns. Can you help clarify as the rough proposal seems to mostly match the spirit of your previous [proposal](https://github.com/WICG/webcomponents/issues/909#issuecomment-1936910846).

> the only FOUC is the usual WC FOUC that authors already deal with via :not(:defined)

Practically speaking, I think all this means is whatever control is available in the `ShadowRootInit` passed to `attachShadow` is also available on a declarative Shadow DOM (DSD) template. In the [Lit](https://lit.dev/) community, we've seen tremendous interest in and increasing use of DSD, and one of the often cited reasons is FOUC, more precisely the ability to render properly without depending on JS loading. 

> While at first glance it looks like an attribute on <link> and <style> would solve this problem by introducing a platform convention, in practice a WC author cannot depend on this...

Is this the most objectionable part? We didn't really nail down the details here other than note the need to hash them out in a (hopefully separate) issue. I think it's likely this could just be a setting. You proposed, `adoptStyles: none, basic, all`, and this would maybe just add `matching` or something. There's been a desire to earmark a subset of styling for component usage as was proposed by @knowler  [here](https://github.com/w3c/csswg-drafts/issues/9792) and prototyped in @bkardell's [half-light](https://github.com/bkardell/half-light).

>  Yes, but far less than they should be, because the existing WC suite of technologies is very hostile to them.

Would, separately, really appreciate hearing your perspective and insights on this.

> the % of authors who mainly used WC made by others was tiny, 

We've seen a lot of [interest](https://discord.gg/NWDuqShS) in a `micro-frontend` architecture in corporate environments where the same company made all the stuff but with a long tail of different web tech. Web Components are used to facilitate interoperability and bridge the gaps between the different tech stacks. In these use cases, "fitting-in" with existing CSS is highly desirable.

>  there is no guarantee that the separation is actually accurate so that as a WC author I can trust it.

This feature, trades off the safety of encapsulation for the risk of customization. It's optional and helps both meet devs where they are (I need to make this error button red!) and preserve the use cases where safety is required (you cannot violate our a11y spec).

-- 
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/909#issuecomment-1987040872
You are receiving this because you are subscribed to this thread.

Message ID: <WICG/webcomponents/issues/909/1987040872@github.com>

Received on Sunday, 10 March 2024 02:01:18 UTC