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.