Contact emailsdba...@chromium.org Explainer https://github.com/w3c/csswg-drafts/blob/main/css-values-5/calc-size-explainer.md
Specificationhttps://drafts.csswg.org/css-values-5/#calc-size Summary The CSS interpolate-size property allows a page to opt in to animations and transitions of CSS intrinsic sizing keywords such as auto, min-content, fit-content, etc., in the cases where we can animate those keywords. The CSS calc-size() function is a CSS function similar to calc(), but that also supports operations on exactly one of the values auto, min-content, max-content, fit-content, stretch, or contain. This function is used to represent the values in the middle of the animations allowed by the interpolate-size property. Blink componentBlink>Layout <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ELayout> TAG reviewhttps://github.com/w3ctag/design-reviews/issues/955 TAG review statusIssues open. I think there were two substantive issues that came out of the TAG review, one of which is addressed and one of which we disagree with and is not addressed. One issue was that the use of the calc-size() function as the recommended opt-in mechanism for animation of sizing keywords was not ideal. This is because of behavior in browsers that don't yet support the feature. Changing the way that the endpoints of the animation are specified breaks not only the animation but also the static behavior before or after the animation, unless authors are careful to use additional fallback declarations with supported values. This was addressed with the somewhat late-breaking addition of a separate opt-in, the interpolate-size property, which was already being discussed for other reasons. This will be the recommended way to opt in to animation of keywords. Some (but probably not all) documentation has been updated to reflect this change. The calc-size() syntax is kept for three reasons: first, that developers have found other useful ways to use it that aren't about animations; second (related to the first) that the extensible web manifesto argues that we should bias towards exposing internal mechanisms unless there's a good reason not to; and third, that it would be difficult architecturally to support CSS animations where the computed value in the middle can't be represented in CSS syntax. The second issue, where we disagree (see the discussion in the TAG review) is that the TAG thinks that this syntax should be part of the calc() function (with complex limitations on when the sizing keywords can be used) rather than a separate calc-size() function that more clearly presents those limitations. Risks Interoperability and Compatibility No concrete risks. There may be some risk due to the amount of discussion that the feature has had so far, though it has been discussed multiple times in the CSS Working Group, and has had a TAG review. I haven't yet heard back on the standards-positions requests from other vendors, though they've been on file for a few months. *Gecko*: No signal ( https://github.com/mozilla/standards-positions/issues/1022) *WebKit*: No signal ( https://github.com/WebKit/standards-positions/issues/348) *Web developers*: Positive Animation to/from auto height is a very commonly requested feature by developers. See citations and comments in https://github.com/w3c/csswg-drafts/issues/626, https://issues.chromium.org/40339056, and https://bugzilla.mozilla.org/show_bug.cgi?id=571344. Also see the following excitement about the feature since prototyping has started (also see boosts and responses): https://twitter.com/yisibl/status/1791452140663345300 https://twitter.com/Una/status/1791531167558090920 https://front-end.social/@chriscoyier/112575832546969221 https://www.youtube.com/watch?v=1VsMKz4Zweg https://front-end.social/@kizu/112537660977381136 https://blog.kizu.dev/weekly-bookmarks-010/ *Other signals*: WebView application risks Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications? None Debuggability Expected to be similar to existing CSS calc() 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-values/calc-size Flag name on chrome://flagsNone Finch feature namekCSSCalcSizeFunction Requires code in //chrome?False Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=313072 Estimated milestones Shipping on desktop 128 DevTrial on desktop 123 Shipping on Android 128 DevTrial on Android 123 Shipping on WebView 128 Note that the 128 estimate is moderately ambitious, and slipping to 129 may be needed. Anticipated spec changes Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way). I still need to land the spec changes formally defining which properties this works on (i.e., the one line change to the value definition of the relevant properties linking to the substantive spec). I hope to do this in the next week or two. Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5196713071738880?gate=5074705734434816 Links to previous Intent discussionsIntent to prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAG0MU3hBtXebfpW3JSoO-RF43aCCsNK-vZ0uvqoVaBoJbfAT6g%40mail.gmail.com This intent message was generated by Chrome Platform Status <https://chromestatus.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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAG0MU3jD2mFCzFTJ560acs%3DzFQZEDc8%3Dpos%2B%3DUVZitJ27vfFmg%40mail.gmail.com.