See updates inline: On Wed, Feb 26, 2025 at 10:10 PM Anders Hartvoll Ruud <andr...@chromium.org> wrote:
> Note that this was targeting the M136 release, so we would have had > another month to tweak this feature, and even a couple of weeks after that > to land finishing touches (or to disable the feature, worst case). > > As for signals, concerns could have been raised at any time between > December 18th and now. TAG could easily have reviewed earlier, taking the > one relevant pending change into account, but chose to delay (despite time > constraints being communicated). (Unfortunate that I didn't pay attention > to the GitHub labels, though - thanks for fixing that pastithas@ & > jyasskin@). > > That said, I do agree with the core concern here, so we'll *retarget this > for the M139 release (branching **June 23rd)*. This intent can be > considered "on hold" for now, and I'll be back in June with an update. > Meanwhile, the Blink implementation (behind a flag) is ready for > experimentation. > > > On Tue, Feb 25, 2025 at 10:06 PM Alan Stearns <famuli...@gmail.com> wrote: > >> This is a feature that is greatly desired by developers, and as such runs >> increased risk that whatever gets shipped first gets heavily used and then >> cannot be improved due to web compat. I think it’s premature to ship >> without signals from other engines and without a TAG review. We should have >> more time with this feature behind a flag. >> >> Another signal for implementing behind a feature flag for now: >> https://blog.kizu.dev/intent-to-experiment-for-longer/ >> >> On Tuesday, February 25, 2025 at 4:26:25 AM UTC-8 and...@chromium.org >> wrote: >> >>> Contact emails >>> >>> and...@chromium.org, se...@chromium.org >>> >>> Explainer >>> >>> https://css.oddbird.net/sasslike/mixins-functions >>> >>> Note: the explainer includes a description of mixins as well. This >>> intent covers custom functions (@function) only. >>> >>> Specification >>> >>> https://drafts.csswg.org/css-mixins-1 >>> >> The CSSWG resolved to publish a FPWD <https://logs.csswg.org/irc.w3.org/css/2025-04-30/#e1696772> of this specification. > >>> Note: despite its shortname (css-mixins), the spec currently describes >>> custom >>> functions only. >>> >>> Summary >>> >>> Custom Functions are similar to custom properties >>> <https://drafts.csswg.org/css-variables>, but instead of returning a >>> single fixed value, it returns a value based on other custom properties, >>> parameters, and conditionals. >>> >>> Example: Custom light-dark function: >>> >>> @function --light-dark(--light, --dark) { >>> >>> result: var(--light); >>> >>> @media (prefers-color-scheme: dark) { >>> >>> result: var(--dark); >>> >>> } >>> >>> } >>> >>> div { >>> >>> background-image: --light-dark(black-logo.png, white-logo.png); >>> >>> } >>> >>> Blink component >>> >>> Blink>CSS >>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ECSS%22> >>> >>> TAG review >>> >>> https://github.com/w3ctag/design-reviews/issues/1031 >>> >>> TAG review status >>> >>> Pending >>> >> TAG closed the design review <https://github.com/w3ctag/design-reviews/issues/1031> with Resolution:satisfied. (No issues.) > >>> Risks >>> >>> Interoperability and Compatibility >>> >>> None >>> >>> >>> Gecko: No signal ( >>> https://github.com/mozilla/standards-positions/issues/1148) >>> >>> WebKit: No signal ( >>> https://github.com/WebKit/standards-positions/issues/437) >>> >>> Web developers: Positive >>> >>> (Dug up what I could find per goo.gle/developer-signals): >>> >>> >>> - >>> >>> >>> >>> https://medium.com/css-magic/custom-css-functions-the-next-big-leap-in-styling-5acbd69f5526 >>> - >>> >>> >>> >>> https://johannesodland.github.io/2024/12/12/web-wish-12-custom-css-functions.html >>> - >>> >>> “sorely needed functionality for authors” >>> >>> <https://github.com/w3ctag/design-reviews/issues/1031#issuecomment-2637024845> >>> - LeaVerou <https://github.com/LeaVerou> >>> - >>> >>> Appeared as a missing feature in State of CSS 2024 >>> <https://2024.stateofcss.com/en-US/usage/#css_missing_features>. >>> >>> >>> Other signals: >>> >>> WebView application risks >>> >>> None >>> >>> >>> Debuggability >>> >>> The Devtools team is working on “basic support” for @function: >>> https://docs.google.com/document/d/17UCa0XDXAG9EBx18w1fXAA9SL3V9Lr4vTptaXYyE1CA/ >>> >>> Unfortunately that doc requires @google.com to access, but “basic >>> support” primarily means that callsites can be clicked, you’ll be taken to >>> the relevant function, and you’ll be able to edit the contents of the >>> function. >>> >>> Will this feature be supported on all six Blink platforms (Windows, Mac, >>> Linux, ChromeOS, Android, and Android WebView)? >>> >>> Yes >>> >>> Is this feature fully tested by web-platform-tests >>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>> ? >>> >>> Yes >>> >>> https://wpt.fyi/results/css/css-mixins >>> >>> >>> - >>> >>> at-function-cssom.tentative.html >>> >>> <https://wpt.fyi/results/css/css-mixins/at-function-cssom.tentative.html?label=experimental&label=master&aligned> >>> is >>> marked tentative because the spec is currently missing a few obvious >>> parts >>> from the API. >>> - >>> >>> The subtest "Indexed property getter" is failing due to a >>> Bindings bug. This is an existing issue (likely low impact) that's >>> unrelated to Custom Functions. crbug.com/333965945 >>> >>> This is now specified <https://github.com/w3c/csswg-drafts/commit/61d88e2867c529d27360d1788b4d820414a30a6d>, and the test is no longer tentative. > >>> - >>> >>> dashed-function-cycles.tentative.html >>> >>> <https://wpt.fyi/results/css/css-mixins/dashed-function-cycles.tentative.html?label=master&label=experimental&aligned> >>> is >>> marked tentative because the spec has not yet caught up with the >>> resolution >>> in https://github.com/w3c/csswg-drafts/issues/11500. >>> >>> This is now also specified <https://github.com/w3c/csswg-drafts/commit/943132e683aaeacecd87223048cffb2eac520e59>, and the test is about <https://chromium-review.googlesource.com/c/chromium/src/+/6512940> to lose the "tentative" status. >>> In both cases, I’ll make sure we get these things edited so we can >>> remove the .tentative suffixes before shipping. >>> >>> I do not plan to fix crbug.com/333965945 before shipping, which means >>> that a failure on "Indexed property getter" is to be expected. I will not >>> ship with any other test failures; unexpected red boxes on wpt.fyi may be >>> considered temporary, usually due to Canary not having picked up the latest >>> changes yet. >>> >>> Flag name on about://flags >>> >>> CSSFunctions >>> >>> Finch feature name >>> >>> CSSFunctions >>> >>> Requires code in //chrome? >>> >>> False >>> >>> Tracking bug >>> >>> https://issues.chromium.org/issues/325504770 >>> >>> Estimated milestones >>> >>> Shipping on desktop >>> >>> 136 >>> >>> Shipping on Android >>> >>> 136 >>> >>> Shipping on WebView >>> >>> 136 >>> >>> >>> Anticipated spec changes >>> >>> At this point, I anticipate only one real spec change: disallowing >>> argument values that begin with two dashes (‘--’). This is to make #11749 >>> (named arguments) <https://github.com/w3c/csswg-drafts/issues/11749> >>> possible in the future without compat concerns. >>> >>> All other issues are not interesting in terms of compat risk. >>> >>> Full list (only the top one being interesting): >>> >>> >>> - >>> >>> #11749 [css-mixins-1] Named argument passing? >>> <https://github.com/w3c/csswg-drafts/issues/11749> >>> - >>> >>> This can be added later. However, we should reserve space for >>> this in the syntax immediately, to avoid compat issues in the future. >>> Issue >>> 398887938 <https://issues.chromium.org/issues/398887938> tracks >>> this. >>> >>> This has now been reserved in Blink's implementation. This means that arguments starting with "--foo:" (a dashed name, followed by a colon) are invalid for now. The behavior is tested by dashed-function-named-arg.tentative.html <https://wpt.fyi/results/css/css-mixins/dashed-function-named-arg.tentative.html?label=experimental&label=master&aligned> . > >>> - >>> >>> #10558 [css-mixins] <dashed-function> syntax seems invalid >>> <https://github.com/w3c/csswg-drafts/issues/10558> >>> - >>> >>> Editorial issue. The commenter seems satisfied now: “So this >>> issue may therefore be considered fixed” >>> >>> <https://github.com/w3c/csswg-drafts/issues/10558#issuecomment-2255746650> >>> . >>> - >>> >>> #10006 [css-mixins] Allow mixins/functions to be called via custom >>> properties <https://github.com/w3c/csswg-drafts/issues/10006> >>> - >>> >>> We can choose to add this later; it does not affect the API >>> shipping now. >>> - >>> >>> #9992 Proposal: CSS Variable Groups >>> <https://github.com/w3c/csswg-drafts/issues/9992> >>> - >>> >>> Same as the previous issue. >>> - >>> >>> #9990 [css-values][css-variables][css-mixins] Generic fallback >>> syntax for IACVT values >>> <https://github.com/w3c/csswg-drafts/issues/9990> >>> - >>> >>> Same as the previous issue. >>> - >>> >>> #10222 [css-mixins] Proposal: @like rule for repurposing page >>> default styles <https://github.com/w3c/csswg-drafts/issues/10222> >>> - >>> >>> Unrelated to CSS Functions. (Marked css-mixins since it has >>> conceptual similarities with mixins.) >>> - >>> >>> #11500 [css-values] Short-circuit if() evaluation >>> <https://github.com/w3c/csswg-drafts/issues/11500> >>> - >>> >>> Resolved, just needs a spec edit. >>> - >>> >>> #11455 [css-values-5][css-mixins-1] Add an if-test for local >>> variables <https://github.com/w3c/csswg-drafts/issues/11455> >>> - >>> >>> Same as the previous issue. >>> - >>> >>> #11190 [css-functions-mixins] Handling superfluous arguments >>> <https://github.com/w3c/csswg-drafts/issues/11190> >>> - >>> >>> Same as the previous issue. >>> - >>> >>> #10562 [css-mixins] Should result be mandatory in @function? >>> <https://github.com/w3c/csswg-drafts/issues/10562> >>> - >>> >>> Same as the previous issue. >>> - >>> >>> #9350 Proposal: Custom CSS Functions & Mixins >>> <https://github.com/w3c/csswg-drafts/issues/9350> >>> - >>> >>> Same as the previous issue. >>> >>> >>> Link to entry on the Chrome Platform Status >>> >>> https://chromestatus.com/feature/5179721933651968?gate=5074532782309376 >>> >>> Links to previous Intent discussions >>> >>> Intent to Prototype: >>> https://groups.google.com/a/chromium.org/g/blink-dev/c/b-BTxKD-Ldc/m/1pyobjq7AQAJ >>> >>> -- 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/CAKFBnUptz%3DSRDVGW_%2Bs0w3CPFAZW9fGzUMVfrowjpYqCQ7JUAA%40mail.gmail.com.