From b3db709bc6802c86f31340cc90dfe418f4c6c618 Mon Sep 17 00:00:00 2001 From: Tab Atkins-Bittner Date: Thu, 10 Oct 2019 14:16:47 -0700 Subject: [PATCH] [css-sizing-4] Define the intrinsic-* family of sizing properties. Closes #4229. --- css-sizing-4/Overview.bs | 98 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/css-sizing-4/Overview.bs b/css-sizing-4/Overview.bs index 0be46f5c863..c28d15bea0a 100644 --- a/css-sizing-4/Overview.bs +++ b/css-sizing-4/Overview.bs @@ -604,6 +604,104 @@ Max-content Sizes in Constrained-height Multi-column Layout this approximation collapses to simply doing a layout, and measuring the resulting columns. + + +

+Intrinsic Size Contributions

+ + A box’s min-content contribution/max-content contribution in each axis + is the size of the content box + of a hypothetical ''width/auto''-sized float + that contains only that box, + if that hypothetical float's containing block is zero-sized/infinitely-sized. + + However, if the box has an [=explicit intrinsic inner size=] in an axis, + then the box's [=automatic size=] in that axis + is calculated by assuming the [=explicit intrinsic inner size=] + as its [=inner size=] in that axis. + + Note: This specification does not define precisely how to determine these sizes. + Please refer to [[CSS2]], + the relevant CSS specification for that display type, + the rules for handling percentages (below), + and/or existing implementations + for further details. + + +

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

+ +
+	Name: intrinsic-block-size, intrinsic-inline-size, intrinsic-height, intrinsic-width
+	Value: legacy | auto | <>
+	Initial: legacy
+	Inherited: no
+	Applies to: all elements except [=non-replaced=] [=inlines=]
+	Computed value: as specified, with <> values computed
+	Percentages: relative to width/height of [=containing block=]
+	Animation type: by computed value type
+	
+ + The 'intrinsic-*' properties determine + whether the [=intrinsic size contributions=] of a box + are calculated from sizes derived from its content + or from a specified explicit intrinsic inner size. + See [[#intrinsic-contribution]]. + Values are defined as follows: + +
+ : legacy + :: + Does not specify an [=explicit intrinsic inner size=] of the box + in the relevant axis. + (Intrinsic size contribution are thus determined in various ways + based on examining the content of the box as usual. + See [[#intrinsic]], for example.) + + + : auto + :: + If 'overflow' is not ''visible'' in the relevant axis, + specifies a zero [=explicit intrinsic inner size=] + in that axis. + Otherwise same as ''legacy''. + + : <> + :: + Specifies an [=explicit intrinsic inner size=] + in the relevant 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. + + + + +

Extrinsic Size Determination