@24vlh/vds 0.1.10 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/components/action-bar.css +111 -0
  2. package/dist/components/action-bar.min.css +1 -0
  3. package/dist/components/authoring.css +262 -42
  4. package/dist/components/authoring.min.css +1 -1
  5. package/dist/components/avatar.css +229 -0
  6. package/dist/components/avatar.min.css +1 -0
  7. package/dist/components/badge-tag.css +235 -0
  8. package/dist/components/badge-tag.min.css +1 -0
  9. package/dist/components/buttons.css +90 -98
  10. package/dist/components/buttons.min.css +1 -1
  11. package/dist/components/command.css +846 -2
  12. package/dist/components/command.min.css +1 -1
  13. package/dist/components/content-blocks.css +328 -6
  14. package/dist/components/content-blocks.min.css +1 -1
  15. package/dist/components/description-list.css +117 -0
  16. package/dist/components/description-list.min.css +1 -0
  17. package/dist/components/flows.css +60 -47
  18. package/dist/components/flows.min.css +1 -1
  19. package/dist/components/header-footer.css +178 -18
  20. package/dist/components/header-footer.min.css +1 -1
  21. package/dist/components/hero.css +148 -14
  22. package/dist/components/hero.min.css +1 -1
  23. package/dist/components/icons.css +23 -11
  24. package/dist/components/icons.min.css +1 -1
  25. package/dist/components/inbox.css +5 -0
  26. package/dist/components/inbox.min.css +1 -1
  27. package/dist/components/navigation.css +67 -7
  28. package/dist/components/navigation.min.css +1 -1
  29. package/dist/components/overlays.css +121 -19
  30. package/dist/components/overlays.min.css +1 -1
  31. package/dist/components/progress.css +322 -0
  32. package/dist/components/progress.min.css +1 -0
  33. package/dist/components/skeleton.css +22 -3
  34. package/dist/components/skeleton.min.css +1 -1
  35. package/dist/components/state.css +172 -0
  36. package/dist/components/state.min.css +1 -0
  37. package/dist/components/tables.css +93 -15
  38. package/dist/components/tables.min.css +1 -1
  39. package/dist/components/tabs.css +116 -4
  40. package/dist/components/tabs.min.css +1 -1
  41. package/dist/components/toasts.css +115 -41
  42. package/dist/components/toasts.min.css +1 -1
  43. package/dist/components/tooltips-popovers.css +135 -93
  44. package/dist/components/tooltips-popovers.min.css +1 -1
  45. package/dist/components/utilities.css +37 -3
  46. package/dist/components/utilities.min.css +1 -1
  47. package/dist/core.css +43 -21
  48. package/dist/core.min.css +1 -1
  49. package/dist/identity.css +107 -1
  50. package/dist/identity.min.css +1 -1
  51. package/dist/vds.css +5432 -1775
  52. package/dist/vds.min.css +1 -1
  53. package/package.json +1 -1
@@ -64,6 +64,13 @@
64
64
  color: var(--color-text-muted);
65
65
  }
66
66
 
67
+ .table-panel__actions {
68
+ display: flex;
69
+ align-items: center;
70
+ gap: var(--space-2);
71
+ flex-wrap: wrap;
72
+ }
73
+
67
74
  /* ---------------------------------------------------------
68
75
  3. BASE TABLE STRUCTURE
69
76
  --------------------------------------------------------- */
@@ -80,6 +87,10 @@
80
87
  --table-cell-font-size: var(--text-sm);
81
88
  }
82
89
 
90
+ .table--fixed {
91
+ table-layout: fixed;
92
+ }
93
+
83
94
  .table th,
84
95
  .table td {
85
96
  padding: var(--table-cell-pad-y) var(--table-cell-pad-x);
@@ -98,6 +109,32 @@
98
109
  font-size: var(--text-sm);
99
110
  }
100
111
 
112
+ .table-cell--right {
113
+ text-align: right;
114
+ }
115
+
116
+ .table-cell--center {
117
+ text-align: center;
118
+ }
119
+
120
+ .table-cell--muted {
121
+ color: var(--color-text-muted);
122
+ }
123
+
124
+ .table-cell--strong {
125
+ font-weight: 600;
126
+ }
127
+
128
+ .table-cell--nowrap {
129
+ white-space: nowrap;
130
+ }
131
+
132
+ .table-cell--truncate {
133
+ white-space: nowrap;
134
+ overflow: hidden;
135
+ text-overflow: ellipsis;
136
+ }
137
+
101
138
  .table caption {
102
139
  caption-side: top;
103
140
  text-align: left;
@@ -178,6 +215,11 @@
178
215
  text-overflow: ellipsis;
179
216
  }
180
217
 
218
+ .table--nowrap th,
219
+ .table--nowrap td {
220
+ white-space: nowrap;
221
+ }
222
+
181
223
  /* ---------------------------------------------------------
182
224
  6. STICKY HEADER / COL
183
225
  --------------------------------------------------------- */
@@ -196,37 +238,56 @@
196
238
  left: 0;
197
239
  z-index: var(--z-sticky-col);
198
240
  background-color: var(--color-bg-elevated, var(--color-surface));
241
+ box-shadow: 1px 0 0 var(--color-border-subtle);
242
+ }
243
+
244
+ .table--sticky-col-end td:last-child,
245
+ .table--sticky-col-end th:last-child {
246
+ position: sticky;
247
+ right: 0;
248
+ z-index: var(--z-sticky-col);
249
+ background-color: var(--color-bg-elevated, var(--color-surface));
250
+ box-shadow: -1px 0 0 var(--color-border-subtle);
199
251
  }
200
252
 
201
253
  /* ---------------------------------------------------------
202
254
  7. ROW STATES
203
255
  --------------------------------------------------------- */
