Thanks for the updates.

LGTM1

On 5/6/25 4:41 AM, Anders Hartvoll Ruud wrote:
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

            <https://css.oddbird.net/sasslike/mixins-functions>Note:
            the explainer includes a description of mixinsas well.
            This intent covers custom functions (@function) only.


                    Specification

            https://drafts.csswg.org/css-mixins-1
            <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 functionsonly.


                    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
            <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
            <https://github.com/mozilla/standards-positions/issues/1148>)


            WebKit: No signal
            (https://github.com/WebKit/standards-positions/issues/437
            <https://github.com/WebKit/standards-positions/issues/437>)


            Web developers: Positive


            (Dug up what I could find per goo.gle/developer-signals
            <https://goo.gle/developer-signals>):


             *

                
https://medium.com/css-magic/custom-css-functions-the-next-big-leap-in-styling-5acbd69f5526
                
<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
                
<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/
            
<https://docs.google.com/document/d/17UCa0XDXAG9EBx18w1fXAA9SL3V9Lr4vTptaXYyE1CA/>

            Unfortunately that doc requires @google.com
            <http://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
            <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.

                 o

                    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
                    <https://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
                inhttps://github.com/w3c/csswg-drafts/issues/11500
                <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
            <https://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
            <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>

                 o

                    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>

                 o

                    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>

                 o

                    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>

                 o

                    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>

                 o

                    Same as the previous issue.

             *

                #10222 [css-mixins] Proposal: @like rule for
                repurposing page default styles
                <https://github.com/w3c/csswg-drafts/issues/10222>

                 o

                    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>

                 o

                    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>

                 o

                    Same as the previous issue.

             *

                #11190 [css-functions-mixins] Handling superfluous
                arguments
                <https://github.com/w3c/csswg-drafts/issues/11190>

                 o

                    Same as the previous issue.

             *

                #10562 [css-mixins] Should result be mandatory in
                @function?
                <https://github.com/w3c/csswg-drafts/issues/10562>

                 o

                    Same as the previous issue.

             *

                #9350 Proposal: Custom CSS Functions & Mixins
                <https://github.com/w3c/csswg-drafts/issues/9350>

                 o

                    Same as the previous issue.


                    Link to entry on the Chrome Platform Status

            
https://chromestatus.com/feature/5179721933651968?gate=5074532782309376
            
<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
            
<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 <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKFBnUptz%3DSRDVGW_%2Bs0w3CPFAZW9fGzUMVfrowjpYqCQ7JUAA%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f647ff03-b549-4155-96c7-7373e418d114%40chromium.org.

Reply via email to