diff --git a/css-gaps-1/Overview.bs b/css-gaps-1/Overview.bs index 9c291fce43cf..c1d38db2fedd 100644 --- a/css-gaps-1/Overview.bs +++ b/css-gaps-1/Overview.bs @@ -982,7 +982,7 @@ Break behaviors at intersections: The 'column-rule-break', 'row-rule-break', and Adjusting gap decoration endpoints: The 'rule-inset' properties
-		Name: column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end
+		Name: column-rule-inset-cap-start, column-rule-inset-cap-end, column-rule-inset-junction-start, column-rule-inset-junction-end, row-rule-inset-cap-start, row-rule-inset-cap-end, row-rule-inset-junction-start, row-rule-inset-junction-end
 		Value: <>
 		Initial: ''0''
 		Applies to: grid containers, flex containers, multicol containers, and grid lanes containers
@@ -994,18 +994,72 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties
 	These properties can be used to offset the start and end points of gap decorations relative to the
 	segment endpoints which would normally determine where decorations start and end.
 
-	

An edge segment endpoint is any [=segment endpoint=] created at the content edges of the container.

-

An interior segment endpoint is any [=segment endpoint=] created at a [=gap junction=].

+

+ A junction segment endpoint is a [=segment endpoint=] at a [=gap junction=] + where one or more other [=gap decoration segments=] are also present. +

+ +

+ A cap segment endpoint is any [=segment endpoint=] that is not a [=junction segment endpoint=]. + This includes endpoints at the container's content edges, + as well as endpoints at a [=gap junction=] where no other [=gap decoration segment=] is present. +

+ + +
+
+			.simple-grid {
+				rule-break: intersection;
+				rule-visibility-items: between;
+			}
+		
+
+ +
+ In a fully populated grid, every interior [=gap junction=] produces [=junction segment endpoints=] (marked J), + while the container's content edges produce [=cap segment endpoints=] (marked C). +
+
+
+ +
+
+			.simple-grid-with-empty-cells {
+				rule-break: intersection;
+				rule-visibility-items: between;
+			}
+		
+
+ +
+ When a [=gap decoration segment=] terminates at an interior [=gap junction=] + where no other [=gap decoration segment=] is present, + its endpoint is a [=cap segment endpoint=]. +
+
+
+ +
+
+			.donut-grid-layout {
+				rule-break: intersection;
+				rule-visibility-items: between;
+			}
+		
+
+ +
+ In a "donut" grid layout, where items surround an empty space in the middle of the container, + endpoints bordering the empty interior region are [=cap segment endpoints=]. +
+
+
Percentages are resolved against the crossing gap width, defined as follows:
- Edge segment endpoints -
- The [=crossing gap width=] is ''0''. + Segment endpoints at a [=gap junction=] -
- Interior segment endpoints
The [=crossing gap width=] is the size of the [=gap junction=] in the same dimension as the [=gap=] in which the [=segment endpoint=] lies @@ -1017,16 +1071,29 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties However, in cases where [=gaps=] intersect or abut one another at overlapping intervals, the [=crossing gap width=] will be determined by the union of such intervals. See this example for one such case. +
+ Other segment endpoints +
+ The [=crossing gap width=] is ''0''.
+

+ Note: This classification by position is distinct from the + [=cap segment endpoint=] / [=junction segment endpoint=] classification. + A [=cap segment endpoint=] may sit at a container edge or at a [=gap junction=] + (see this example). Hence, + ''column-rule-inset-cap-start: 50%'' resolves to half the [=gap junction=] + size at an interior cap and ''0'' at other caps such as container edges. +

+

- The 'column-rule-edge-inset-start' and 'row-rule-edge-inset-start' properties apply to [=start segment endpoints=] that are [=edge segment endpoints=]. - The 'column-rule-interior-inset-start' and 'row-rule-interior-inset-start' properties apply to [=start segment endpoints=] that are [=interior segment endpoints=]. + The 'column-rule-inset-cap-start' and 'row-rule-inset-cap-start' properties apply to [=start segment endpoints=] that are [=cap segment endpoints=]. + The 'column-rule-inset-junction-start' and 'row-rule-inset-junction-start' properties apply to [=start segment endpoints=] that are [=junction segment endpoints=]. For these properties, positive values offset in the [=end=] direction, and negative values offset in the [=start=] direction, along the axis of the gap.

- The 'column-rule-edge-inset-end' and 'row-rule-edge-inset-end' properties apply to [=end segment endpoints=] that are [=edge segment endpoints=]. - The 'column-rule-interior-inset-end' and 'row-rule-interior-inset-end' properties apply to [=end segment endpoints=] that are [=interior segment endpoints=]. + The 'column-rule-inset-cap-end' and 'row-rule-inset-cap-end' properties apply to [=end segment endpoints=] that are [=cap segment endpoints=]. + The 'column-rule-inset-junction-end' and 'row-rule-inset-junction-end' properties apply to [=end segment endpoints=] that are [=junction segment endpoints=]. For these properties, positive values offset in the [=start=] direction, and negative values offset in the [=end=] direction, along the axis of the gap.

