Re: [csswg-drafts] [css-gaps-1] Gap intersections for multicol containers (#12784)

If we resolve on the behavior above, which seems to have some degree of consensus so far, there remain a few open questions to consider.

## Crossing gap width to resolve percentage-based outsets/insets

Recently, we resolved to always use the values of `row-gap` and `column-gap` for all intersections’ *crossing gap width*.  
Previously, we used a *crossing gap width* of `0` for all intersections at the content edge.  
See: https://github.com/w3c/csswg-drafts/issues/12024#issuecomment-3206577879.

It’s important to keep in mind that the default value for the `inset` properties is `-50%` for this reason ([more on why `-50%`](https://github.com/w3c/csswg-drafts/issues/12848)): so that, in an example like the following,

```css
.grid { gap: 10px; column-rule-break: intersection; }
```

<img width="557" height="546" alt="Image" src="https://github.com/user-attachments/assets/f973e976-6004-4c65-b4c9-22942d4b2a6f" />

*Figure 1: Example of `rule-break: intersection` in a grid container.*

However, in multicol — with the behavior discussed in the comments above — this would cause an example like:

```css
.multicol { column-wrap: wrap; gap: 10px; column-rule-break: intersection; }
```

to behave the same as the grid image above, rather than like [option 1 from the earlier proposal](https://github.com/w3c/csswg-drafts/issues/12784#issue-3408224914), where column gap decorations stop just before the row gap instead of flowing *into* it.

---

### Potential solutions

If we want to maintain the behavior from [option 1 in the earlier proposal](https://github.com/w3c/csswg-drafts/issues/12784#issue-3408224914), there are a few possible approaches:

#### 1. Crossing gap width resolves to `0` in such cases

We could decide to resolve the *crossing gap width* to `0` in cases like the multicol example described above, and potentially for flex as well.  
This makes some intuitive sense, since intersections in those contexts don’t actually have crossing gaps.  
However, this could be confusing to authors, who might wonder why percentage-based `outset` values appear to have no effect in multicol or flex but do in grid.  
(Somewhat relatedly, @kbabbitt has floated the idea that percentages could instead resolve relative to the *height of the decoration* rather than the *crossing gap width*, which would address this concern.)

#### 2. Change the default value of the `inset` properties to a keyword

Another option would be to change the default value of `inset` from `-50%` to a keyword such as `auto`, which would resolve differently depending on the container type.  
For example, in a multicol container it could resolve to `0`, while in grid it would resolve to `-50%`.  
This would preserve consistency with [option 1 in the earlier proposal](https://github.com/w3c/csswg-drafts/issues/12784#issue-3408224914) while still allowing percentages to resolve relative to the *crossing gap width* (i.e., `row-gap` or `column-gap`).

#### 3. No change

We could simply make no change and continue letting the `inset` properties resolve to `-50%` in multicol containers, as in other containers.  
If the author doesn’t specify a `rule-break`, this would remain consistent with [option 1 in the earlier proposal](https://github.com/w3c/csswg-drafts/issues/12784#issue-3408224914).  
However, we’d need to accept that when an author *does* specify `rule-break: intersection` in a multicol container, it would produce the behavior shown in Figure 1 above.


-- 
GitHub Notification of comment by jav099
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/12784#issuecomment-3499030250 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Thursday, 6 November 2025 19:21:14 UTC