@@ -115,23 +115,54 @@ const contentStyles = css`
115115 & : has (details ) {
116116 padding-bottom : 24px ;
117117 }
118+ @media (max-width : 739px ) {
119+ position : relative;
120+ ::before {
121+ position : absolute;
122+ top : 0 ;
123+ right : 10px ;
124+ left : 10px ;
125+ border-top : 1px solid # d9d9d9 ;
126+ content : '' ;
127+ pointer-events : none;
128+ }
129+ ${ from . mobileMedium } {
130+ ::before {
131+ right : 20px ;
132+ left : 20px ;
133+ }
134+ }
135+ }
118136` ;
119137
120138const rowsStyles = css `
139+ --puzzles-gap : 16px ;
121140 display : flex;
122141 min-width : 0 ;
123142 flex-direction : column;
124143 gap : 16px ;
125144 ${ from . phablet } {
145+ --puzzles-gap : 24px ;
126146 gap : 24px ;
127147 }
128148
129149 ${ from . tablet } {
150+ --puzzles-gap : 20px ;
130151 gap : 20px ;
131152 }
153+ > ul ~ ul ::before {
154+ position : absolute;
155+ top : calc (var (--puzzles-gap ) / -2 );
156+ right : 0 ;
157+ left : 0 ;
158+ border-top : 1px solid # d9d9d9 ;
159+ content : '' ;
160+ pointer-events : none;
161+ }
132162` ;
133163
134164const rowStyles = ( variant : PuzzleItem [ 'cardVariant' ] , count : number ) => css `
165+ position : relative;
135166 display : grid;
136167 grid-template-columns : ${ variant === 'compact'
137168 ? 'repeat(2, minmax(0, 1fr))'
@@ -143,13 +174,59 @@ const rowStyles = (variant: PuzzleItem['cardVariant'], count: number) => css`
143174 margin : 0 ;
144175 padding : 0 ;
145176 list-style : none;
177+ > li {
178+ position : relative;
179+ }
180+ > li : nth-child (n + ${ variant === 'compact' ? 3 : 2 } )::before {
181+ position : absolute;
182+ top : calc (var (--puzzles-gap ) / -2 );
183+ right : 0 ;
184+ left : 0 ;
185+ border-top : 1px solid # d9d9d9 ;
186+ content : '' ;
187+ pointer-events : none;
188+ }
189+ ${ variant === 'compact' &&
190+ css `
191+ > li : nth-child (2n)::after {
192+ position : absolute;
193+ top : 0 ;
194+ bottom : 0 ;
195+ left : calc (var (--puzzles-gap ) / -2 );
196+ border-left : 1px solid # d9d9d9 ;
197+ content : '' ;
198+ pointer-events : none;
199+ }
200+ ` }
146201
147202 ${ from . tablet } {
148203 grid-template-columns : ${ variant === 'compact'
149204 ? `repeat(${ Math . min ( count , 4 ) } , minmax(0, 1fr))`
150205 : `repeat(${ Math . min ( count , 2 ) } , minmax(0, 1fr))` } ;
151206 gap : 20px ;
152207 max-width : 700px ;
208+ > li : nth-child (n + ${ variant === 'compact' ? 3 : 2 } )::before ,
209+ > li : nth-child (2n)::after {
210+ content : none;
211+ }
212+ > li : nth-child (
213+ n + ${ Math . min ( count , variant === 'compact' ? 4 : 2 ) + 1 }
214+ )::before {
215+ content : '' ;
216+ }
217+ > li : not (
218+ : nth-child (
219+ ${ Math . min ( count , variant === 'compact' ? 4 : 2 ) } n + 1
220+ )
221+ )::after {
222+ position : absolute;
223+ top : 0 ;
224+ bottom : 0 ;
225+ left : calc (var (--puzzles-gap ) / -2 );
226+ border-left : 1px solid # d9d9d9 ;
227+ content : '' ;
228+ pointer-events : none;
229+ }
153230 }
154231 ${ from . desktop } {
155232 max-width : 940px ;
@@ -266,16 +343,19 @@ const cardImageStyles = (isFeatured: boolean) => css`
266343` ;
267344
268345const nestedGridStyles = css `
346+ --puzzles-gap : 16px ;
269347 display : grid;
270348 grid-template-columns : 1fr ;
271349 gap : 16px ;
272350 ${ from . phablet } {
351+ --puzzles-gap : 24px ;
273352 gap : 24px ;
274353 }
275354
276355 ${ from . tablet } {
277356 grid-template-columns : repeat (12 , minmax (0 , 1fr ));
278357 gap : 20px ;
358+ --puzzles-gap : 20px ;
279359 max-width : 700px ;
280360 }
281361 ${ from . desktop } {
@@ -284,9 +364,33 @@ const nestedGridStyles = css`
284364` ;
285365
286366const nestedStyles = ( span : number ) => css `
367+ position : relative;
287368 min-width : 0 ;
369+ & ~ & ::before {
370+ position : absolute;
371+ top : calc (var (--puzzles-gap ) / -2 );
372+ right : 0 ;
373+ left : 0 ;
374+ border-top : 1px solid # d9d9d9 ;
375+ content : '' ;
376+ pointer-events : none;
377+ }
288378 ${ from . tablet } {
289379 grid-column : span ${ Math . max ( 1 , Math . min ( 12 , span ) ) } ;
380+ & ~ & ::before {
381+ ${ span < 12
382+ ? css `
383+ top : 0 ;
384+ bottom : 0 ;
385+ right : auto;
386+ left : calc (var (--puzzles-gap ) / -2 );
387+ border-top : 0 ;
388+ border-left : 1px solid # d9d9d9 ;
389+ `
390+ : css `
391+ border-top : 1px solid # d9d9d9 ;
392+ ` }
393+ }
290394 }
291395` ;
292396
0 commit comments