W3C home > Mailing lists > Public > public-css-archive@w3.org > October 2019

Re: [csswg-drafts] [css-shadow-parts] What's the purpose of multiple idents in ::part()? (#4412)

From: Tab Atkins Jr. via GitHub <sysbot+gh@w3.org>
Date: Fri, 11 Oct 2019 20:13:50 +0000
To: public-css-archive@w3.org
Message-ID: <issue_comment.created-541208369-1570824830-sysbot+gh@w3.org>
You're drawing a weird distinction here. The tag-name like part of `::part()` is the "part" string; effectively, a shadow host has a bunch of "part" elements in its pseudo tree, alongside its "before"/"after"/etc children.

What we do in the parentheses is totally unrelated. We *could* pretend that it's like a tagname and apply the same rules (both `part=""` and `::part()` only allow a single ident), and then move the "acts like a classname" part to a new `:state()` pseudo-class, but what's the point? Except for DOM's restriction on how many tagnames an element can have (one), there's literally no difference between a tagname and a classname; both are idents that categorize an element somehow. I don't know what's been gained by drawing such a distinction.

(insert Spongebob meme with Patrick moving things one spot to another)

The point of (eventually) adding `:state()` is to do more complicated things than raw idents, treating it like an *attribute*, which is indeed something distinct from tagnames or classnames.

(I'll note that :state() doesn't have any spec text, and doesn't even have an issue in this repository discussing it. Any discussion about :state() is purely theoretical.)

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/4412#issuecomment-541208369 using your GitHub account
Received on Friday, 11 October 2019 20:13:52 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 06:41:54 UTC