Re: Proposal for "Cascading Attribute Sheets" - like CSS, but for attributes!

On Tue, Aug 21, 2012 at 1:01 PM, Tab Atkins Jr. <jackalmage@gmail.com>wrote:

> On Tue, Aug 21, 2012 at 12:37 PM, Ojan Vafai <ojan@chromium.org> wrote:
> > Meh. I think this loses most of the "CSS is so much more convenient"
> > benefits. It's mainly the fact that you don't have to worry about whether
> > the nodes exist yet that makes CSS more convenient.
>
> Note that this benefit is preserved.  Moving or inserting an element
> in the DOM should apply CAS to it.
>
> The only thing we're really losing in the dynamic-ness is that other
> types of mutations to the DOM don't change what CAS does, and some of
> the dynamic selectors like :hover don't do anything.
>

Ah, I missed the "plus a mutation observer that reruns the mutations on any
nodes added to the document" bit. Ok, so this timing is very specific then.
It would get applied at the microtask time, not at the time the DOM was
modified. Would it get applied before or after mutation observers get
called? Seems like you'd want it to execute first. Calling it after
mutation observers would require an extra delivery of mutations after the
attributes are applied, which seems silly.

> That said, I share your worry that having this be dynamic would slow down
> > DOM modification too much.
> >
> > What if we only allowed a restricted set of selectors and made these
> sheets
> > dynamic instead? Simple, non-pseudo selectors have information that is
> all
> > local to the node itself (e.g. can be applied before the node is in the
> > DOM). Maybe even just restrict it to IDs and classes. I think that would
> > meet the majority use-case much better.
>
> I think that being able to use complex selectors is a sufficiently
> large use-case that we should keep it.
>
> > Alternately, what if these applied the attributes asynchronously (e.g.
> right
> > before style resolution)?
>
> Can you elaborate?
>
> ~TJ
>

Received on Tuesday, 21 August 2012 20:44:00 UTC