@@ -1048,10 +1115,10 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties - parsing/rule-edge-start-end-inset-computed.html - parsing/rule-edge-start-end-inset-invalid.html - parsing/rule-interior-start-end-inset-computed.html - parsing/rule-interior-start-end-inset-invalid.html + parsing/rule-inset-cap-start-end-computed.html + parsing/rule-inset-cap-start-end-invalid.html + parsing/rule-inset-junction-start-end-computed.html + parsing/rule-inset-junction-start-end-invalid.html flex/flex-gap-decorations-011.html flex/flex-gap-decorations-013.html flex/flex-gap-decorations-014.html @@ -1107,7 +1174,7 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties }
- +
A start inset of ''8px'' recedes the starts of [=gap decorations=], while an end inset of ''0px'' aligns the ends of [=gap decorations=] with content edges. @@ -1118,11 +1185,11 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties
 		Name: column-rule-inset-start, column-rule-inset-end, row-rule-inset-start, row-rule-inset-end
 		Value: <>
-		Applies to: Same as 'column-rule-edge-inset-start', 'column-rule-interior-inset-start', 'column-rule-edge-inset-end', 'column-rule-interior-inset-end', 'row-rule-edge-inset-start', 'row-rule-interior-inset-start', 'row-rule-edge-inset-end', and 'row-rule-interior-inset-end'
+		Applies to: Same as 'column-rule-inset-cap-start', 'column-rule-inset-junction-start', 'column-rule-inset-cap-end', 'column-rule-inset-junction-end', 'row-rule-inset-cap-start', 'row-rule-inset-junction-start', 'row-rule-inset-cap-end', and 'row-rule-inset-junction-end'
 	
- These [=shorthand properties=] set the corresponding ''-edge-'' and ''-interior-'' properties to the same value. - For example, 'column-rule-inset-start' sets both 'column-rule-edge-inset-start' and 'column-rule-interior-inset-start' to the same value. + These [=shorthand properties=] set the corresponding ''-cap-'' and ''-junction-'' properties to the same value. + For example, 'column-rule-inset-start' sets both 'column-rule-inset-cap-start' and 'column-rule-inset-junction-start' to the same value.
 		Name: rule-inset-start
@@ -1148,63 +1215,63 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties
 		parsing/rule-inset-start-end-valid.html
 	
 
-	

- ''-edge-'' and ''-interior-'' shorthands

+

+ ''-cap-'' and ''-junction-'' shorthands

