On Tue, Jul 16, 2024 at 12:23 AM David Baron <dba...@chromium.org> wrote:
> 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. > Any updates on this anticipated spec change to share? > > > 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 > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAG0MU3jD2mFCzFTJ560acs%3DzFQZEDc8%3Dpos%2B%3DUVZitJ27vfFmg%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/CAM0wra_z68Y-nW-c9wcD70jTy9bv49j-Q_jYCyro8Ye-6AJMLw%40mail.gmail.com.