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.
+
+
+
+
+ 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=].
+
+
+
+
+
+
+ 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.
-
+
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=].
-
+
- 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:
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