#787: Design and specification review of CSS Container Queries Style Features

Visit on Github.

Opened Nov 21, 2022

Wotcher TAG!

I'm requesting a TAG review of Style Features for Container Queries.

TAG guidelines state that custom attributes should not be used for styling, and authors should rely on CSS custom properties instead. However, custom properties are currently limited to carrying a single value, making it hard to achieve any more complex impact beyond simple value substitution. Meanwhile, container queries allow authors to write conditional CSS based on an ancestor 'container' element. Browsers are already broadly shipping 'dimensional' container queries. By adding the ability to query 'style features' as well, we can use the container query syntax to help solve this long-standing issue for authors.

Further details:

  • I have reviewed the TAG's Web Platform Design Principles
  • Relevant time constraints or deadlines: No specific deadline, but interest in shipping when possible
  • The group where the work on this specification is currently being done: CSSWG
  • The group where standardization of this work is intended to be done (if current group is a community group or other incubation venue): CSSWG
  • Major unresolved issues with or opposition to this specification: No major issues, but some hesitation expressed by implementors around querying non-custom properties
  • This work is being funded by: Google

You should also know that...

There is already a partial (custom properties only) prototype implementation in Chromium v107+ behind the 'experimental web platform features' flag.

We'd prefer the TAG provide feedback as (please delete all but the desired option):

🐛 open issues in our GitHub repo for each point of feedback

( also ok to 💬 leave review feedback as a comment in this issue and @-notify mirisuzanne if that's simpler)

Discussions

Comment by @LeaVerou Nov 29, 2022 (See Github)

Making this part of container queries circumvents a lot of the issues we faced when we were trying to define a separate conditional rule. Also restricting it to custom properties and equality at first does simplify a host of other hard issues, while addressing a large percentage of use cases. Please make sure that the syntax allows extension in the future (both in terms of querying other properties, as well as querying ranges of values).

I don’t personally see any architectural issues with this, and would be happy to see it move forwards. I do see some smaller design issues and have some questions, for which I will file separate issues in the CSS WG repo.

Discussed Dec 19, 2022 (See Github)

Lea: can we close this? There were no objections in the design review async chat we had.

Rossen: I like the explainer.

Lea: not a new feature - it's extending container queries which we have reviewed before. No signals form gecko or webkit... No response to the standards positions requests...

Rossen: from TAG's PoV I feel this is definitely the right way to go about this feature.

Peter: I agree I don't think there are any architectural issues...

Dan: Lea can you write a closing comment?

Lea: Can write that the comment I wrote reflects our consensus.

consensus: yes

Comment by @LeaVerou Dec 21, 2022 (See Github)

We discussed this in a breakout today and we decided my comment above does, in fact, reflect our consensus, so we're gonna go ahead and close this. Thank you for flying TAG! ✈️