- From: Romain Menke via GitHub <sysbot+gh@w3.org>
- Date: Sun, 03 Mar 2024 22:30:22 +0000
- To: public-css-archive@w3.org
Also just read through most of https://github.com/WICG/webcomponents/issues/759 and if I am reading that correctly there are a lot of voices who want to align JS and CSS dependency graph behavior. But there is also very good info on why they are different. Most notable https://github.com/WICG/webcomponents/issues/759#issuecomment-490685490 ---- > What is happening with the layers? I am assuming you are referring to : ```css @layer some-lib.some-lib.some-lib { h1 { text-decoration: underline; } } ``` Where `@layer some-lib.some-lib.some-lib` can be surprising given that you each time only wrote a single `some-lib`. When writing `@import "foo.css" layer(some-lib)` you are loading "foo.css" and applying all of its contents into a new `some-lib` layer. Any cascade layers inside the loaded stylesheet would become nested cascade layers. Do this a few times and you end up with `some-lib.some-lib.some-lib`. This is surprising when coming at this from a JS module graph mental model but important to keep in mind that cascade layers are a different feature and they do not need to fit that mental model. They there are different doesn't meant that they aren't useful for conflict resolution between loaded styles. I don't want to go into too much detail here because there are good docs for cascade layers and they aren't the focus of this thread. > Can you explain how we end at the cyan result in the layers version? `pink` is declared in `some-lib.some-lib.some-lib.some-lib` which is a more deeply nested cascade layer than `cyan` which is in `some-lib.some-lib`, so cyan wins out. But this is a really artificial example and I think that it isn't a good demonstration of the utility of cascade layers. That all the nested cascade layers share the same name part also doesn't help in discussing it :) > Can you describe the structure of the stylesheets and the layers as they relate to those sheets? See the first note :) I think this specific example mainly demonstrates that CSS becomes a mess when you import a complex dependency graph with nested cascade layers while re-using the same name part for each cascade layer. Trying to coherently describe its structure would be very hard. I want to try to do that, but not sure how helpful that would be to the overal thread :) -- GitHub Notification of comment by romainmenke Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6130#issuecomment-1975380565 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Sunday, 3 March 2024 22:30:23 UTC