Contact [email protected] Specificationhttps://drafts.csswg.org/css-sizing-4/#intrinsic-size-override
Summary This feature is a result of a CSSWG resolution: https://github.com/w3c/csswg-drafts/issues/8407#issuecomment-1440466558 content-visibility: auto is a property that can be used to optimize rendering of off-screen content. However, when rendering is optimized it also means that the size of the element cannot be determined using the descendant information. This is done with size containment. As a result, contain-intrinsic-size was added to help with this. When content-visibility: auto skips contents, contain-intrinsic-size determines its size (roughly as if it had a single child of specified size). contain-intrinsic-size also has an option to add an "auto" keyword which means "if the element has been previously rendered, then use that size; if not, use the specified size". This helps with layout stability by ensuring that elements that come into the viewport and then leave remain the same size as before. This feature tracks forcing contain-intrinsic-size: auto if content-visibility's value is auto. Blink componentBlink>Paint <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EPaint> TAG reviewNone TAG review statusNot applicable Risks Interoperability and Compatibility There is a risk of interoperability here, since this changes the behavior of content-visibility: auto and contain-intrinsic-size interaction. Specifically, this forces the layout size of content-visibility: auto elements to be different after it becomes relevant to the user, even when the element starts skipping contents once again. Note that the developer does not have to specify contain-intrinsic-size values, since the default value of "none" can also gain the "auto" keyword. Although this risk exists, I believe the change is for the better, since the ability to size things appropriately under content-visibility has been a challenging piece of content-visibility adoption. Out of httparchive sites that use contain-intrinsic-size, roughly half already use "auto" variety. *Gecko*: Shipped/Shipping ( https://hg.mozilla.org/mozilla-central/rev/af2192d1c537) *WebKit*: No signal ( https://github.com/WebKit/standards-positions/issues/228) *Web developers*: No signals ( https://github.com/WebKit/standards-positions/issues/228) *Other signals*: Ergonomics This feature makes adoption of content-visibility: auto more straightforward, since off-screen element sizing becomes easier to deal with. Activation There are no activation risks. Security There are no security risks with this feature, since it deals with CSS and Layout sizing. 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 This feature uses CSS and is debuggable as any other CSS feature would be. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, 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 Flag name on chrome://flags Finch feature nameCSSContentVisibilityImpliesContainIntrinsicSizeAuto Requires code in //chrome?False Tracking bughttps://bugs.chromium.org/p/chromium/issues/detail?id=1418453 Estimated milestones Shipping on desktop 117 Shipping on Android 117 Shipping on WebView 117 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). None Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5111301323358208 Links to previous Intent discussions 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 [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2O%2BSqOgApPCGaASgH6ZLKaxFjVUy5fpZ58EyLc%2BO8xVXw%40mail.gmail.com.
