On Wed, May 14, 2025 at 5:21 PM Rune Lillesveen <futh...@chromium.org>
wrote:

> On Tue, May 13, 2025 at 9:20 AM Rune Lillesveen <futh...@chromium.org>
> wrote:
>
>> On Tue, May 13, 2025 at 8:34 AM Rune Lillesveen <futh...@chromium.org>
>> wrote:
>>
>>> On Tue, May 13, 2025 at 7:43 AM Domenic Denicola <dome...@chromium.org>
>>> wrote:
>>>
>>>> I'm very slightly worried about the cases which we seem to accept, but
>>>> the latest on the CSSWG thread suggests we should disallow. Namely,
>>>> @container and @page. How sure are you that changing those to be invalid in
>>>> the future, to follow the latest CSSWG decisions, will not cause compat
>>>> problems?
>>>>
>>>
>>> For @page, I wouldn't be worried at all. It's unlikely someone will
>>> start using the feature and rely on a constant
>>> sibling-index()/sibling-count() in @page.
>>>
>>> For @container, I agree that it's safer to be conservative and wait for
>>> the resolution, since for @container there are clear use cases and and a
>>> more or less obvious behavior in that context.
>>>
>>
>> Some more details below.
>>
>> For @container, this is relevant for size queries and style() queries.
>>
>> Size queries are currently always evaluated in an element context,
>> although falling back to viewport has been discussed, and container units
>> fall back to small viewport units. Relative units (like ems below) are
>> evaluated against the computed values of the container element:
>>
>> @container (width > calc(sibling-index() * 50px)) {}
>> @container (width > 10em)) {}
>>
>>
>> For style queries, the right hand of the query is evaluated against the
>> container element and its computed styles for registered custom properties.
>> Note that for non-registered custom properties, sibling-index() would just
>> be part of the string/tokens without any specific meaning.
>>
>> I think it would be inconsistent to reference relative units (like em
>> below) and resolve custom properties references (like var(--a) below), but
>> specifically throw away sibling-index() when evaluating the value against
>> the registered syntax:
>>
>> @container style(--registered-length: calc(sibling-index() * 20px)) {}
>> @container style(--registered-length: 10em) {}
>> @container style(--registered-length: var(--a)) {}
>>
>
> I'll make my position clearer.
>
> I think we should ship with support for tree counting functions
> in @container because
>
> 1. @container queries are currently always in a (container) element
> context and there are valid use cases
> 2. Supporting tree counting functions in @container does not break with
> the current spec
> 3. I don't think it's likely there will be a resolution that disallows
> tree counting functions in @container
> 4. In particular, disallowing tree counting functions in style() queries
> would be inconsistent with e.g. relative units
>

I am recused on this one, but FWIW I agree with this reasoning.
https://github.com/w3c/csswg-drafts/issues/10982 is already Agenda+ and if
we're confident the right solution is to match how relative units, then we
can proceed. Rune pointed out that it's already tested here:
https://wpt.fyi/results/css/css-values/tree-counting/sibling-function-container-query.html

To ship without this behavior only to add it a few milestones later would
complicate the browser support story and require explanation on places like
MDN and caniuse.com.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYeGZOOUNARmWS5myVqNq9c688p0%2Bte6LqWRGhpS3ta4Lw%40mail.gmail.com.

Reply via email to