Feature detection will be possible using `@supports selector(&)`. Due to a bug there was a false positive with the flag turned off, but that's been fixed in https://bugs.chromium.org/p/chromium/issues/detail?id=1414012 today and a backport to 111 has been requested.
The false positive will remain in Chrome 109 and 110. That's unfortunate, but I don't see a clear way to get around the problem. On Sat, Feb 4, 2023 at 12:30 PM Sebastian Zartner < sebastianzart...@gmail.com> wrote: > I believe, one major issue for the adoption of nesting and which should > block shipping it is feature detection. There needs to be a clear way for > authors to detect whether the browser supports nesting rules, i.e. provide > them with a way to transition to nesting. Without feature detection, > authors will write pages that break in browsers that don't support it or > they will simply not use the feature. > I've therefore created an issue > <https://github.com/w3c/csswg-drafts/issues/8399> to discuss this. > > Sebastian > > On Friday, January 27, 2023 at 9:46:38 AM UTC+1 Philip Jägenstedt wrote: > >> Hi Oriol, >> >> Thanks for raising that there may be some spec changes that don't match >> the current implementation. Can you list which issues >> <https://github.com/w3c/csswg-drafts/labels/css-nesting-1> you think >> need to be resolved? There are already 3 listed upthread, and I agree that >> anything that has a non-trivial risk of causing interop/compat problems >> down the line is worth spending extra time on. >> >> Best regards, >> Philip >> >> On Fri, Jan 27, 2023 at 2:17 AM obr...@igalia.com <obr...@igalia.com> >> wrote: >> >>> I don't see the danger of a priority of constituencies inversion. >>> Authors can use preprocessors, just like they have been using for several >>> years, so I don't get where the hurry comes from. >>> In fact, I would argue that hurrying to ship a future without having >>> discussed the details just tends to result in a messier language that ends >>> up causing more author frustration in the long-term. >>> And it's not just about the bigger controversy of choosing "option 3" vs >>> something else, with the risk of a formal objection. There are various >>> other relevant details. >>> For example, just yesterday the CSSWG resolved that `:is(.baz, !&)` >>> should count as containing `&`, and thus match any `.baz` in the page, not >>> just `& .baz` like the current implementation. >>> It was also resolved that raw properties in a nested media rule are >>> wrapped in a `& {}` rule, which matches Blink, but there are still some >>> details to discuss, which may or may not match the implementation. >>> And there are more issues in the agenda. >>> Some of these topics may be minor, or might be fixed before 112 goes >>> into beta. But I don't see why risk shipping something in a hurry without >>> proper discussion, potentially leading to compat problems when trying to >>> change the behavior later. >>> >>> -- Oriol Brufau >>> >>> El dia dimecres, 25 de gener de 2023 a les 18:31:03 UTC+1, >>> rby...@chromium.org va escriure: >>> >>>> We discussed this in the API owner meeting today (Philip, Rego, Daniel, >>>> Chris, Yoav, Mike Taylor and myself). We appreciate that there's not yet >>>> full consensus on the API syntax, but also that we've been in this state >>>> for several months and we've heard pretty clearly from web developers that >>>> as a whole they want us to ship something and overwhelmingly support >>>> option 3 >>>> <https://webkit.org/blog/13607/help-choose-from-options-for-css-nesting-syntax/>. >>>> It seems to me we're in real danger of a priority of constituencies >>>> <https://www.w3.org/TR/design-principles/#priority-of-constituencies> >>>> inversion here with authors continuing to lose out as a result of >>>> indecision from the implementer and standards community. >>>> >>>> Therefore, since option 3 seems to have the bulk of support from web >>>> developers and browser implementers, I agree with Philip that, absent any >>>> stronger consensus emerging, we should proceed with shipping it for M112 >>>> (not M111 which is branching this week). *LGTM2* (with the same >>>> criteria as Philip). >>>> >>>> However, if the CSSWG resolves to materially change the design or the >>>> TAG completes their review >>>> <https://github.com/w3ctag/design-reviews/issues/791> and requests >>>> specific breaking changes prior to Chrome 112 going to Beta around *March >>>> 1st*, then I'd retract my LGTM and ask us to flag it back off and >>>> circle back here to allow for a new attempt at building more consensus. As >>>> always, some breaking changes may be possible after that point too, but >>>> it'll depend on the realities of web compat. >>>> >>>> API owners also agreed that we'd look for 4 LGTMs in this case instead >>>> of the usual 3. >>>> >>>> Thanks, >>>> Rick >>>> >>>> On Wed, Jan 25, 2023 at 11:24 AM Philip Jägenstedt <foo...@chromium.org> >>>> wrote: >>>> >>>>> LGTM1 >>>>> >>>>> I had a chat with Steinar today to answer my questions. Out of the >>>>> open issues, the important ones to resolve before shipping are: >>>>> https://github.com/w3c/csswg-drafts/issues/7850 >>>>> https://github.com/w3c/csswg-drafts/issues/7971 >>>>> https://github.com/w3c/csswg-drafts/issues/7972 >>>>> >>>>> Those don't seem controversial. My LGTM is assuming spec and tests are >>>>> updated and that we pass those tests before the feature reaches stable. >>>>> >>>>> The final test failure is related to #7850 and is an easy fix. >>>>> >>>>> Regarding the syntax, there's still disagreement in the CSSWG. >>>>> Unanimous consensus among all WG members doesn't seem possible here, for >>>>> any proposal. Crucially, other browser vendors appear to be OK with >>>>> "option >>>>> 3". I would definitely reconsider my LGTM if there were signs that other >>>>> browser vendors are not keen on shipping option 3, since that would create >>>>> an interop problem, and eventually site compat problems as well. >>>>> >>>>> As always, we should be receptive to new information even after an >>>>> intent has been approved and the flag has been flipped. >>>>> >>>>> On Wed, Jan 25, 2023 at 11:20 AM Manuel Rego Casasnovas < >>>>> re...@igalia.com> wrote: >>>>> >>>>>> Adding to Philip questions, there seems to be quite a lot of ongoing >>>>>> discussions around this topic on the CSSWG, for example today there's >>>>>> a >>>>>> special meeting only for CSS Nesting topics: >>>>>> https://lists.w3.org/Archives/Public/www-style/2023Jan/0011.html >>>>>> >>>>>> What's their impact on the current implementation? >>>>>> >>>>>> Thanks, >>>>>> Rego >>>>>> >>>>>> On 23/01/2023 18:00, Philip Jägenstedt wrote: >>>>>> > I think that we should ship this. It's a high profile and in-demand >>>>>> new >>>>>> > feature >>>>>> > <https://2022.stateofcss.com/en-US/usage/#missing_features_freeform>, >>>>>> so >>>>>> > I have a few questions and comments first. >>>>>> > >>>>>> > Taking a look at the open spec issues >>>>>> > (https://github.com/w3c/csswg-drafts/labels/css-nesting-1 >>>>>> > <https://github.com/w3c/csswg-drafts/labels/css-nesting-1>) some >>>>>> are >>>>>> > explicitly ideas for future changes, but are there any where >>>>>> shipping >>>>>> > amounts to a decision that isn't easily changed? I'm thinking >>>>>> especially >>>>>> > of the CSSOM issues. >>>>>> > >>>>>> > In https://wpt.fyi/results/css/css-nesting >>>>>> > <https://wpt.fyi/results/css/css-nesting> there's a single subtest >>>>>> > failure, related to how a rule serializes. Is that implemented per >>>>>> spec, >>>>>> > or is it tied up with the open CSSOM issues? >>>>>> > >>>>>> > Regarding the threat of a formal objection, there doesn't appear to >>>>>> be >>>>>> > any solution that would fully satisfy everyone, but I trust your >>>>>> > judgment that this is the best option. Additionally, we should not >>>>>> > pre-commit Blink to shipping parser changes, and accept the >>>>>> possibility >>>>>> > that what we ship now is the final shape of the feature. >>>>>> > >>>>>> > On Fri, Jan 20, 2023 at 10:42 AM 'Steinar H. Gunderson' via >>>>>> blink-dev >>>>>> > <blin...@chromium.org <mailto:blin...@chromium.org>> wrote: >>>>>> > >>>>>> > Contact emails: se...@chromium.org <mailto:se...@chromium.org>, >>>>>> > fut...@chromium.org <mailto:fut...@chromium.org> >>>>>> > Explainer: None >>>>>> > >>>>>> > Specification: https://drafts.csswg.org/css-nesting >>>>>> > <https://drafts.csswg.org/css-nesting> >>>>>> > >>>>>> > Summary: Add the ability to nest CSS style rules inside other >>>>>> style >>>>>> > rules, >>>>>> > combining selectors from the outer with the inner rule for >>>>>> increasing >>>>>> > modularity and maintainability of style sheets. >>>>>> > >>>>>> > Blink component: Blink>CSS >>>>>> > >>>>>> > TAG review: https://github.com/w3ctag/design-reviews/issues/791 >>>>>> > <https://github.com/w3ctag/design-reviews/issues/791> >>>>>> > >>>>>> > TAG review status: Pending >>>>>> > >>>>>> > Risks: There is a threat of a formal objection in CSSWG. >>>>>> > >>>>>> > Interoperability and Compatibility: >>>>>> > >>>>>> > Gecko: Positive >>>>>> > (https://github.com/mozilla/standards-positions/issues/695 >>>>>> > <https://github.com/mozilla/standards-positions/issues/695>) >>>>>> > WebKit: Positive >>>>>> > (https://github.com/WebKit/standards-positions/issues/69 >>>>>> > <https://github.com/WebKit/standards-positions/issues/69>) >>>>>> > >>>>>> > Debuggability >>>>>> > Nesting style rules will be a big change for editing and >>>>>> displaying >>>>>> > style rules in the inspector: >>>>>> > >>>>>> > - Showing displaying nested rules for matching declarations >>>>>> > - Editing selectors >>>>>> > - Inserting nested rules >>>>>> > - etc... >>>>>> > >>>>>> > Tracking issue for devtools support: https://crbug.com/1172985 >>>>>> > <https://crbug.com/1172985> >>>>>> > Devtools says they're on track for shipping in M111. >>>>>> > >>>>>> > Will this feature be supported on all six Blink platforms >>>>>> (Windows, >>>>>> > Mac, Linux, >>>>>> > Chrome OS, Android, and Android WebView)? Yes >>>>>> > >>>>>> > Is this feature fully tested by web-platform-tests? Yes >>>>>> > >>>>>> > Flag name: CSSNesting >>>>>> > >>>>>> > Requires code in //chrome? False >>>>>> > >>>>>> > Tracking bug: https://crbug.com/1095675 < >>>>>> https://crbug.com/1095675> >>>>>> > >>>>>> > Estimated milestones >>>>>> > DevTrial on desktop 109 >>>>>> > DevTrial on Android 109 >>>>>> > Shipping 112 >>>>>> > >>>>>> > >>>>>> > Anticipated spec changes: See above. >>>>>> > >>>>>> > Link to entry on the Chrome Platform Status: >>>>>> > https://chromestatus.com/feature/5800613594529792 >>>>>> > <https://chromestatus.com/feature/5800613594529792> >>>>>> > >>>>>> > Links to previous Intent discussions: >>>>>> > Intent to prototype: >>>>>> > >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/YzrEmc%2BqlqPv72Au%40google.com >>>>>> < >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/YzrEmc%2BqlqPv72Au%40google.com >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > Software Engineer, Google Norway >>>>>> > >>>>>> > -- >>>>>> > 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+...@chromium.org >>>>>> > <mailto:blink-dev%2bunsu...@chromium.org>. >>>>>> > To view this discussion on the web visit >>>>>> > >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/Y8ph9gk50U2D92f3%40google.com >>>>>> < >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/Y8ph9gk50U2D92f3%40google.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+...@chromium.org >>>>>> > <mailto:blink-dev+...@chromium.org>. >>>>>> > To view this discussion on the web visit >>>>>> > >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdMTE%3DjWA4AVXeJfGGTZ5WNzQCR4MiHONuZD3gq43PAOg%40mail.gmail.com >>>>>> < >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYdMTE%3DjWA4AVXeJfGGTZ5WNzQCR4MiHONuZD3gq43PAOg%40mail.gmail.com?utm_medium=email&utm_source=footer >>>>>> >. >>>>>> >>>>> -- >>>>> 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+...@chromium.org. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYckGUc%3DxjifpXRrOi_UQ2SCXO%2B68GuDAT4r0B%2B8qC4WSw%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYckGUc%3DxjifpXRrOi_UQ2SCXO%2B68GuDAT4r0B%2B8qC4WSw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- 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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAARdPYcZmCS69D9C0XW6Ah0KbM7Gyin-LVKh-mYyF5bm%3D1tCLQ%40mail.gmail.com.