- These shorthands allow authors to achieve different treatments at edge versus interior intersections. + These shorthands allow authors to achieve different treatments at [=cap segment endpoints=] versus [=junction segment endpoints=].
-			.inset-edge-0px-interior-negative-5px {
-				column-rule-edge-inset: 0px;
-				column-rule-interior-inset: -5px;
+			.inset-cap-0px-inset-junction-negative-5px {
+				column-rule-inset-cap: 0px;
+				column-rule-inset-junction: -5px;
 				column-rule-break: intersection;
 			}
 		
- +
- An interior inset of ''-5px'' extends the endpoints of interior gap decorations - slightly beyond the edges of adjacent items. An edge inset of ''0px'' aligns the endpoints of edge gap decorations - with the content edges. + A junction inset of ''-5px'' extends the endpoints of gap decorations at [=junction segment endpoints=] + slightly beyond the edges of adjacent items. A cap inset of ''0px'' aligns the endpoints of gap decorations + at [=cap segment endpoints=] with the content edges.
-		Name: column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, row-rule-interior-inset
+		Name: column-rule-inset-cap, column-rule-inset-junction, row-rule-inset-cap, row-rule-inset-junction
 		Value: <> [ <> ]?
-		Applies to: Same as 'column-rule-edge-inset-start', 'column-rule-edge-inset-end', 'column-rule-interior-inset-start', 'column-rule-interior-inset-end', 'row-rule-edge-inset-start', 'row-rule-edge-inset-end', 'row-rule-interior-inset-start', and 'row-rule-interior-inset-end'
+		Applies to: Same as 'column-rule-inset-cap-start', 'column-rule-inset-cap-end', 'column-rule-inset-junction-start', 'column-rule-inset-junction-end', 'row-rule-inset-cap-start', 'row-rule-inset-cap-end', 'row-rule-inset-junction-start', and 'row-rule-inset-junction-end'
 	
These shorthands set the corresponding ''-start'' and ''-end'' properties. - For example, 'column-rule-edge-inset' sets both 'column-rule-edge-inset-start' and 'column-rule-edge-inset-end'. + For example, 'column-rule-inset-cap' sets both 'column-rule-inset-cap-start' and 'column-rule-inset-cap-end'. If one value is specified, both properties are set to that value. If two values are specified, ''-start'' is set to the first and ''-end'' is set to the second.
-		Name: rule-edge-inset
-		Value: <<'column-rule-edge-inset'>>
-		Applies to: Same as 'column-rule-edge-inset' and 'row-rule-edge-inset'
+		Name: rule-inset-cap
+		Value: <<'column-rule-inset-cap'>>
+		Applies to: Same as 'column-rule-inset-cap' and 'row-rule-inset-cap'
 	
- This [=shorthand property=] sets 'column-rule-edge-inset' and 'row-rule-edge-inset' to the same value. + This [=shorthand property=] sets 'column-rule-inset-cap' and 'row-rule-inset-cap' to the same value.
-		Name: rule-interior-inset
-		Value: <<'column-rule-interior-inset'>>
-		Applies to: Same as 'column-rule-interior-inset' and 'row-rule-interior-inset'
+		Name: rule-inset-junction
+		Value: <<'column-rule-inset-junction'>>
+		Applies to: Same as 'column-rule-inset-junction' and 'row-rule-inset-junction'
 	
- This [=shorthand property=] sets 'column-rule-interior-inset' and 'row-rule-interior-inset' to the same value. + This [=shorthand property=] sets 'column-rule-inset-junction' and 'row-rule-inset-junction' to the same value. - parsing/rule-edge-inset-bidirectional-shorthand.html - parsing/rule-edge-interior-inset-computed.html - parsing/rule-edge-interior-inset-invalid.html - parsing/rule-edge-interior-inset-shorthand.html - parsing/rule-edge-interior-inset-valid.html - parsing/rule-interior-inset-bidirectional-shorthand.html + parsing/rule-inset-cap-bidirectional-shorthand.html + parsing/rule-inset-cap-junction-computed.html + parsing/rule-inset-cap-junction-invalid.html + parsing/rule-inset-cap-junction-shorthand.html + parsing/rule-inset-cap-junction-valid.html + parsing/rule-inset-junction-bidirectional-shorthand.html

@@ -1282,19 +1349,19 @@ Adjusting gap decoration endpoints: The 'rule-inset' properties

 		Name: column-rule-inset, row-rule-inset
-		Value: <<'column-rule-edge-inset'>> [ / <<'column-rule-interior-inset'>> ]?
-		Applies to: Same as 'column-rule-edge-inset', 'column-rule-interior-inset', 'row-rule-edge-inset', and 'row-rule-interior-inset'
+		Value: <<'column-rule-inset-cap'>> [ / <<'column-rule-inset-junction'>> ]?
+		Applies to: Same as 'column-rule-inset-cap', 'column-rule-inset-junction', 'row-rule-inset-cap', and 'row-rule-inset-junction'
 	
- These shorthands set the corresponding edge and interior start and end values. + These shorthands set the corresponding cap and junction start and end values. The order of values is:
-		edge-start edge-end? [/ interior-start interior-end?]?
+		cap-start cap-end? [/ junction-start junction-end?]?
 	
Omitted values are filled in as follows:
    -
  1. If the interior values are omitted, they are copied from the edge values. +
  2. If the junction values are omitted, they are copied from the cap values.
  3. Any omitted end value is copied from the corresponding start value.
@@ -2501,6 +2568,8 @@ Changes since the 2
  • Moved the [[#gaps|gap]] properties from [[!CSS-ALIGN-3]] to this specification. (Issue 13089)
  • Updated with links to additional WPTs. +
  • Updated edge and interior insets to be cap and junction insets. + (Issue 13697)
  • Clarified that gaps suppressed due to fragmentation still consume gap decoration values. (Issue 13754) diff --git a/css-gaps-1/images/example-cap-junct-donut-grid.png b/css-gaps-1/images/example-cap-junct-donut-grid.png new file mode 100644 index 000000000000..1a3aa258a138 Binary files /dev/null and b/css-gaps-1/images/example-cap-junct-donut-grid.png differ diff --git a/css-gaps-1/images/example-cap-junct-less-simple-grid.png b/css-gaps-1/images/example-cap-junct-less-simple-grid.png new file mode 100644 index 000000000000..2e67d2cecf94 Binary files /dev/null and b/css-gaps-1/images/example-cap-junct-less-simple-grid.png differ diff --git a/css-gaps-1/images/example-cap-junct-simple-grid.png b/css-gaps-1/images/example-cap-junct-simple-grid.png new file mode 100644 index 000000000000..3d4daa7704b4 Binary files /dev/null and b/css-gaps-1/images/example-cap-junct-simple-grid.png differ diff --git a/css-gaps-1/images/example-column-interior-inset-5px.png b/css-gaps-1/images/example-column-inset-junction-5px.png similarity index 100% rename from css-gaps-1/images/example-column-interior-inset-5px.png rename to css-gaps-1/images/example-column-inset-junction-5px.png diff --git a/css-gaps-1/images/example-column-start-end-edge-interior-insets.png b/css-gaps-1/images/example-column-inset-start-end.png similarity index 100% rename from css-gaps-1/images/example-column-start-end-edge-interior-insets.png rename to css-gaps-1/images/example-column-inset-start-end.png