66 Lookbook/examples so the item surface colours are visible. Remove when
77 the component is used on a real page with its own background. */
88.v3-examples-section__example-box : has (.library-item-list ) {
9- background : # F7FDFE ;
9+ background : var ( --color-surface-mid ) ;
1010}
1111
12- /* ---------- Base / reset ---------- */
12+ /* ---------- Containers ---------- */
1313
1414.library-item-list {
1515 list-style : none;
1616 margin : 0 ;
1717 padding : 0 ;
1818 display : grid;
19- grid-template-columns : 160px 3 fr minmax ( 180 px , 2fr ) minmax ( 180 px , 2 fr ) auto auto;
19+ grid-template-columns : 160px 2fr 1 fr 1 fr 1 fr auto;
2020 column-gap : var (--space-xl );
2121 max-width : 1408px ;
2222 width : 100% ;
2323}
2424
25- .library-item {
26- box-sizing : border-box;
25+ .library-item-card-grid {
26+ display : grid;
27+ grid-template-columns : repeat (auto-fill, minmax (340px , 1fr ));
28+ gap : var (--space-large );
2729}
2830
29- .library-item p {
30- margin : 0 ;
31- padding : 0 ;
31+ @media (max-width : 1024px ) {
32+ .library-item-card-grid {
33+ grid-template-columns : repeat (auto-fill, minmax (320px , 1fr ));
34+ }
3235}
3336
3437/* ---------- Shared element styles ---------- */
@@ -47,11 +50,16 @@ a.library-item__name:hover {
4750 text-decoration : underline;
4851}
4952
53+ .library-item p {
54+ margin : 0 ;
55+ padding : 0 ;
56+ }
57+
5058.library-item__description {
5159 font-size : var (--font-size-small );
5260 font-weight : var (--font-weight-regular );
5361 line-height : var (--line-height-default );
54- letter-spacing : -0.14 px ; /* no matching design token available */
62+ letter-spacing : var ( --letter-spacing-tight );
5563 color : var (--color-text-secondary );
5664}
5765
@@ -75,12 +83,16 @@ a.library-item__name:hover {
7583
7684.library-item__cpp-version--desktop {
7785 display : inline-flex;
86+ width : fit-content;
87+ justify-self : center;
7888}
7989
8090/* ==========================================================================
81- List variant — horizontal row (desktop)
91+ List variant
8292 ========================================================================== */
8393
94+ /* ---------- Desktop ---------- */
95+
8496.library-item--list {
8597 display : grid;
8698 grid-column : 1 / -1 ;
@@ -102,12 +114,13 @@ a.library-item__name:hover {
102114 display : flex;
103115 flex-wrap : wrap;
104116 align-items : center;
117+ justify-self : start;
105118 gap : var (--space-s );
106119}
107120
108121.library-item--list .library-item__contributor {
109122 display : flex;
110- align-items : center ;
123+ align-items : start ;
111124 gap : var (--space-default );
112125}
113126
@@ -121,91 +134,27 @@ a.library-item__name:hover {
121134 margin-left : var (--space-xl );
122135}
123136
124- /* ---------- Card grid — equal-width columns, equal-height rows ---------- */
125-
126- .library-item-card-grid {
127- display : grid;
128- grid-template-columns : repeat (auto-fill, minmax (280px , 1fr ));
129- gap : var (--space-large );
130- }
131-
132- /* ==========================================================================
133- Card variant — vertical stack
134- ========================================================================== */
135-
136- .library-item--card {
137- display : grid;
138- grid-template-columns : 1fr auto;
139- column-gap : var (--space-large );
140- width : 100% ;
141- border-radius : var (--border-radius-xl );
142- border : 1px solid var (--color-stroke-weak );
143- background : var (--color-surface-weak );
144- padding : var (--space-large );
145- }
146-
147- .library-item--card .library-item__header {
148- grid-column : 1 ;
149- grid-row : 1 ;
150- display : flex;
151- flex-direction : column;
152- gap : var (--space-large );
153- }
154-
155- .library-item--card .library-item__actions {
156- grid-column : 2 ;
157- grid-row : 1 ;
158- display : flex;
159- align-items : start;
160- justify-content : end;
161- }
162-
163- .library-item--card .library-item__cpp-version--desktop {
164- display : none;
165- }
166-
167- .library-item--card .library-item__cpp-version {
168- display : inline-flex;
169- }
170-
171- .library-item--card .library-item__tags {
172- display : flex;
173- flex-wrap : wrap;
174- align-items : center;
175- gap : var (--space-s );
176- }
177-
178- .library-item--card .library-item__contributor {
179- grid-column : 1 / -1 ;
180- grid-row : 2 ;
181- display : flex;
182- align-items : center;
183- gap : var (--space-default );
184- margin-top : auto;
185- padding-top : var (--space-large );
186- }
187-
188- /* ==========================================================================
189- Tablet (≤ 1024px)
190- ========================================================================== */
137+ /* ---------- Tablet (≤ 1024px) ---------- */
191138
192139@media (max-width : 1024px ) {
193140 .library-item-list {
194- grid-template-columns : 120 px 2fr minmax ( 100 px , 1fr ) minmax ( 140 px , 1fr ) min-content auto;
141+ grid-template-columns : auto 2fr 1fr 1fr min-content auto;
195142 /* Figma specifies --space-large here, but long descriptions cause overflow
196143 at tablet widths. Using --space-default until content constraints are
197144 defined. */
198145 column-gap : var (--space-default );
199146 }
200147
148+ .library-item--list .user-profile {
149+ align-items : normal;
150+ }
151+
201152 .library-item--list .library-item__actions > .btn-icon-library {
202153 margin-left : var (--space-default );
203154 }
204155}
205156
206- /* ==========================================================================
207- Mobile (≤ 767px) — list items switch to card-like layout
208- ========================================================================== */
157+ /* ---------- Mobile (≤ 767px) — switches to card-like layout ---------- */
209158
210159@media (max-width : 767px ) {
211160 .library-item-list {
@@ -217,6 +166,7 @@ a.library-item__name:hover {
217166 .library-item--list {
218167 display : grid;
219168 grid-template-columns : 1fr auto;
169+ row-gap : var (--space-medium );
220170 border-bottom : 1px solid var (--color-stroke-weak );
221171 border-radius : 0 ;
222172 background : var (--color-surface-weak );
@@ -242,20 +192,14 @@ a.library-item__name:hover {
242192 grid-row : 1 ;
243193 display : flex;
244194 flex-direction : column;
245- gap : var (--space-default );
246-
247- padding-bottom : 0 ;
195+ gap : var (--space-card );
248196 }
249197
250198 /* Actions — doc icon only, top-right */
251199 .library-item--list .library-item__actions {
252200 grid-column : 2 ;
253201 grid-row : 1 ;
254- display : flex;
255- align-items : start;
256- justify-content : end;
257202 min-width : unset;
258- padding : 0 ;
259203 }
260204
261205 /* Version tag swap — hide desktop, show mobile (inline with tags) */
@@ -271,38 +215,86 @@ a.library-item__name:hover {
271215 .library-item--list .library-item__tags {
272216 grid-column : 1 / -1 ;
273217 grid-row : 2 ;
274- display : flex;
275- flex-wrap : wrap;
276- align-items : center;
277- gap : var (--space-s );
278-
279218 }
280219
281220 /* Contributor — full width, bottom */
282221 .library-item--list .library-item__contributor {
283222 grid-column : 1 / -1 ;
284223 grid-row : 3 ;
285- display : flex;
286- align-items : center;
287- gap : var (--space-default );
288- border-top : none;
289-
290224 margin-top : auto;
291225 }
226+ }
292227
293- /* ---------- Card variant — mobile overrides ---------- */
228+ /* ==========================================================================
229+ Card variant
230+ ========================================================================== */
294231
295- .library-item--card {
296- max-width : none;
297- padding : var (--space-large );
298- gap : var (--space-large );
232+ /* ---------- Desktop ---------- */
233+
234+ .library-item--card {
235+ display : grid;
236+ grid-template-columns : 1fr auto;
237+ column-gap : var (--space-large );
238+ width : 100% ;
239+ border-radius : var (--border-radius-xl );
240+ border : 1px solid var (--color-stroke-mid );
241+ background : var (--color-surface-weak );
242+ padding : var (--space-large );
243+ }
244+
245+ .library-item--card .library-item__header {
246+ grid-column : 1 ;
247+ grid-row : 1 ;
248+ display : flex;
249+ flex-direction : column;
250+ gap : var (--space-large );
251+ }
252+
253+ .library-item--card .library-item__actions {
254+ grid-column : 2 ;
255+ grid-row : 1 ;
256+ display : flex;
257+ align-items : start;
258+ justify-content : end;
259+ }
260+
261+ .library-item--card .library-item__cpp-version--desktop {
262+ display : none;
263+ }
264+
265+ .library-item--card .library-item__cpp-version {
266+ display : inline-flex;
267+ }
268+
269+ .library-item--card .library-item__tags {
270+ display : flex;
271+ flex-wrap : wrap;
272+ align-items : center;
273+ gap : var (--space-s );
274+ }
275+
276+ .library-item--card .library-item__contributor {
277+ grid-column : 1 / -1 ;
278+ grid-row : 2 ;
279+ display : flex;
280+ align-items : center;
281+ gap : var (--space-default );
282+ margin-top : auto;
283+ padding-top : var (--space-large );
284+ }
285+
286+ /* ---------- Mobile (≤ 767px) ---------- */
287+
288+ @media (max-width : 767px ) {
289+ .library-item-card-grid {
290+ gap : var (--space-medium );
299291 }
300292
301- .library-item--card .library-item__header ,
302- .library-item--card .library-item__actions ,
303- .library-item--card .library-item__tags ,
304- .library-item--card .library-item__contributor {
305- padding : 0 ;
293+ .library-item--card .library-item__header {
294+ gap : var (--space-card );
306295 }
307296
297+ .library-item--card .library-item__contributor {
298+ padding-top : var (--space-card );
299+ }
308300}
0 commit comments