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.