204
256
 
205
- .table-row--selected {
257
+ .table tbody tr.table-row--selected {
206
258
  background-color: var(--color-accent-soft);
207
259
  }
208
260
 
209
- .table-row--success {
261
+ .table tbody tr.table-row--success {
210
262
  background-color: var(--table-row-good-bg, var(--color-success-soft));
211
263
  }
212
264
 
213
- .table-row--danger {
265
+ .table tbody tr.table-row--danger {
214
266
  background-color: var(--table-row-bad-bg, var(--color-danger-soft));
215
267
  }
216
268
 
217
- .table-row--warning {
269
+ .table tbody tr.table-row--warning {
218
270
  background-color: var(--table-row-warning-bg, var(--color-warning-soft));
219
271
  }
220
272
 
221
- .table-row--info {
273
+ .table tbody tr.table-row--info {
222
274
  background-color: var(--table-row-info-bg, var(--color-info-soft));
223
275
  }
224
276
 
225
- .table-row--muted {
277
+ .table tbody tr.table-row--muted {
226
278
  background-color: var(--table-row-muted-bg, var(--color-muted-bg));
227
279
  color: var(--color-text-muted);
228
280
  }
229
281
 
282
+ .table tr.table-row--summary {
283
+ font-weight: 600;
284
+ background-color: var(--color-surface-subtle);
285
+ }
286
+
287
+ .table--selectable tbody tr {
288
+ cursor: pointer;
289
+ }
290
+
230
291
  /* ---------------------------------------------------------
231
292
  8. INLINE ACTIONS
232
293
  --------------------------------------------------------- */
@@ -493,7 +554,24 @@
493
554
  }
494
555
 
495
556
  /* ---------------------------------------------------------
496
- 16. TREND HELPERS (SPAN-BASED)
557
+ 16. FOOTER / SUMMARY ROWS
558
+ --------------------------------------------------------- */
559
+
560
+ .table tfoot td {
561
+ border-top: var(--border-width-strong) solid var(--color-border-strong);
562
+ background-color: var(--color-surface-subtle);
563
+ font-weight: 600;
564
+ }
565
+
566
+ .table--sticky-footer tfoot td {
567
+ position: sticky;
568
+ bottom: 0;
569
+ z-index: var(--z-sticky);
570
+ background-color: var(--color-bg-elevated, var(--color-surface));
571
+ }
572
+
573
+ /* ---------------------------------------------------------
574
+ 17. TREND HELPERS (SPAN-BASED)
497
575
  --------------------------------------------------------- */
498
576
 
499
577
  .t-trend {
@@ -556,36 +634,36 @@
556
634
  }
557
635
 
558
636
  /* ---------------------------------------------------------
559
- 17. FINANCE ROW STATES (NAMESPACED)
637
+ 18. FINANCE ROW STATES (NAMESPACED)
560
638
  --------------------------------------------------------- */
561
639
 
562
- .table-fin--good {
640
+ .table tbody tr.table-fin--good {
563
641
  background-color: var(--table-row-good-bg, var(--color-success-soft));
564
642
  }
565
643
 
566
- .table-fin--bad {
644
+ .table tbody tr.table-fin--bad {
567
645
  background-color: var(--table-row-bad-bg, var(--color-danger-soft));
568
646
  }
569
647
 
570
- .table-fin--warning {
648
+ .table tbody tr.table-fin--warning {
571
649
  background-color: var(--table-row-warning-bg, var(--color-warning-soft));
572
650
  }
573
651
 
574
- .table-fin--info {
652
+ .table tbody tr.table-fin--info {
575
653
  background-color: var(--table-row-info-bg, var(--color-info-soft));
576
654
  }
577
655
 
578
- .table-fin--muted {
656
+ .table tbody tr.table-fin--muted {
579
657
  background-color: var(--table-row-muted-bg, var(--color-muted-bg));
580
658
  color: var(--color-text-muted);
581
659
  }
582
660
 
583
- .table-fin--flagged {
661
+ .table tbody tr.table-fin--flagged {
584
662
  background-color: var(--table-row-flagged-bg, var(--color-danger-soft));
585
663
  border-left: var(--border-width-strong) solid var(--color-danger);
586
664
  }
587
665
 
588
- .table-fin--curious {
666
+ .table tbody tr.table-fin--curious {
589
667
  background-color: var(--table-row-curious-bg, var(--color-surface-subtle));
590
668
  border-left: var(--border-width-strong) solid var(--color-accent);
591
669
  }
@@ -1 +1 @@
1
- .vds-table,[data-vds-table]{--table-currency-tint:color-mix(in srgb,currentColor 50%,transparent 30%)}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.table-panel{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-4)}.table-panel__header{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-3)}.table-panel__title{color:var(--color-text);font-size:var(--text-sm);font-weight:600}.table-panel__meta{color:var(--color-text-muted);font-size:var(--text-xs)}.table{--table-cell-pad-y:var(--space-3);--table-cell-pad-x:var(--space-4);--table-cell-font-size:var(--text-sm);background-color:var(--color-surface);border-collapse:collapse;border-spacing:0;color:var(--color-text);width:100%}.table td,.table th{border-bottom:var(--border-width) solid var(--color-border-subtle);font-size:var(--table-cell-font-size);padding:var(--table-cell-pad-y) var(--table-cell-pad-x);text-align:left;vertical-align:middle}.table th{background-color:var(--color-surface-subtle);border-bottom:var(--border-width-strong) solid var(--color-border-strong);color:var(--color-text);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.table caption{caption-side:top;color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:var(--space-2);text-align:left}.table--a{--table-cell-pad-y:var(--space-4);--table-cell-pad-x:var(--space-5);--table-cell-font-size:var(--text-md)}.table--b{--table-cell-pad-y:var(--space-3);--table-cell-pad-x:var(--space-4);--table-cell-font-size:var(--text-sm)}.table--c{--table-cell-pad-y:var(--space-2);--table-cell-pad-x:var(--space-3);--table-cell-font-size:var(--text-xs)}.table--compact{--table-cell-pad-y:var(--space-1)}.table--bordered td,.table--bordered th{border:var(--border-width) solid var(--color-border-subtle)}.table--no-borders td,.table--no-borders th{border:none}.table--striped tbody tr:nth-child(odd){background-color:var(--color-surface-subtle)}.table--hover tbody tr:hover{background-color:var(--color-surface-soft)}.table--minimal td,.table--minimal th{background-color:transparent;border-bottom-color:var(--color-border-subtle)}.table--clear td,.table--clear th{background-color:transparent;border:none}.table--inset{border-radius:var(--radius-md);overflow:hidden}.table--truncate-cells td,.table--truncate-cells th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table--sticky-header thead th{background-color:var(--color-bg-elevated,var(--color-surface));box-shadow:0 1px 0 var(--color-border-subtle);position:sticky;top:0;z-index:var(--z-sticky)}.table--sticky-col td:first-child,.table--sticky-col th:first-child{background-color:var(--color-bg-elevated,var(--color-surface));left:0;position:sticky;z-index:var(--z-sticky-col)}.table-row--selected{background-color:var(--color-accent-soft)}.table-row--success{background-color:var(--table-row-good-bg,var(--color-success-soft))}.table-row--danger{background-color:var(--table-row-bad-bg,var(--color-danger-soft))}.table-row--warning{background-color:var(--table-row-warning-bg,var(--color-warning-soft))}.table-row--info{background-color:var(--table-row-info-bg,var(--color-info-soft))}.table-row--muted{background-color:var(--table-row-muted-bg,var(--color-muted-bg));color:var(--color-text-muted)}.table-actions{align-items:center;display:flex;gap:var(--space-2)}.table-actions .icon{color:var(--color-icon-muted);cursor:pointer;flex-shrink:0;height:var(--icon-sm);width:var(--icon-sm)}.table-actions .icon:hover{color:var(--color-icon-strong)}.table-row--expandable{cursor:pointer}.table-row--details{display:none}.table-row--details[data-expanded=true],.table-row--expanded+.table-row--details{display:table-row}.table-row--details td{background-color:var(--color-surface-subtle);padding:var(--space-4)}.table-group-header th{background-color:var(--color-surface-soft);border-top:var(--border-width-strong) solid var(--color-border-strong);font-weight:600;padding-bottom:var(--space-2);padding-top:var(--space-3)}.metric-table{border-collapse:collapse;width:100%}.metric-table tr:not(:last-child) td{border-bottom:var(--border-width) solid var(--color-border-subtle)}.metric-table__label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:500;padding:var(--space-2) 0}.metric-table__value{font-feature-settings:"tnum";font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600;padding:var(--space-2) 0;text-align:right}.table-empty{color:var(--color-text-muted);padding:var(--space-6) 0;text-align:center}.table-empty__content{align-items:center;display:flex;flex-direction:column;text-align:center}.table-empty__icon{align-items:center;display:flex;justify-content:center;margin-bottom:.5rem;margin-bottom:var(--space-2,.5rem)}.table-loading td{color:transparent;overflow:hidden;position:relative}.table-loading td:after{animation:table-loading 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-muted-bg),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}@keyframes table-loading{0%{transform:translateX(-150%)}to{transform:translateX(150%)}}@media (max-width:640px){.table--collapse thead{display:none}.table--collapse tbody tr{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);display:block;margin-bottom:var(--space-4);overflow:hidden}.table--collapse tbody td{border-bottom:var(--border-width) solid var(--color-border-subtle);display:flex;font-size:var(--text-sm);justify-content:space-between;padding:var(--space-3)}.table--collapse tbody td:last-child{border-bottom:none}.table--collapse tbody td:before{color:var(--color-text-muted);content:attr(data-label);font-size:var(--text-xs);font-weight:600;margin-right:var(--space-2)}}.table--hf{font-size:var(--text-xs)}.table--hf td,.table--hf th{border:var(--border-width) solid var(--color-border-subtle);padding:var(--space-1) var(--space-2)}.table--hf thead th{background-color:var(--color-surface-subtle);border-bottom:var(--border-width-strong) solid var(--color-border-strong);position:sticky;top:0;z-index:var(--z-sticky)}.t-num,.t-pct,.table--hf td[data-type=num]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.t-cur,.t-num,.t-pct{white-space:nowrap}.t-cur{font-feature-settings:"tnum";align-items:baseline;display:flex;font-variant-numeric:tabular-nums;justify-content:space-between}.cur-eur:before{content:"€"}.cur-usd:before{content:"$"}.cur-gbp:before{content:"£"}.cur-ron:before{content:"RON"}.cur-chf:before{content:"CHF"}.cur-jpy:before{content:"¥"}.cur-chf:before,.cur-eur:before,.cur-gbp:before,.cur-jpy:before,.cur-ron:before,.cur-usd:before{color:var(--table-currency-tint);font-size:var(--text-xxxs);font-weight:600;margin-right:var(--space-1)}.t-pct{color:inherit}.t-trend{font-feature-settings:"tnum";align-items:center;display:flex;font-variant-numeric:tabular-nums;justify-content:space-between;text-align:right;white-space:nowrap;width:100%}.t-down,.t-flat,.t-up{align-items:center;display:inline-flex}.t-up{color:var(--table-trend-up,var(--color-success-strong))}.t-down{color:var(--table-trend-down,var(--color-danger-strong))}.t-flat{color:var(--table-trend-flat,var(--color-text-muted))}.t-down:before,.t-flat:before,.t-up:before{background-color:currentColor;content:"";height:var(--icon-xs);margin-right:var(--space-1);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:var(--icon-xs)}.t-up:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M9 15H7V8H5l3-7 3 7H9Z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M9 15H7V8H5l3-7 3 7H9Z"/></svg>')}.t-down:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M7 1h2v7h2l-3 7-3-7h2Z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M7 1h2v7h2l-3 7-3-7h2Z"/></svg>')}.t-flat:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg stroke="currentColor" fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path stroke-width="2" d="M3 8h10"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg stroke="currentColor" fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path stroke-width="2" d="M3 8h10"/></svg>')}.table-fin--good{background-color:var(--table-row-good-bg,var(--color-success-soft))}.table-fin--bad{background-color:var(--table-row-bad-bg,var(--color-danger-soft))}.table-fin--warning{background-color:var(--table-row-warning-bg,var(--color-warning-soft))}.table-fin--info{background-color:var(--table-row-info-bg,var(--color-info-soft))}.table-fin--muted{background-color:var(--table-row-muted-bg,var(--color-muted-bg));color:var(--color-text-muted)}.table-fin--flagged{background-color:var(--table-row-flagged-bg,var(--color-danger-soft));border-left:var(--border-width-strong) solid var(--color-danger)}.table-fin--curious{background-color:var(--table-row-curious-bg,var(--color-surface-subtle));border-left:var(--border-width-strong) solid var(--color-accent)}
1
+ .vds-table,[data-vds-table]{--table-currency-tint:color-mix(in srgb,currentColor 50%,transparent 30%)}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.table-panel{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);padding:var(--space-4)}.table-panel__header{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between;margin-bottom:var(--space-3)}.table-panel__title{color:var(--color-text);font-size:var(--text-sm);font-weight:600}.table-panel__meta{color:var(--color-text-muted);font-size:var(--text-xs)}.table-panel__actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.table{--table-cell-pad-y:var(--space-3);--table-cell-pad-x:var(--space-4);--table-cell-font-size:var(--text-sm);background-color:var(--color-surface);border-collapse:collapse;border-spacing:0;color:var(--color-text);width:100%}.table--fixed{table-layout:fixed}.table td,.table th{border-bottom:var(--border-width) solid var(--color-border-subtle);font-size:var(--table-cell-font-size);padding:var(--table-cell-pad-y) var(--table-cell-pad-x);text-align:left;vertical-align:middle}.table th{background-color:var(--color-surface-subtle);border-bottom:var(--border-width-strong) solid var(--color-border-strong);color:var(--color-text);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.table-cell--right{text-align:right}.table-cell--center{text-align:center}.table-cell--muted{color:var(--color-text-muted)}.table-cell--strong{font-weight:600}.table-cell--nowrap{white-space:nowrap}.table-cell--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table caption{caption-side:top;color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:var(--space-2);text-align:left}.table--a{--table-cell-pad-y:var(--space-4);--table-cell-pad-x:var(--space-5);--table-cell-font-size:var(--text-md)}.table--b{--table-cell-pad-y:var(--space-3);--table-cell-pad-x:var(--space-4);--table-cell-font-size:var(--text-sm)}.table--c{--table-cell-pad-y:var(--space-2);--table-cell-pad-x:var(--space-3);--table-cell-font-size:var(--text-xs)}.table--compact{--table-cell-pad-y:var(--space-1)}.table--bordered td,.table--bordered th{border:var(--border-width) solid var(--color-border-subtle)}.table--no-borders td,.table--no-borders th{border:none}.table--striped tbody tr:nth-child(odd){background-color:var(--color-surface-subtle)}.table--hover tbody tr:hover{background-color:var(--color-surface-soft)}.table--minimal td,.table--minimal th{background-color:transparent;border-bottom-color:var(--color-border-subtle)}.table--clear td,.table--clear th{background-color:transparent;border:none}.table--inset{border-radius:var(--radius-md);overflow:hidden}.table--truncate-cells td,.table--truncate-cells th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table--nowrap td,.table--nowrap th{white-space:nowrap}.table--sticky-header thead th{background-color:var(--color-bg-elevated,var(--color-surface));box-shadow:0 1px 0 var(--color-border-subtle);position:sticky;top:0;z-index:var(--z-sticky)}.table--sticky-col td:first-child,.table--sticky-col th:first-child{background-color:var(--color-bg-elevated,var(--color-surface));box-shadow:1px 0 0 var(--color-border-subtle);left:0;position:sticky;z-index:var(--z-sticky-col)}.table--sticky-col-end td:last-child,.table--sticky-col-end th:last-child{background-color:var(--color-bg-elevated,var(--color-surface));box-shadow:-1px 0 0 var(--color-border-subtle);position:sticky;right:0;z-index:var(--z-sticky-col)}.table tbody tr.table-row--selected{background-color:var(--color-accent-soft)}.table tbody tr.table-row--success{background-color:var(--table-row-good-bg,var(--color-success-soft))}.table tbody tr.table-row--danger{background-color:var(--table-row-bad-bg,var(--color-danger-soft))}.table tbody tr.table-row--warning{background-color:var(--table-row-warning-bg,var(--color-warning-soft))}.table tbody tr.table-row--info{background-color:var(--table-row-info-bg,var(--color-info-soft))}.table tbody tr.table-row--muted{background-color:var(--table-row-muted-bg,var(--color-muted-bg));color:var(--color-text-muted)}.table tr.table-row--summary{background-color:var(--color-surface-subtle);font-weight:600}.table--selectable tbody tr{cursor:pointer}.table-actions{align-items:center;display:flex;gap:var(--space-2)}.table-actions .icon{color:var(--color-icon-muted);cursor:pointer;flex-shrink:0;height:var(--icon-sm);width:var(--icon-sm)}.table-actions .icon:hover{color:var(--color-icon-strong)}.table-row--expandable{cursor:pointer}.table-row--details{display:none}.table-row--details[data-expanded=true],.table-row--expanded+.table-row--details{display:table-row}.table-row--details td{background-color:var(--color-surface-subtle);padding:var(--space-4)}.table-group-header th{background-color:var(--color-surface-soft);border-top:var(--border-width-strong) solid var(--color-border-strong);font-weight:600;padding-bottom:var(--space-2);padding-top:var(--space-3)}.metric-table{border-collapse:collapse;width:100%}.metric-table tr:not(:last-child) td{border-bottom:var(--border-width) solid var(--color-border-subtle)}.metric-table__label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:500;padding:var(--space-2) 0}.metric-table__value{font-feature-settings:"tnum";font-size:var(--text-sm);font-variant-numeric:tabular-nums;font-weight:600;padding:var(--space-2) 0;text-align:right}.table-empty{color:var(--color-text-muted);padding:var(--space-6) 0;text-align:center}.table-empty__content{align-items:center;display:flex;flex-direction:column;text-align:center}.table-empty__icon{align-items:center;display:flex;justify-content:center;margin-bottom:.5rem;margin-bottom:var(--space-2,.5rem)}.table-loading td{color:transparent;overflow:hidden;position:relative}.table-loading td:after{animation:table-loading 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-muted-bg),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}@keyframes table-loading{0%{transform:translateX(-150%)}to{transform:translateX(150%)}}@media (max-width:640px){.table--collapse thead{display:none}.table--collapse tbody tr{background-color:var(--color-surface);border:var(--border-width) solid var(--color-border-subtle);border-radius:var(--radius-md);display:block;margin-bottom:var(--space-4);overflow:hidden}.table--collapse tbody td{border-bottom:var(--border-width) solid var(--color-border-subtle);display:flex;font-size:var(--text-sm);justify-content:space-between;padding:var(--space-3)}.table--collapse tbody td:last-child{border-bottom:none}.table--collapse tbody td:before{color:var(--color-text-muted);content:attr(data-label);font-size:var(--text-xs);font-weight:600;margin-right:var(--space-2)}}.table--hf{font-size:var(--text-xs)}.table--hf td,.table--hf th{border:var(--border-width) solid var(--color-border-subtle);padding:var(--space-1) var(--space-2)}.table--hf thead th{background-color:var(--color-surface-subtle);border-bottom:var(--border-width-strong) solid var(--color-border-strong);position:sticky;top:0;z-index:var(--z-sticky)}.t-num,.t-pct,.table--hf td[data-type=num]{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.t-cur,.t-num,.t-pct{white-space:nowrap}.t-cur{font-feature-settings:"tnum";align-items:baseline;display:flex;font-variant-numeric:tabular-nums;justify-content:space-between}.cur-eur:before{content:"€"}.cur-usd:before{content:"$"}.cur-gbp:before{content:"£"}.cur-ron:before{content:"RON"}.cur-chf:before{content:"CHF"}.cur-jpy:before{content:"¥"}.cur-chf:before,.cur-eur:before,.cur-gbp:before,.cur-jpy:before,.cur-ron:before,.cur-usd:before{color:var(--table-currency-tint);font-size:var(--text-xxxs);font-weight:600;margin-right:var(--space-1)}.t-pct{color:inherit}.table tfoot td{background-color:var(--color-surface-subtle);border-top:var(--border-width-strong) solid var(--color-border-strong);font-weight:600}.table--sticky-footer tfoot td{background-color:var(--color-bg-elevated,var(--color-surface));bottom:0;position:sticky;z-index:var(--z-sticky)}.t-trend{font-feature-settings:"tnum";align-items:center;display:flex;font-variant-numeric:tabular-nums;justify-content:space-between;text-align:right;white-space:nowrap;width:100%}.t-down,.t-flat,.t-up{align-items:center;display:inline-flex}.t-up{color:var(--table-trend-up,var(--color-success-strong))}.t-down{color:var(--table-trend-down,var(--color-danger-strong))}.t-flat{color:var(--table-trend-flat,var(--color-text-muted))}.t-down:before,.t-flat:before,.t-up:before{background-color:currentColor;content:"";height:var(--icon-xs);margin-right:var(--space-1);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:var(--icon-xs)}.t-up:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M9 15H7V8H5l3-7 3 7H9Z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M9 15H7V8H5l3-7 3 7H9Z"/></svg>')}.t-down:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M7 1h2v7h2l-3 7-3-7h2Z"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor"><path d="M7 1h2v7h2l-3 7-3-7h2Z"/></svg>')}.t-flat:before{-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg stroke="currentColor" fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path stroke-width="2" d="M3 8h10"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg stroke="currentColor" fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path stroke-width="2" d="M3 8h10"/></svg>')}.table tbody tr.table-fin--good{background-color:var(--table-row-good-bg,var(--color-success-soft))}.table tbody tr.table-fin--bad{background-color:var(--table-row-bad-bg,var(--color-danger-soft))}.table tbody tr.table-fin--warning{background-color:var(--table-row-warning-bg,var(--color-warning-soft))}.table tbody tr.table-fin--info{background-color:var(--table-row-info-bg,var(--color-info-soft))}.table tbody tr.table-fin--muted{background-color:var(--table-row-muted-bg,var(--color-muted-bg));color:var(--color-text-muted)}.table tbody tr.table-fin--flagged{background-color:var(--table-row-flagged-bg,var(--color-danger-soft));border-left:var(--border-width-strong) solid var(--color-danger)}.table tbody tr.table-fin--curious{background-color:var(--table-row-curious-bg,var(--color-surface-subtle));border-left:var(--border-width-strong) solid var(--color-accent)}
@@ -26,6 +26,20 @@
26
26
  [data-vds-tabs],
27
27
  .vds-tabs {
28
28
  --tabs-component-disabled-opacity: 0.48;
29
+ --tabs-pill-radius: var(--radius-pill);
30
+ --tabs-pill-bg: var(--color-surface);
31
+ --tabs-pill-border: var(--color-border-subtle);
32
+ --tabs-pill-text: var(--color-text-muted);
33
+ --tabs-pill-hover-bg: var(--color-surface-subtle);
34
+ --tabs-pill-active-bg: var(--color-accent-soft);
35
+ --tabs-pill-active-border: var(--color-accent);
36
+ --tabs-pill-active-text: var(--color-text);
37
+ --tabs-segmented-bg: var(--color-surface-subtle);
38
+ --tabs-segmented-border: var(--color-border-subtle);
39
+ --tabs-segmented-text: var(--color-text-muted);
40
+ --tabs-segmented-active-bg: var(--color-surface);
41
+ --tabs-segmented-active-text: var(--color-text);
42
+ --tabs-segmented-shadow: var(--shadow-1);
29
43
  }
30
44
 
31
45
  /* ---------------------------------------------------------
@@ -60,6 +74,16 @@
60
74
  width: 100%;
61
75
  }
62
76
 
77
+ .tab-list--scroll {
78
+ overflow-x: auto;
79
+ scrollbar-width: thin;
80
+ -webkit-overflow-scrolling: touch;
81
+ }
82
+
83
+ .tab-list--scroll::-webkit-scrollbar {
84
+ height: 6px;
85
+ }
86
+
63
87
  .tabs--inline .tab-list {
64
88
  width: auto;
65
89
  }
@@ -123,6 +147,16 @@
123
147
  color: var(--color-text-soft);
124
148
  }
125
149
 
150
+ .tab--icon-only {
151
+ padding: var(--space-2);
152
+ min-width: var(--space-8);
153
+ min-height: var(--space-8);
154
+ }
155
+
156
+ .tab--icon-only .tab__icon {
157
+ margin-right: 0;
158
+ }
159
+
126
160
  .tab:hover {
127
161
  color: var(--color-text);
128
162
  background-color: var(--color-surface-subtle);
@@ -161,7 +195,85 @@
161
195
  }
162
196
 
163
197
  /* ---------------------------------------------------------
164
- 6. DENSITY VARIANTS (A / default / C)
198
+ 6A. TAB VARIANTS (PILL + SEGMENTED)
199
+ --------------------------------------------------------- */
200
+
201
+ .tabs--pills .tab-list {
202
+ border: none;
203
+ gap: var(--space-2);
204
+ }
205
+
206
+ .tabs--pills .tab {
207
+ border-radius: var(--tabs-pill-radius);
208
+ border: var(--border-width) solid var(--tabs-pill-border);
209
+ background-color: var(--tabs-pill-bg);
210
+ color: var(--tabs-pill-text);
211
+ box-shadow: none;
212
+ }
213
+
214
+ .tabs--pills .tab:hover {
215
+ background-color: var(--tabs-pill-hover-bg);
216
+ color: var(--color-text);
217
+ }
218
+
219
+ .tabs--pills .tab:focus-visible {
220
+ box-shadow: 0 0 0 1px var(--color-surface),
221
+ 0 0 0 3px var(--focus-ring-color);
222
+ }
223
+
224
+ .tabs--pills .tab--active {
225
+ background-color: var(--tabs-pill-active-bg);
226
+ border-color: var(--tabs-pill-active-border);
227
+ color: var(--tabs-pill-active-text);
228
+ box-shadow: none;
229
+ }
230
+
231
+ .tabs--pills .tab--active:hover {
232
+ background-color: var(--tabs-pill-active-bg);
233
+ }
234
+
235
+ .tabs--segmented .tab-list {
236
+ border: var(--border-width) solid var(--tabs-segmented-border);
237
+ border-radius: var(--radius-pill);
238
+ background-color: var(--tabs-segmented-bg);
239
+ gap: var(--space-1);
240
+ padding: var(--space-1);
241
+ width: auto;
242
+ }
243
+
244
+ .tabs--segmented.tabs--stretch .tab-list {
245
+ width: 100%;
246
+ }
247
+
248
+ .tabs--segmented .tab {
249
+ border-radius: var(--radius-pill);
250
+ background-color: transparent;
251
+ color: var(--tabs-segmented-text);
252
+ box-shadow: none;
253
+ }
254
+
255
+ .tabs--segmented .tab:hover {
256
+ background-color: var(--color-surface);
257
+ color: var(--color-text);
258
+ }
259
+
260
+ .tabs--segmented .tab:focus-visible {
261
+ box-shadow: 0 0 0 1px var(--color-surface),
262
+ 0 0 0 3px var(--focus-ring-color);
263
+ }
264
+
265
+ .tabs--segmented .tab--active {
266
+ background-color: var(--tabs-segmented-active-bg);
267
+ color: var(--tabs-segmented-active-text);
268
+ box-shadow: var(--tabs-segmented-shadow);
269
+ }
270
+
271
+ .tabs--segmented .tab--active:hover {
272
+ background-color: var(--tabs-segmented-active-bg);
273
+ }
274
+
275
+ /* ---------------------------------------------------------
276
+ 7. DENSITY VARIANTS (A / default / C)
165
277
  --------------------------------------------------------- */
166
278
 
167
279
  .tabs--a .tab {
@@ -181,7 +293,7 @@
181
293
  }
182
294
 
183
295
  /* ---------------------------------------------------------
184
- 7. VERTICAL ORIENTATION
296
+ 8. VERTICAL ORIENTATION
185
297
  Pattern:
186
298
  <div class="tabs tabs--vertical">
187
299
  <div class="tab-list">...</div>
@@ -237,7 +349,7 @@
237
349
  }
238
350
 
239
351
  /* ---------------------------------------------------------
240
- 8. TAB PANELS
352
+ 9. TAB PANELS
241
353
  --------------------------------------------------------- */
242
354
 
243
355
  .tab-panel {
@@ -265,7 +377,7 @@
265
377
  }
266
378
 
267
379
  /* ---------------------------------------------------------
268
- 9. RESPONSIVE BEHAVIOUR
380
+ 10. RESPONSIVE BEHAVIOUR
269
381
  --------------------------------------------------------- */
270
382
 
271
383
  @media (max-width: 768px) {
@@ -1 +1 @@
1
- .vds-tabs,[data-vds-tabs]{--tabs-component-disabled-opacity:0.48}.tabs{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.tabs--center{align-items:center}.tabs--right{align-items:flex-end}.tab-list{border-bottom:var(--border-width) solid var(--color-border-subtle);display:inline-flex;flex-wrap:nowrap;gap:0;position:relative;width:100%}.tabs--inline .tab-list{width:auto}.tabs--stretch .tab-list{width:100%}.tabs--stretch .tab{flex:1 1 0}.tab{background:none;border:none;border-radius:0;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-normal);line-height:1.2;padding:var(--space-2) var(--space-3);position:relative;transition:color var(--transition-normal),background-color var(--transition-normal),box-shadow var(--transition-normal);white-space:nowrap}.tab,.tab__icon{align-items:center;display:inline-flex;justify-content:center}.tab__icon{height:var(--icon-sm);margin-right:var(--space-2);width:var(--icon-sm)}.tab__badge{background-color:var(--color-muted-bg);border-radius:var(--radius-full);color:var(--color-text-soft);font-size:var(--text-xxs);margin-left:var(--space-2);padding:0 var(--space-2)}.tab:hover{background-color:var(--color-surface-subtle);color:var(--color-text)}.tab:focus-visible{box-shadow:0 var(--tab-indicator-height) 0 0 var(--focus-ring-color);color:var(--color-text);outline:none}.tab--disabled,.tab[disabled]{background:none;box-shadow:none;cursor:not-allowed;opacity:var(--tabs-component-disabled-opacity)}.tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent);color:var(--color-text);font-weight:var(--font-weight-semibold)}.tabs--on-muted .tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent-strong)}.tab--active:hover{background-color:transparent}.tabs--a .tab{font-size:var(--text-md);padding:var(--space-3) var(--space-4)}.tabs--c .tab{font-size:var(--text-xs);padding:var(--space-1_5) var(--space-2)}.tabs--vertical{align-items:flex-start;flex-direction:row;gap:var(--space-6)}.tabs--vertical .tab-list{align-items:stretch;border-bottom:none;border-right:var(--border-width) solid var(--color-border-subtle);flex-direction:column;min-width:var(--sidebar-width-md);width:auto}.tabs--vertical .tab{justify-content:flex-start;padding:var(--space-2) var(--space-3);text-align:left;width:100%}.tabs--vertical .tab--active{box-shadow:var(--tab-indicator-height) 0 0 0 var(--color-accent)}.tabs--vertical .tab:focus-visible{box-shadow:var(--tab-indicator-height) 0 0 0 var(--focus-ring-color)}.tabs--vertical.tabs--c .tab{padding:var(--space-1_5) var(--space-2)}.tabs--vertical.tabs--a .tab{padding:var(--space-3) var(--space-4)}.tab-panel{padding-top:var(--space-2);width:100%}.tab-panel.is-hidden,.tab-panel[hidden]{display:none}.tab-panel--padded{padding-top:var(--space-4)}.tabs--vertical .tab-panel,.tabs--vertical .tab-panels{flex:1 1 0}.tab-panels{padding-top:var(--space-2);width:100%}@media (max-width:768px){.tab-list{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:thin}.tab-list::-webkit-scrollbar{height:6px}.tabs--vertical{flex-direction:column;gap:var(--space-3)}.tabs--vertical .tab-list{border-bottom:var(--border-width) solid var(--color-border-subtle);border-right:none;flex-direction:row;min-width:0;width:100%}.tabs--vertical .tab{justify-content:center;text-align:center}.tabs--vertical .tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent)}.tabs--vertical .tab:focus-visible{box-shadow:0 var(--tab-indicator-height) 0 0 var(--focus-ring-color)}}
1
+ .vds-tabs,[data-vds-tabs]{--tabs-component-disabled-opacity:0.48;--tabs-pill-radius:var(--radius-pill);--tabs-pill-bg:var(--color-surface);--tabs-pill-border:var(--color-border-subtle);--tabs-pill-text:var(--color-text-muted);--tabs-pill-hover-bg:var(--color-surface-subtle);--tabs-pill-active-bg:var(--color-accent-soft);--tabs-pill-active-border:var(--color-accent);--tabs-pill-active-text:var(--color-text);--tabs-segmented-bg:var(--color-surface-subtle);--tabs-segmented-border:var(--color-border-subtle);--tabs-segmented-text:var(--color-text-muted);--tabs-segmented-active-bg:var(--color-surface);--tabs-segmented-active-text:var(--color-text);--tabs-segmented-shadow:var(--shadow-1)}.tabs{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.tabs--center{align-items:center}.tabs--right{align-items:flex-end}.tab-list{border-bottom:var(--border-width) solid var(--color-border-subtle);display:inline-flex;flex-wrap:nowrap;gap:0;position:relative;width:100%}.tab-list--scroll{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:thin}.tab-list--scroll::-webkit-scrollbar{height:6px}.tabs--inline .tab-list{width:auto}.tabs--stretch .tab-list{width:100%}.tabs--stretch .tab{flex:1 1 0}.tab{background:none;border:none;border-radius:0;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);letter-spacing:var(--letter-normal);line-height:1.2;padding:var(--space-2) var(--space-3);position:relative;transition:color var(--transition-normal),background-color var(--transition-normal),box-shadow var(--transition-normal);white-space:nowrap}.tab,.tab__icon{align-items:center;display:inline-flex;justify-content:center}.tab__icon{height:var(--icon-sm);margin-right:var(--space-2);width:var(--icon-sm)}.tab__badge{background-color:var(--color-muted-bg);border-radius:var(--radius-full);color:var(--color-text-soft);font-size:var(--text-xxs);margin-left:var(--space-2);padding:0 var(--space-2)}.tab--icon-only{min-height:var(--space-8);min-width:var(--space-8);padding:var(--space-2)}.tab--icon-only .tab__icon{margin-right:0}.tab:hover{background-color:var(--color-surface-subtle);color:var(--color-text)}.tab:focus-visible{box-shadow:0 var(--tab-indicator-height) 0 0 var(--focus-ring-color);color:var(--color-text);outline:none}.tab--disabled,.tab[disabled]{background:none;box-shadow:none;cursor:not-allowed;opacity:var(--tabs-component-disabled-opacity)}.tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent);color:var(--color-text);font-weight:var(--font-weight-semibold)}.tabs--on-muted .tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent-strong)}.tab--active:hover{background-color:transparent}.tabs--pills .tab-list{border:none;gap:var(--space-2)}.tabs--pills .tab{background-color:var(--tabs-pill-bg);border:var(--border-width) solid var(--tabs-pill-border);border-radius:var(--tabs-pill-radius);box-shadow:none;color:var(--tabs-pill-text)}.tabs--pills .tab:hover{background-color:var(--tabs-pill-hover-bg);color:var(--color-text)}.tabs--pills .tab:focus-visible{box-shadow:0 0 0 1px var(--color-surface),0 0 0 3px var(--focus-ring-color)}.tabs--pills .tab--active{border-color:var(--tabs-pill-active-border);box-shadow:none;color:var(--tabs-pill-active-text)}.tabs--pills .tab--active,.tabs--pills .tab--active:hover{background-color:var(--tabs-pill-active-bg)}.tabs--segmented .tab-list{background-color:var(--tabs-segmented-bg);border:var(--border-width) solid var(--tabs-segmented-border);border-radius:var(--radius-pill);gap:var(--space-1);padding:var(--space-1);width:auto}.tabs--segmented.tabs--stretch .tab-list{width:100%}.tabs--segmented .tab{background-color:transparent;border-radius:var(--radius-pill);box-shadow:none;color:var(--tabs-segmented-text)}.tabs--segmented .tab:hover{background-color:var(--color-surface);color:var(--color-text)}.tabs--segmented .tab:focus-visible{box-shadow:0 0 0 1px var(--color-surface),0 0 0 3px var(--focus-ring-color)}.tabs--segmented .tab--active{box-shadow:var(--tabs-segmented-shadow);color:var(--tabs-segmented-active-text)}.tabs--segmented .tab--active,.tabs--segmented .tab--active:hover{background-color:var(--tabs-segmented-active-bg)}.tabs--a .tab{font-size:var(--text-md);padding:var(--space-3) var(--space-4)}.tabs--c .tab{font-size:var(--text-xs);padding:var(--space-1_5) var(--space-2)}.tabs--vertical{align-items:flex-start;flex-direction:row;gap:var(--space-6)}.tabs--vertical .tab-list{align-items:stretch;border-bottom:none;border-right:var(--border-width) solid var(--color-border-subtle);flex-direction:column;min-width:var(--sidebar-width-md);width:auto}.tabs--vertical .tab{justify-content:flex-start;padding:var(--space-2) var(--space-3);text-align:left;width:100%}.tabs--vertical .tab--active{box-shadow:var(--tab-indicator-height) 0 0 0 var(--color-accent)}.tabs--vertical .tab:focus-visible{box-shadow:var(--tab-indicator-height) 0 0 0 var(--focus-ring-color)}.tabs--vertical.tabs--c .tab{padding:var(--space-1_5) var(--space-2)}.tabs--vertical.tabs--a .tab{padding:var(--space-3) var(--space-4)}.tab-panel{padding-top:var(--space-2);width:100%}.tab-panel.is-hidden,.tab-panel[hidden]{display:none}.tab-panel--padded{padding-top:var(--space-4)}.tabs--vertical .tab-panel,.tabs--vertical .tab-panels{flex:1 1 0}.tab-panels{padding-top:var(--space-2);width:100%}@media (max-width:768px){.tab-list{-webkit-overflow-scrolling:touch;overflow-x:auto;scrollbar-width:thin}.tab-list::-webkit-scrollbar{height:6px}.tabs--vertical{flex-direction:column;gap:var(--space-3)}.tabs--vertical .tab-list{border-bottom:var(--border-width) solid var(--color-border-subtle);border-right:none;flex-direction:row;min-width:0;width:100%}.tabs--vertical .tab{justify-content:center;text-align:center}.tabs--vertical .tab--active{box-shadow:0 var(--tab-indicator-height) 0 0 var(--color-accent)}.tabs--vertical .tab:focus-visible{box-shadow:0 var(--tab-indicator-height) 0 0 var(--focus-ring-color)}}