This came up while @oSamDavis @jav099 and I were discussing implementation of rule-inset: overlap-join which we resolved to add in #13137.
The intent of that value is to give authors an easy way to join decoration segments neatly with each other. Where two perpendicular segments meet, it's equivalent to rule-inset: calc( -(50% + crossing_decoration_width/2) ) or in English, "halfway into the intersection, plus enough to cover the remaining width of the crossing decoration":
But there's an edge case that arises when this value is used with rule-visibility-items: between. That value causes us to paint decorations only where there are items on both sides of the gap. The calc() treatment above would lead to decorations still protruding into intersections even when there's no crossing decoration for it to join:
My initial reaction was that we should not do that and instead leave such decorations flush with the adjacent items, which would be equivalent to an inset of 0 at those specific endpoints. But I'm somewhat worried that behavior might be too magical. What do folks think?
This came up while @oSamDavis @jav099 and I were discussing implementation of
rule-inset: overlap-joinwhich we resolved to add in #13137.The intent of that value is to give authors an easy way to join decoration segments neatly with each other. Where two perpendicular segments meet, it's equivalent to
rule-inset: calc( -(50% + crossing_decoration_width/2) )or in English, "halfway into the intersection, plus enough to cover the remaining width of the crossing decoration":But there's an edge case that arises when this value is used with
rule-visibility-items: between. That value causes us to paint decorations only where there are items on both sides of the gap. Thecalc()treatment above would lead to decorations still protruding into intersections even when there's no crossing decoration for it to join:My initial reaction was that we should not do that and instead leave such decorations flush with the adjacent items, which would be equivalent to an inset of
0at those specific endpoints. But I'm somewhat worried that behavior might be too magical. What do folks think?