LGTM3 On Fri, Jul 26, 2024 at 6:10 AM David Baron <dba...@chromium.org> wrote:
> The anticipated spec change is now merged > <https://github.com/w3c/csswg-drafts/commit/aa94f650329b2f3096cbeddc6820100b30280baf>, > and the tentative-named WPT tests have been renamed (CL > <https://chromium-review.googlesource.com/c/chromium/src/+/5740910>, WPT > PR <https://github.com/web-platform-tests/wpt/pull/47297>). > > -David > > On Mon, Jul 22, 2024 at 8:19 PM Domenic Denicola <dome...@chromium.org> > wrote: > >> >> >> 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/CAM0wra9pfQDK7gOW2g%3D7rLJqWArR6ueSouaA1OoaSNfNsMxYbQ%40mail.gmail.com.