diff --git a/css-sizing-4/Overview.bs b/css-sizing-4/Overview.bs index 96d2e400409e..30c0be048e00 100644 --- a/css-sizing-4/Overview.bs +++ b/css-sizing-4/Overview.bs @@ -612,69 +612,57 @@ Max-content Sizes in Constrained-height Multi-column Layout

-Overriding Intrinsic Sizes: the 'intrinsic-*' properties

+Overriding Contained Intrinsic Sizes: the 'contain-intrinsic-size' property
-	Name: intrinsic-block-size, intrinsic-inline-size, intrinsic-height, intrinsic-width
-	Value: legacy | auto | <>
-	Initial: legacy
+	Name: contain-intrinsic-size
+	Value: none | <>{1,2}
+	Initial: none
 	Inherited: no
-	Applies to: all elements except [=non-replaced=] [=inlines=]
-	Computed value: as specified, with <> values computed
+	Applies to: elements with [=size containment=]
+	Computed value: as specified, with <> values computed
 	Percentages: n/a
 	Animation type: by computed value type
 	
- - The 'intrinsic-*' properties determine - whether the [=intrinsic sizes=] of a box - are calculated from sizes derived from its content - (as defined by the rest of this chapter), - or from a specified explicit intrinsic inner size. - Values are defined as follows: - -
- : legacy - :: - Does not specify an [=explicit intrinsic inner size=] of the box - in the relevant axis. - (Intrinsic sizes are thus determined in various ways - based on examining the content of the box as usual. - See [[#intrinsic]], for example.) - - - : auto + + This property allows elements with [=size containment=] to specify + an explicit intrinsic inner size, + causing the box to size as if it had contents + with a combined width and height + matching the specified [=explicit intrinsic inner size=] + (rather than sizing as if it were empty). + + Note: An element with [=size containment=] is laid out as if it had no contents [[!CSS-CONTAIN-1]], + which in many cases this will cause the element to collapse to zero inner height. + This can be corrected with an explicit 'height' chosen to show the expected contents, + but that can have unintended effects in some layout systems, + such as Flex and Grid Layout, + which treat an explicit 'height' as a stronger command + than an implicit content-based height. + The element thus might lay out substantially differently than it would have + were it simply filled with content up to that height. + Providing an [=explicit intrinsic inner size=] for the element + preserves the performance benefits of ignoring its contents for layout + while still allowing it to size as if it had content. + + Values are defined as: + +
+ : none :: - If 'overflow' is not ''visible'' in the relevant axis, - specifies a zero [=explicit intrinsic inner size=] - in that axis. - Otherwise same as ''legacy''. + Does not specify an [=explicit intrinsic inner size=] + for elements with [=size containment=]. - : <> + : <>{2} :: - Specifies an [=explicit intrinsic inner size=] - in the relevant axis. + If the element has [=size containment=], + specifies an [=explicit intrinsic inner size=]. + The first <> provides the inner width of the element, + the second provides the inner height. + If the second <> is omitted, + it defaults to the same value as the first.
- Note: The value of 'intrinsic-*' in one axis has no affect on the other axis. - -
-	Name: intrinsic-size
-	Value: <<'intrinsic-width'>> <<'intrinsic-height'>>?
-	
- - The 'intrinsic-size' property is a [=shorthand=] - for setting all the 'intrinsic-*' properties in one declaration. - - The first value sets 'intrinsic-width', - and the second value sets 'intrinsic-height'. - If the second value is omitted, - it defaults to the first. - - Issue: When we figure out how to make other physical x/y shorthands, - like 'background-size', - work with logical sizes, - we'll apply the same logic here. -