Re: [w3c/webcomponents] Support Custom Pseudo-elements (#300)

This makes sense to me: 

- Named parts are custom named pseudo-element selectors.
- Named parts should act analogously to type and pseudo-element selectors. Except that named parts allow one part to have multiple aliases.
- Named parts names therefore can be repeated and selectors can match multiple elements.
- The named parts of a sub-component are _not_ automatically exposed.
- The named parts of a sub-component can be specifically exposed to the component user by the consuming component author(/sub-component user) if the component author gives them an alias. 
- Named parts need a mechanism for being aliased for exposure when they are in sub-components used by a consuming component author.
- All feasible standardized combinators and pseudo-classes can be used with a named part, but only apply to elements exposed for selection, i.e. other named parts, for example:
  - `:first-of-type()` would only be eligible to match part names.
  - `*` selects only exposed named parts, not all elements.
  - `:first-child` selects the first child that is an exposed as a named part, if any. Should this ignore an unnamed first child to select the first named child or only select if the named child is the first child?
  - `+ *` selects the adjacent named part, if any. Should this ignore any unnamed siblings or only select if the adjacent sibling is named?
  - Similarly `:nth-child(3)`--should it only match if a named part is the third child, or should it match the third named child, if any?
- Named parts are enhanced by named states.
- Named states are custom named pseudo-classes.
- Named states should act analogously to class and pseudo-class selectors.
- Named state names therefore can be repeated and selectors can match multiple elements.
- Named states can only be used on elements exposed for selection, i.e. named parts.- Named states need a mechanism for setting and unsetting the state internally.

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

Received on Monday, 30 January 2017 18:18:48 UTC