- From: Alan Stearns <stearns@adobe.com>
- Date: Tue, 7 Aug 2012 13:40:17 -0700
- To: François REMY <fremycompany_pub@yahoo.fr>, "www-style@w3.org" <www-style@w3.org>
On 8/7/12 12:55 PM, "François REMY" <fremycompany_pub@yahoo.fr> wrote:
>Hi,
>
>While I support the need of new pseudo-elements, I've a problem with
>ordinal
>numbering.
>
>Firstly, ordinal numbering makes it unclear what each pseudo-element is
>doing, which is bad for a readability point of view (I know that at Adobe
>you work mostly on HTML generators which don't care too much about this,
>because generators have other solutions than compiled source code to find
>their way, but features shipped in CSS should be as much as possible
>author-friendly).
I agree that ordinals (and indices) do not describe what the
pseudo-element is being used for. But ordinals do at least indicate
ordering, which I think is also important for readability.
>Secondly, when pseudo-elements are inserted or removed,
>the reordering can become a nightmare.
That's one problem that ordinals are meant to solve. If you know that
pseudo-elements will be inserted or removed, you can choose ordinal
spacing that allows for these changes without having to re-order
everything. In your proposal to add slots to the content attribute,
re-ordering can only be achieved by changing the entire content attribute.
You have to re-order everything to make a single insertion or removal,
which seems more nightmarish to me.
>
>I know I already proposed the syntax in the [1] comment thread (and I
>agree
>it comes with its own pitfalls) but I think a slot-based solution is
>better
>suited to solve this problem:
>
> element::before {
> content: slot(absolute counter) slot(absolute bubble)
>slot(absolute
>bubble) open-quote;
> }
>
> element::after {
> content: close-quote;
> }
>
> element::slots(absolute) {
> position: absolute;
> }
>
> element::slots(bubble) {
> content: "";
> background-color: ...;
> ...
> }
>
> element::nth-slot(bubble, 0) {
> bottom: ...; left: ...; ...
> }
>
> element::nth-slot(bubble, 1) {
> bottom: ...; left: ...; ...
> }
>
> element::nth-slot(counter, 0) {
> content: attr(data-counter);
> top: ...; right: ...; ...
> }
>
>
>
>Key features:
>
>- Slots have one or more class names, which make their selection easy and
>semantic.
>- Indexes are relative to their class names, which create an isolation
>between unrelated slots.
>- Slots can be defined in any of the available root pseudos (::after,
>::before, ...) or, in the future, as part of the generated content of the
>element itself.
>
>Best regards,
>François
Received on Tuesday, 7 August 2012 20:40:45 UTC