@livx.cc/bare-v3 0.1.0-alpha.7 → 0.1.0-alpha.71

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 (42) hide show
  1. package/README.md +6 -4
  2. package/dist/bare.css +800 -38
  3. package/dist/bare.min.css +1 -1
  4. package/dist/elements/date-picker.js +518 -0
  5. package/dist/elements/image-viewer.js +516 -0
  6. package/dist/elements/markdown-stream.js +388 -0
  7. package/dist/manifest.json +74 -35
  8. package/dist/references/app-frame.md +1 -1
  9. package/dist/references/button.md +1 -1
  10. package/dist/references/card-structure.md +1 -1
  11. package/dist/references/command.md +2 -2
  12. package/dist/references/confirm.md +9 -0
  13. package/dist/references/control-structure.md +1 -1
  14. package/dist/references/conversation.md +2 -2
  15. package/dist/references/cross-screen.md +2 -1
  16. package/dist/references/data-display.md +1 -1
  17. package/dist/references/date-picker.md +131 -0
  18. package/dist/references/dialog.md +2 -2
  19. package/dist/references/disclosure.md +1 -1
  20. package/dist/references/editable-filtered-rows.md +87 -0
  21. package/dist/references/feedback.md +2 -2
  22. package/dist/references/field.md +1 -1
  23. package/dist/references/form-composition.md +1 -1
  24. package/dist/references/foundation.md +1 -1
  25. package/dist/references/identity.md +1 -1
  26. package/dist/references/image-viewer.md +66 -0
  27. package/dist/references/layout.md +1 -1
  28. package/dist/references/markdown-stream-prompt.md +13 -0
  29. package/dist/references/markdown-stream.md +95 -0
  30. package/dist/references/mobile.md +2 -2
  31. package/dist/references/motion.md +2 -0
  32. package/dist/references/page-layout.md +2 -2
  33. package/dist/references/row.md +19 -2
  34. package/dist/references/scroll-entry.md +75 -0
  35. package/dist/references/segmented.md +9 -0
  36. package/dist/references/start.md +4 -4
  37. package/dist/references/status.md +2 -2
  38. package/dist/references/surface.md +1 -1
  39. package/dist/references/tabs.md +1 -1
  40. package/dist/references/type.md +2 -2
  41. package/dist/ui.js +272 -12
  42. package/package.json +9 -2
package/dist/bare.css CHANGED
@@ -21,22 +21,29 @@
21
21
  font: inherit;
22
22
  }
23
23
 
24
- :where(.b3-root) :where(h1, h2, h3, p) {
24
+ :where(.b3-root) :where(h1, h2, h3, h4, h5, h6, p) {
25
25
  margin: 0;
26
26
  }
27
27
 
28
28
  :where(.b3-root) :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
29
- outline: 3px solid var(--b3-color-focus);
30
- outline-offset: 3px;
29
+ outline: none;
30
+ box-shadow: inset 0 0 0 2px;
31
+ }
32
+
33
+ @media (forced-colors: active) {
34
+ :where(.b3-root) :where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
35
+ outline-offset: -2px;
36
+ outline: 1px solid highlight;
37
+ }
31
38
  }
32
39
 
33
- :where(.b3-root) :where(img, svg) {
40
+ :where(.b3-root) :where(img, svg:not([width])) {
34
41
  max-inline-size: 100%;
35
42
  }
36
43
 
37
44
  @media (prefers-reduced-motion: reduce) {
38
45
  :where(.b3-root *), :where(.b3-root *):before, :where(.b3-root *):after {
39
- transition-duration: .01ms !important;
46
+ transition: none !important;
40
47
  animation-duration: .01ms !important;
41
48
  animation-iteration-count: 1 !important;
42
49
  }
@@ -58,7 +65,7 @@
58
65
  }
59
66
 
60
67
  @layer bare.tokens {
61
- .b3-root {
68
+ .b3-root:where(:not(.b3-root .b3-root)), .b3-root[data-b3-theme="light"] {
62
69
  --b3-color-canvas: #f6f5f0;
63
70
  --b3-color-surface: #fff;
64
71
  --b3-color-text: #202923;
@@ -88,7 +95,7 @@
88
95
  --b3-color-focus: #9ac4ff;
89
96
  }
90
97
 
91
- .b3-root {
98
+ .b3-root:where(:not(.b3-root .b3-root)), .b3-root[data-b3-theme="light"] {
92
99
  --b3-space-1: .25rem;
93
100
  --b3-space-2: .5rem;
94
101
  --b3-space-3: .75rem;
@@ -113,6 +120,36 @@
113
120
  --b3-color-warning: #f2c76c;
114
121
  --b3-color-info: #a2cfff;
115
122
  }
123
+
124
+ .b3-root[data-b3-density="compact"] {
125
+ --b3-d-control: 2.25rem;
126
+ --b3-d-control-small: 1.875rem;
127
+ --b3-d-pad-block: .4375rem;
128
+ --b3-d-pad-inline: .875rem;
129
+ --b3-d-label: .875rem;
130
+ --b3-d-heading: 1.0625rem;
131
+ --b3-d-avatar: 2.25rem;
132
+ --b3-d-message-pad: .625rem .875rem;
133
+ --b3-d-meta: .75rem;
134
+ --b3-d-gap: 1rem;
135
+ --b3-d-surface-pad: 1rem;
136
+ }
137
+
138
+ @media (pointer: fine) and (width >= 48rem) {
139
+ .b3-root[data-b3-density="auto"] {
140
+ --b3-d-control: 2.25rem;
141
+ --b3-d-control-small: 1.875rem;
142
+ --b3-d-pad-block: .4375rem;
143
+ --b3-d-pad-inline: .875rem;
144
+ --b3-d-label: .875rem;
145
+ --b3-d-heading: 1.0625rem;
146
+ --b3-d-avatar: 2.25rem;
147
+ --b3-d-message-pad: .625rem .875rem;
148
+ --b3-d-meta: .75rem;
149
+ --b3-d-gap: 1rem;
150
+ --b3-d-surface-pad: 1rem;
151
+ }
152
+ }
116
153
  }
117
154
 
118
155
  @layer bare.layout {
@@ -142,6 +179,10 @@
142
179
  overflow: auto;
143
180
  }
144
181
 
182
+ dialog.b3-stack > .b3-scroll {
183
+ min-block-size: min(6rem, 30dvh);
184
+ }
185
+
145
186
  .b3-stack:has( > .b3-scroll) > :not(.b3-scroll) {
146
187
  flex-shrink: 0;
147
188
  }
@@ -154,6 +195,10 @@
154
195
  display: flex;
155
196
  }
156
197
 
198
+ .b3-cluster > *, .b3-split > * {
199
+ min-inline-size: 0;
200
+ }
201
+
157
202
  .b3-inline {
158
203
  vertical-align: middle;
159
204
  align-items: center;
@@ -167,6 +212,18 @@
167
212
  min-inline-size: 0;
168
213
  }
169
214
 
215
+ .b3-inline:has( > .b3-badge) {
216
+ flex-wrap: wrap;
217
+ }
218
+
219
+ .b3-inline > .b3-badge {
220
+ flex-shrink: 0;
221
+ }
222
+
223
+ .b3-inline:has( > .b3-badge) > :not(.b3-badge, .b3-icon, svg) {
224
+ flex: 1 1 min-content;
225
+ }
226
+
170
227
  .b3-grid {
171
228
  grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--b3-grid-min, 17rem)), 1fr));
172
229
  gap: var(--b3-space);
@@ -242,6 +299,46 @@
242
299
  border-block-end: 1px solid var(--b3-color-border);
243
300
  }
244
301
  }
302
+
303
+ .b3-reel:has( > .b3-badge) {
304
+ scrollbar-width: none;
305
+ align-items: center;
306
+ gap: .5rem;
307
+ padding-block: .625rem;
308
+ }
309
+
310
+ .b3-reel:has( > .b3-badge)::-webkit-scrollbar {
311
+ display: none;
312
+ }
313
+
314
+ .b3-reel > .b3-badge {
315
+ flex: none;
316
+ }
317
+
318
+ .b3-stack > .b3-reel {
319
+ flex-shrink: 0;
320
+ }
321
+
322
+ @supports (animation-timeline: scroll(self inline)) {
323
+ .b3-reel:has( > .b3-badge) {
324
+ mask-image: linear-gradient(to right, #000 calc(100% - var(--b3-reel-fade)), #0000);
325
+ animation: linear both b3-reel-fade scroll(self inline);
326
+ }
327
+
328
+ .b3-reel:has( > .b3-badge):dir(rtl) {
329
+ mask-image: linear-gradient(to left, #000 calc(100% - var(--b3-reel-fade)), #0000);
330
+ }
331
+
332
+ @keyframes b3-reel-fade {
333
+ 90% {
334
+ --b3-reel-fade: 2.5rem;
335
+ }
336
+
337
+ to {
338
+ --b3-reel-fade: 0rem;
339
+ }
340
+ }
341
+ }
245
342
  }
246
343
 
247
344
  @layer bare.components {
@@ -256,7 +353,9 @@
256
353
  .b3-heading {
257
354
  font-family: var(--b3-font-display);
258
355
  letter-spacing: -.02em;
356
+ overflow-wrap: anywhere;
259
357
  font-size: 1.375rem;
358
+ font-weight: 650;
260
359
  line-height: 1.25;
261
360
  }
262
361
 
@@ -295,6 +394,15 @@
295
394
  display: inline-flex;
296
395
  }
297
396
 
397
+ .b3-button :where(svg) {
398
+ flex-shrink: 0;
399
+ display: block;
400
+ }
401
+
402
+ .b3-button > :where([aria-hidden="true"]):has( > svg) {
403
+ flex-shrink: 0;
404
+ }
405
+
298
406
  .b3-button[data-b3-emphasis="quiet"] {
299
407
  color: var(--b3-color-text);
300
408
  border-color: var(--b3-color-border);
@@ -349,6 +457,11 @@
349
457
  }
350
458
  }
351
459
 
460
+ :where(ul, ol):has( > .b3-row) {
461
+ margin: 0;
462
+ padding-inline-start: 0;
463
+ }
464
+
352
465
  .b3-row {
353
466
  border-block-end: 1px solid var(--b3-color-border);
354
467
  align-items: center;
@@ -357,10 +470,99 @@
357
470
  display: flex;
358
471
  }
359
472
 
473
+ .b3-row:where(.b3-stack) {
474
+ align-items: stretch;
475
+ gap: var(--b3-space);
476
+ }
477
+
478
+ :is(a, button, [role="button"]).b3-row {
479
+ padding-inline: var(--b3-space-4);
480
+ color: inherit;
481
+ text-align: start;
482
+ cursor: pointer;
483
+ transition: background-color var(--b3-duration);
484
+ text-decoration: none;
485
+ }
486
+
487
+ button.b3-row {
488
+ appearance: none;
489
+ border: 0;
490
+ border-block-end: 1px solid var(--b3-color-border);
491
+ background: none;
492
+ inline-size: 100%;
493
+ }
494
+
495
+ @media (hover: hover) {
496
+ :is(a, button, [role="button"]).b3-row:hover {
497
+ background: color-mix(in srgb, var(--b3-color-text) 4%, transparent);
498
+ }
499
+ }
500
+
501
+ :is(a, button, [role="button"]).b3-row:focus-visible {
502
+ background: color-mix(in srgb, var(--b3-color-text) 4%, transparent);
503
+ }
504
+
505
+ :is(a, button, [role="button"]).b3-row:active {
506
+ background: color-mix(in srgb, var(--b3-color-text) 8%, transparent);
507
+ }
508
+
509
+ .b3-clamp {
510
+ -webkit-line-clamp: var(--b3-clamp, 2);
511
+ line-clamp: var(--b3-clamp, 2);
512
+ -webkit-box-orient: vertical;
513
+ display: -webkit-box;
514
+ overflow: hidden;
515
+ }
516
+
517
+ .b3-count {
518
+ box-sizing: border-box;
519
+ background: var(--b3-color-danger);
520
+ block-size: 1.25rem;
521
+ min-inline-size: 1.25rem;
522
+ color: var(--b3-color-canvas);
523
+ font-variant-numeric: tabular-nums;
524
+ white-space: nowrap;
525
+ border-radius: 100vmax;
526
+ flex: none;
527
+ place-items: center;
528
+ padding-inline: .3125rem;
529
+ font-size: .6875rem;
530
+ font-weight: 700;
531
+ line-height: 1;
532
+ display: inline-grid;
533
+ }
534
+
535
+ .b3-count[data-b3-tone="accent"] {
536
+ background: var(--b3-color-accent);
537
+ color: var(--b3-color-on-accent);
538
+ }
539
+
540
+ .b3-nav-link > .b3-count {
541
+ margin-inline-start: auto;
542
+ }
543
+
544
+ .b3-bottom-link {
545
+ position: relative;
546
+ }
547
+
548
+ .b3-bottom-link > .b3-count {
549
+ box-shadow: 0 0 0 2px var(--b3-color-surface);
550
+ position: absolute;
551
+ inset-block-start: .125rem;
552
+ inset-inline-start: calc(50% + .375rem);
553
+ }
554
+
555
+ :is(a, button, [role="button"]).b3-row:is([aria-current]:not([aria-current="false"]), [aria-selected="true"]) {
556
+ background: color-mix(in srgb, var(--b3-color-accent) 12%, transparent);
557
+ }
558
+
360
559
  .b3-badge {
560
+ overflow-wrap: anywhere;
361
561
  border: 1px solid var(--b3-color-border);
362
562
  border-radius: 100vmax;
363
563
  align-items: center;
564
+ inline-size: fit-content;
565
+ max-inline-size: 100%;
364
566
  padding: .125rem .5rem;
365
567
  font-size: .75rem;
366
568
  font-weight: 650;
@@ -421,6 +623,17 @@
421
623
  display: inline-block;
422
624
  }
423
625
 
626
+ [data-b3-confirm][data-b3-armed] {
627
+ outline: 2px solid var(--b3-color-danger) !important;
628
+ outline-offset: 2px !important;
629
+ }
630
+
631
+ .b3-button[data-b3-armed] {
632
+ background: var(--b3-color-danger);
633
+ color: var(--b3-color-canvas);
634
+ border-color: var(--b3-color-danger);
635
+ }
636
+
424
637
  .b3-input:disabled {
425
638
  opacity: .6;
426
639
  cursor: not-allowed;
@@ -438,7 +651,8 @@
438
651
  .b3-input-group {
439
652
  border: 1px solid var(--b3-color-border);
440
653
  border-radius: var(--b3-radius);
441
- background: var(--b3-color-surface);
654
+ background: var(--b3-color-canvas);
655
+ flex-wrap: wrap;
442
656
  align-items: stretch;
443
657
  min-inline-size: 0;
444
658
  display: flex;
@@ -448,15 +662,22 @@
448
662
  .b3-input-group > .b3-input {
449
663
  border: 0;
450
664
  border-radius: 0;
451
- flex: 1;
665
+ flex: 12ch;
666
+ }
667
+
668
+ .b3-input-group:has( > .b3-button) {
669
+ justify-content: end;
452
670
  }
453
671
 
454
672
  .b3-input-group:focus-within {
455
- outline: 3px solid var(--b3-color-focus);
456
- outline-offset: 3px;
673
+ outline: none;
674
+ box-shadow: inset 0 0 0 2px;
457
675
  }
458
676
 
459
677
  .b3-input-affix {
678
+ overflow-wrap: anywhere;
679
+ min-inline-size: 0;
680
+ max-inline-size: 100%;
460
681
  color: var(--b3-color-muted);
461
682
  background: var(--b3-color-canvas);
462
683
  align-items: center;
@@ -466,12 +687,19 @@
466
687
 
467
688
  .b3-choice {
468
689
  cursor: pointer;
690
+ flex-wrap: wrap;
469
691
  align-items: start;
470
692
  gap: .75rem;
471
693
  padding-block: .5rem;
472
694
  display: flex;
473
695
  }
474
696
 
697
+ .b3-choice > :not(input) {
698
+ overflow-wrap: anywhere;
699
+ flex: 12ch;
700
+ min-inline-size: 0;
701
+ }
702
+
475
703
  .b3-choice input {
476
704
  --b3-choice-control: 1.125rem;
477
705
  inline-size: var(--b3-choice-control);
@@ -522,6 +750,34 @@
522
750
  cursor: not-allowed;
523
751
  }
524
752
 
753
+ .b3-input[type="number"] {
754
+ appearance: textfield;
755
+ }
756
+
757
+ .b3-input[type="number"]::-webkit-inner-spin-button, .b3-input[type="number"]::-webkit-outer-spin-button {
758
+ appearance: none;
759
+ margin: 0;
760
+ }
761
+
762
+ .b3-input::-webkit-datetime-edit, .b3-input::-webkit-datetime-edit-fields-wrapper {
763
+ padding-block: 0;
764
+ }
765
+
766
+ .b3-input:is([type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"]) {
767
+ appearance: none;
768
+ max-inline-size: 100%;
769
+ display: block;
770
+ }
771
+
772
+ .b3-input::-webkit-date-and-time-value {
773
+ text-align: start;
774
+ min-block-size: 1lh;
775
+ }
776
+
777
+ .b3-input-affix {
778
+ white-space: nowrap;
779
+ }
780
+
525
781
  .b3-card-header, .b3-card-footer {
526
782
  justify-content: space-between;
527
783
  align-items: center;
@@ -547,9 +803,29 @@
547
803
  .b3-divider {
548
804
  border: 0;
549
805
  border-block-start: 1px solid var(--b3-color-border);
806
+ inline-size: 100%;
807
+ margin-inline: 0;
550
808
  margin-block: var(--b3-space);
551
809
  }
552
810
 
811
+ .b3-stack > .b3-divider {
812
+ margin-block: 0;
813
+ }
814
+
815
+ .b3-alert, .b3-toast {
816
+ overflow-wrap: anywhere;
817
+ min-inline-size: 0;
818
+ }
819
+
820
+ .b3-alert > *, .b3-toast > * {
821
+ min-inline-size: 0;
822
+ }
823
+
824
+ .b3-alert pre {
825
+ max-inline-size: 100%;
826
+ overflow-x: auto;
827
+ }
828
+
553
829
  .b3-alert {
554
830
  --b3-status-color: var(--b3-color-info);
555
831
  border: 1px solid var(--b3-status-color);
@@ -599,12 +875,22 @@
599
875
  color: var(--b3-color-text);
600
876
  box-shadow: var(--b3-shadow-raised);
601
877
  pointer-events: auto;
878
+ flex-wrap: wrap;
602
879
  align-items: start;
603
880
  gap: 1rem;
604
881
  padding: 1rem;
605
882
  display: flex;
606
883
  }
607
884
 
885
+ .b3-toast > :not(button, .b3-button) {
886
+ flex: 12rem;
887
+ }
888
+
889
+ .b3-toast > :is(button, .b3-button) {
890
+ flex: none;
891
+ max-inline-size: 100%;
892
+ }
893
+
608
894
  .b3-spinner {
609
895
  border: 2px solid;
610
896
  vertical-align: -.125em;
@@ -636,6 +922,32 @@
636
922
  }
637
923
  }
638
924
 
925
+ :is(button, a).b3-badge {
926
+ min-block-size: auto;
927
+ color: var(--b3-color-text);
928
+ cursor: pointer;
929
+ background: none;
930
+ gap: .25rem;
931
+ text-decoration: none;
932
+ position: relative;
933
+ }
934
+
935
+ :is(button, a).b3-badge:after {
936
+ content: "";
937
+ position: absolute;
938
+ inset: -10px 0;
939
+ }
940
+
941
+ :is(button, a).b3-badge[data-b3-tone] {
942
+ color: var(--b3-status-color, var(--b3-color-info));
943
+ }
944
+
945
+ :is(button, a).b3-badge:is([aria-pressed="true"], [aria-current]:not([aria-current="false"])) {
946
+ color: var(--b3-color-on-accent);
947
+ background: var(--b3-color-accent);
948
+ border-color: var(--b3-color-accent);
949
+ }
950
+
639
951
  .b3-avatar {
640
952
  background: var(--b3-color-accent);
641
953
  block-size: 2.5rem;
@@ -656,6 +968,27 @@
656
968
  inline-size: 100%;
657
969
  }
658
970
 
971
+ .b3-avatar[data-b3-unread] {
972
+ position: relative;
973
+ overflow: visible;
974
+ }
975
+
976
+ .b3-avatar[data-b3-unread] > img {
977
+ border-radius: inherit;
978
+ }
979
+
980
+ .b3-avatar[data-b3-unread]:after {
981
+ content: "";
982
+ background: var(--b3-color-accent);
983
+ block-size: .75rem;
984
+ inline-size: .75rem;
985
+ box-shadow: 0 0 0 2px var(--b3-color-surface);
986
+ border-radius: 50%;
987
+ position: absolute;
988
+ inset-block-start: -.0625rem;
989
+ inset-inline-end: -.0625rem;
990
+ }
991
+
659
992
  .b3-avatar-stack {
660
993
  padding-inline-start: .5rem;
661
994
  display: flex;
@@ -679,6 +1012,7 @@
679
1012
  .b3-table-wrap {
680
1013
  border: 1px solid var(--b3-color-border);
681
1014
  border-radius: var(--b3-radius);
1015
+ position: relative;
682
1016
  overflow-x: auto;
683
1017
  }
684
1018
 
@@ -716,13 +1050,16 @@
716
1050
  }
717
1051
 
718
1052
  .b3-definition {
719
- grid-template-columns: minmax(7rem, 1fr) minmax(0, 2fr);
1053
+ grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
720
1054
  gap: .75rem 1.5rem;
721
1055
  margin: 0;
722
1056
  display: grid;
1057
+ container: b3-definition / inline-size;
723
1058
  }
724
1059
 
725
1060
  .b3-definition dt {
1061
+ overflow-wrap: anywhere;
1062
+ min-inline-size: 0;
726
1063
  color: var(--b3-color-muted);
727
1064
  }
728
1065
 
@@ -731,15 +1068,27 @@
731
1068
  margin: 0;
732
1069
  }
733
1070
 
1071
+ @container b3-definition (width <= 26rem) {
1072
+ .b3-definition > :is(dt, dd) {
1073
+ grid-column: 1 / -1;
1074
+ }
1075
+
1076
+ .b3-definition > dt:not(:first-child) {
1077
+ margin-block-start: .75rem;
1078
+ }
1079
+ }
1080
+
734
1081
  .b3-stat {
1082
+ grid-template-columns: minmax(0, 1fr);
735
1083
  gap: .5rem;
736
1084
  display: grid;
737
1085
  }
738
1086
 
739
1087
  .b3-stat-value {
1088
+ overflow-wrap: anywhere;
740
1089
  letter-spacing: -.045em;
741
1090
  font-variant-numeric: tabular-nums;
742
- font-size: clamp(2rem, 5vw, 3rem);
1091
+ font-size: clamp(1.5rem, 5vw, 3rem);
743
1092
  font-weight: 650;
744
1093
  line-height: 1.1;
745
1094
  }
@@ -749,7 +1098,7 @@
749
1098
  flex-wrap: wrap;
750
1099
  align-items: center;
751
1100
  gap: .5rem;
752
- padding: .75rem;
1101
+ padding: .75rem min(.75rem, 3%);
753
1102
  display: flex;
754
1103
  }
755
1104
 
@@ -760,12 +1109,16 @@
760
1109
  }
761
1110
 
762
1111
  .b3-nav-link {
1112
+ overflow-wrap: anywhere;
763
1113
  border-radius: var(--b3-radius-small);
764
1114
  min-block-size: 2.75rem;
1115
+ min-inline-size: 0;
1116
+ max-inline-size: 100%;
765
1117
  color: var(--b3-color-muted);
1118
+ flex-wrap: wrap;
766
1119
  align-items: center;
767
1120
  gap: .5rem;
768
- padding: .625rem .875rem;
1121
+ padding: .625rem min(.875rem, 4%);
769
1122
  text-decoration: none;
770
1123
  display: flex;
771
1124
  }
@@ -810,13 +1163,16 @@
810
1163
  appearance: none;
811
1164
  color: var(--b3-color-muted);
812
1165
  font: inherit;
813
- white-space: nowrap;
1166
+ white-space: normal;
1167
+ overflow-wrap: anywhere;
814
1168
  cursor: pointer;
815
1169
  background: none;
816
1170
  border: 0;
817
1171
  border-block-end: 2px solid #0000;
1172
+ flex-shrink: 0;
818
1173
  min-block-size: 2.75rem;
819
- padding: .75rem 1rem;
1174
+ max-inline-size: 100%;
1175
+ padding: .75rem min(1rem, 4vi);
820
1176
  }
821
1177
 
822
1178
  .b3-tab[aria-selected="true"] {
@@ -834,6 +1190,75 @@
834
1190
  padding-block: var(--b3-space-4);
835
1191
  }
836
1192
 
1193
+ .b3-segmented {
1194
+ border-radius: var(--b3-radius);
1195
+ background: color-mix(in srgb, var(--b3-color-text) 7%, var(--b3-color-canvas));
1196
+ border: 0;
1197
+ flex-wrap: wrap;
1198
+ gap: .25rem;
1199
+ min-inline-size: 0;
1200
+ margin: 0;
1201
+ padding: .25rem;
1202
+ display: flex;
1203
+ }
1204
+
1205
+ .b3-segmented > label {
1206
+ border-radius: calc(var(--b3-radius) - .25rem);
1207
+ min-block-size: 2.75rem;
1208
+ max-inline-size: 100%;
1209
+ color: var(--b3-color-muted);
1210
+ text-align: center;
1211
+ cursor: pointer;
1212
+ flex: 1 0 auto;
1213
+ justify-content: center;
1214
+ align-items: center;
1215
+ gap: .375rem;
1216
+ padding-inline: .875rem;
1217
+ font-weight: 600;
1218
+ display: inline-flex;
1219
+ position: relative;
1220
+ }
1221
+
1222
+ .b3-segmented > label > input {
1223
+ opacity: 0;
1224
+ block-size: 100%;
1225
+ inline-size: 100%;
1226
+ cursor: inherit;
1227
+ margin: 0;
1228
+ position: absolute;
1229
+ inset: 0;
1230
+ }
1231
+
1232
+ .b3-segmented > label:has(input:checked) {
1233
+ background: var(--b3-color-surface);
1234
+ color: var(--b3-color-text);
1235
+ box-shadow: 0 1px 2px #0000001f, 0 0 0 1px var(--b3-color-border);
1236
+ }
1237
+
1238
+ .b3-segmented > label:has(input:focus-visible) {
1239
+ box-shadow: inset 0 0 0 2px;
1240
+ }
1241
+
1242
+ @media (forced-colors: active) {
1243
+ .b3-segmented > label {
1244
+ border: 2px solid canvas;
1245
+ }
1246
+
1247
+ .b3-segmented > label:has(input:checked) {
1248
+ border-color: canvastext;
1249
+ }
1250
+
1251
+ .b3-segmented > label:has(input:focus-visible) {
1252
+ outline-offset: 1px;
1253
+ outline: 2px solid highlight;
1254
+ }
1255
+ }
1256
+
1257
+ .b3-segmented > label:has(input:disabled) {
1258
+ opacity: .5;
1259
+ cursor: not-allowed;
1260
+ }
1261
+
837
1262
  .b3-accordion {
838
1263
  border-block-end: 1px solid var(--b3-color-border);
839
1264
  }
@@ -888,7 +1313,7 @@
888
1313
  inline-size: min(32rem, 100% - 2rem);
889
1314
  color: var(--b3-color-text);
890
1315
  box-shadow: var(--b3-shadow-raised);
891
- padding: 1.5rem;
1316
+ padding: min(1.5rem, 5vi);
892
1317
  overflow: auto;
893
1318
  }
894
1319
 
@@ -901,6 +1326,7 @@
901
1326
  block-size: 100svh;
902
1327
  max-block-size: 100svh;
903
1328
  inline-size: min(28rem, 100%);
1329
+ max-inline-size: 100%;
904
1330
  margin: 0;
905
1331
  margin-inline-start: auto;
906
1332
  }
@@ -941,9 +1367,45 @@
941
1367
  }
942
1368
  }
943
1369
 
944
- .b3-tree {
1370
+ .b3-dialog > form {
1371
+ gap: var(--b3-space);
1372
+ flex-direction: column;
1373
+ margin: 0;
1374
+ display: flex;
1375
+ }
1376
+
1377
+ .b3-dialog > form > header:has( > button:last-child) {
1378
+ grid-template-columns: minmax(0, 1fr) auto;
1379
+ align-items: center;
1380
+ column-gap: .75rem;
1381
+ display: grid;
1382
+ }
1383
+
1384
+ .b3-dialog > form > header:has( > button:last-child) > :not(:last-child) {
1385
+ grid-column: 1;
1386
+ min-inline-size: 0;
1387
+ }
1388
+
1389
+ .b3-dialog > form > header > button:last-child:not(:first-child) {
1390
+ grid-area: 1 / 2;
1391
+ }
1392
+
1393
+ .b3-dialog > form > footer {
1394
+ flex-wrap: wrap;
1395
+ justify-content: flex-end;
1396
+ align-items: center;
1397
+ gap: .75rem;
1398
+ display: flex;
1399
+ }
1400
+
1401
+ .b3-dialog > form > footer > [data-b3-emphasis="quiet"]:first-child:not(:last-child) {
1402
+ margin-inline-end: auto;
1403
+ }
1404
+
1405
+ .b3-tree, .b3-tree ul {
1406
+ overflow-wrap: anywhere;
945
1407
  border-inline-start: 1px solid var(--b3-color-border);
946
- padding-inline-start: 1rem;
1408
+ padding-inline-start: min(1rem, 5%);
947
1409
  list-style: none;
948
1410
  }
949
1411
 
@@ -962,11 +1424,23 @@
962
1424
  margin-block: 1rem;
963
1425
  }
964
1426
 
965
- .b3-prose :is(h2, h3, h4) {
1427
+ .b3-prose :is(h1, h2, h3, h4, h5, h6) {
966
1428
  margin-block: 1.75rem .75rem;
967
1429
  line-height: 1.25;
968
1430
  }
969
1431
 
1432
+ .b3-prose :is(h5, h6) {
1433
+ font-size: 1em;
1434
+ }
1435
+
1436
+ .b3-prose > :first-child {
1437
+ margin-block-start: 0;
1438
+ }
1439
+
1440
+ .b3-prose img {
1441
+ block-size: auto;
1442
+ }
1443
+
970
1444
  .b3-prose blockquote {
971
1445
  border-inline-start: 3px solid var(--b3-color-accent);
972
1446
  color: var(--b3-color-muted);
@@ -1077,6 +1551,7 @@
1077
1551
 
1078
1552
  .b3-price {
1079
1553
  font-variant-numeric: tabular-nums;
1554
+ flex-wrap: wrap;
1080
1555
  align-items: baseline;
1081
1556
  gap: .375rem;
1082
1557
  display: flex;
@@ -1176,7 +1651,7 @@
1176
1651
  max-block-size: calc(100svh - var(--b3-outline-top, 1rem) - 1rem);
1177
1652
  border-inline-start: 1px solid var(--b3-color-border);
1178
1653
  grid-area: outline;
1179
- padding-inline-start: 1rem;
1654
+ padding-inline-start: min(1rem, 5%);
1180
1655
  font-size: .875rem;
1181
1656
  position: sticky;
1182
1657
  inset-block-start: var(--b3-outline-top, 1rem);
@@ -1193,14 +1668,14 @@
1193
1668
 
1194
1669
  .b3-toc ol ol {
1195
1670
  margin: .25rem 0;
1196
- padding-inline-start: 1rem;
1671
+ padding-inline-start: min(1rem, 5%);
1197
1672
  }
1198
1673
 
1199
1674
  .b3-toc-link {
1200
1675
  border-radius: var(--b3-radius-small);
1201
1676
  color: var(--b3-color-muted);
1202
1677
  overflow-wrap: anywhere;
1203
- padding: .625rem .75rem;
1678
+ padding: .625rem min(.75rem, 5%);
1204
1679
  text-decoration: none;
1205
1680
  display: block;
1206
1681
  }
@@ -1235,16 +1710,28 @@
1235
1710
  padding: 0;
1236
1711
  }
1237
1712
 
1713
+ .b3-command[open]:has( > .b3-scroll) {
1714
+ grid-template-rows: auto minmax(0, 1fr);
1715
+ display: grid;
1716
+ }
1717
+
1718
+ .b3-command > .b3-scroll > .b3-command-list {
1719
+ max-block-size: none;
1720
+ overflow: visible;
1721
+ }
1722
+
1238
1723
  .b3-command-search {
1239
1724
  border-block-end: 1px solid var(--b3-color-border);
1725
+ flex-wrap: wrap;
1726
+ justify-content: end;
1240
1727
  align-items: center;
1241
1728
  gap: .75rem;
1242
- padding: 1rem;
1729
+ padding: min(1rem, 4vw);
1243
1730
  display: flex;
1244
1731
  }
1245
1732
 
1246
1733
  .b3-command-search > input {
1247
- flex: 1;
1734
+ flex: 12ch;
1248
1735
  min-inline-size: 0;
1249
1736
  }
1250
1737
 
@@ -1273,9 +1760,9 @@
1273
1760
  cursor: pointer;
1274
1761
  justify-content: space-between;
1275
1762
  align-items: center;
1276
- gap: 1rem;
1763
+ gap: min(1rem, 2vw);
1277
1764
  min-block-size: 2.75rem;
1278
- padding: .875rem .75rem;
1765
+ padding: min(.875rem, 2svh) min(.75rem, 3vw);
1279
1766
  display: flex;
1280
1767
  }
1281
1768
 
@@ -1310,6 +1797,23 @@
1310
1797
  display: grid;
1311
1798
  }
1312
1799
 
1800
+ .b3-form-grid[data-b3-layout="inline"] {
1801
+ flex-wrap: wrap;
1802
+ align-items: end;
1803
+ display: flex;
1804
+ }
1805
+
1806
+ .b3-form-grid[data-b3-layout="inline"] > .b3-field {
1807
+ flex: 12rem;
1808
+ min-inline-size: 0;
1809
+ }
1810
+
1811
+ .b3-form-grid[data-b3-layout="inline"] > .b3-button {
1812
+ overflow-wrap: anywhere;
1813
+ flex: 0 auto;
1814
+ max-inline-size: 100%;
1815
+ }
1816
+
1313
1817
  .b3-fieldset {
1314
1818
  border: 0;
1315
1819
  min-inline-size: 0;
@@ -1427,8 +1931,8 @@
1427
1931
  }
1428
1932
 
1429
1933
  .b3-choice-card:has(input:focus-visible) {
1430
- outline: 3px solid var(--b3-color-focus);
1431
- outline-offset: 3px;
1934
+ outline: none;
1935
+ box-shadow: inset 0 0 0 2px;
1432
1936
  }
1433
1937
 
1434
1938
  .b3-choice-card:has(input:disabled) {
@@ -1498,6 +2002,7 @@
1498
2002
  }
1499
2003
 
1500
2004
  .b3-message {
2005
+ grid-template-columns: minmax(0, 1fr);
1501
2006
  justify-self: start;
1502
2007
  gap: .375rem;
1503
2008
  min-inline-size: 0;
@@ -1516,7 +2021,7 @@
1516
2021
  color: var(--b3-color-text);
1517
2022
  white-space: pre-wrap;
1518
2023
  overflow-wrap: anywhere;
1519
- padding: .875rem 1rem;
2024
+ padding: .75rem 1rem;
1520
2025
  }
1521
2026
 
1522
2027
  .b3-message[data-b3-side="self"] > .b3-message-body {
@@ -1537,6 +2042,53 @@
1537
2042
  justify-content: end;
1538
2043
  }
1539
2044
 
2045
+ .b3-conversation {
2046
+ align-content: start;
2047
+ }
2048
+
2049
+ .b3-message-body:has( > :is(div, p, ul, ol, table, pre, blockquote, b3-markdown-stream)) {
2050
+ white-space: normal;
2051
+ }
2052
+
2053
+ .b3-composer {
2054
+ align-items: end;
2055
+ gap: var(--b3-space-2);
2056
+ padding: var(--b3-space-3);
2057
+ border-block-start: 1px solid var(--b3-color-border);
2058
+ background: var(--b3-color-canvas);
2059
+ flex-wrap: wrap;
2060
+ display: flex;
2061
+ }
2062
+
2063
+ .b3-composer > .b3-input, .b3-composer > .b3-button {
2064
+ border-radius: var(--b3-radius);
2065
+ min-block-size: var(--b3-d-control, 2.75rem);
2066
+ }
2067
+
2068
+ .b3-composer > .b3-input {
2069
+ resize: none;
2070
+ min-inline-size: 0;
2071
+ max-inline-size: 100%;
2072
+ padding-block: calc((var(--b3-d-control, 2.75rem) - 1.5em - 2px) / 2);
2073
+ flex: 12ch;
2074
+ line-height: 1.5;
2075
+ }
2076
+
2077
+ .b3-composer > .b3-button {
2078
+ block-size: var(--b3-d-control, 2.75rem);
2079
+ min-inline-size: var(--b3-d-control, 2.75rem);
2080
+ flex-shrink: 0;
2081
+ margin-inline-start: auto;
2082
+ }
2083
+
2084
+ .b3-message-body :where(p, ul, ol, pre, table, blockquote, h1, h2, h3, h4, h5, h6, div, figure):first-child {
2085
+ margin-block-start: 0;
2086
+ }
2087
+
2088
+ .b3-message-body :where(p, ul, ol, pre, table, blockquote, h1, h2, h3, h4, h5, h6, div, figure):last-child {
2089
+ margin-block-end: 0;
2090
+ }
2091
+
1540
2092
  .b3-mobile-app {
1541
2093
  --b3-touch: 44px;
1542
2094
  min-block-size: 100svh;
@@ -1560,17 +2112,18 @@
1560
2112
  display: flex;
1561
2113
  }
1562
2114
 
1563
- .b3-app-bar > :last-child {
2115
+ .b3-app-bar > :last-child:not(:first-child) {
1564
2116
  margin-inline-start: auto;
1565
2117
  }
1566
2118
 
1567
2119
  .b3-bottom-nav {
1568
2120
  z-index: 10;
1569
2121
  max-inline-size: var(--b3-app-width, 70rem);
1570
- padding: .5rem 1rem max(.5rem, env(safe-area-inset-bottom, 0px));
2122
+ padding: .5rem clamp(.5rem, 2vw, 1rem) max(.5rem, env(safe-area-inset-bottom, 0px));
1571
2123
  background: var(--b3-color-surface);
1572
2124
  color: var(--b3-color-text);
1573
2125
  border-block-start: 1px solid var(--b3-color-border);
2126
+ flex-wrap: wrap;
1574
2127
  justify-content: space-around;
1575
2128
  gap: .5rem;
1576
2129
  margin-inline: auto;
@@ -1581,21 +2134,36 @@
1581
2134
  }
1582
2135
 
1583
2136
  .b3-bottom-link {
2137
+ appearance: none;
2138
+ cursor: pointer;
2139
+ overflow-wrap: normal;
2140
+ text-align: center;
1584
2141
  min-block-size: var(--b3-touch, 44px);
1585
2142
  min-inline-size: 0;
1586
2143
  color: var(--b3-color-muted);
2144
+ background: none;
2145
+ border: 0;
1587
2146
  border-radius: 1rem;
1588
2147
  flex-direction: column;
1589
- flex: 1;
2148
+ flex: 5ch;
1590
2149
  justify-content: center;
1591
2150
  align-items: center;
1592
2151
  gap: .15rem;
1593
- padding: .25rem .5rem;
2152
+ padding: .25rem clamp(.125rem, 1vw, .5rem);
1594
2153
  font-size: .75rem;
1595
2154
  text-decoration: none;
1596
2155
  display: flex;
1597
2156
  }
1598
2157
 
2158
+ .b3-bottom-link:disabled {
2159
+ opacity: .5;
2160
+ cursor: not-allowed;
2161
+ }
2162
+
2163
+ .b3-bottom-link:has(svg) {
2164
+ justify-content: flex-start;
2165
+ }
2166
+
1599
2167
  .b3-bottom-link[aria-current="page"] {
1600
2168
  color: var(--b3-color-accent);
1601
2169
  font-weight: 700;
@@ -1639,7 +2207,7 @@
1639
2207
  max-block-size: min(85dvh, calc(100dvh - env(safe-area-inset-top, 0px) - 1rem));
1640
2208
  overscroll-behavior: contain;
1641
2209
  border: 1px solid var(--b3-color-border);
1642
- padding: 1.5rem 1.5rem max(1.5rem, env(safe-area-inset-bottom, 0px));
2210
+ padding: 1.5rem min(1.5rem, 5vi) max(1.5rem, env(safe-area-inset-bottom, 0px));
1643
2211
  background: var(--b3-color-surface);
1644
2212
  color: var(--b3-color-text);
1645
2213
  border-radius: 1.5rem 1.5rem 0 0;
@@ -1653,6 +2221,7 @@
1653
2221
  }
1654
2222
 
1655
2223
  .b3-sheet [data-b3-initial-focus]:focus {
2224
+ box-shadow: none;
1656
2225
  outline: none;
1657
2226
  }
1658
2227
 
@@ -1715,7 +2284,30 @@
1715
2284
  overflow: hidden;
1716
2285
  }
1717
2286
 
2287
+ .b3-bottom-link[aria-current="page"] {
2288
+ background: color-mix(in srgb, var(--b3-color-accent) 12%, transparent);
2289
+ }
2290
+
2291
+ .b3-bottom-link :where(svg:not([width])) {
2292
+ flex: none;
2293
+ block-size: 1.375rem;
2294
+ inline-size: 1.375rem;
2295
+ }
2296
+
2297
+ .b3-bottom-link > :where(span, strong):not(.b3-count) {
2298
+ white-space: nowrap;
2299
+ text-overflow: ellipsis;
2300
+ max-inline-size: 100%;
2301
+ overflow: hidden;
2302
+ }
2303
+
2304
+ :has( > .b3-bottom-link:nth-of-type(5)) > .b3-bottom-link {
2305
+ padding-inline: .125rem;
2306
+ font-size: .6875rem;
2307
+ }
2308
+
1718
2309
  .b3-app-frame {
2310
+ inline-size: 100%;
1719
2311
  block-size: var(--b3-frame-height, 100dvh);
1720
2312
  min-block-size: 0;
1721
2313
  max-inline-size: var(--b3-app-width, 70rem);
@@ -1733,7 +2325,7 @@
1733
2325
 
1734
2326
  .b3-app-frame > main {
1735
2327
  overscroll-behavior: contain;
1736
- grid-row: 2;
2328
+ grid-area: 2 / 1;
1737
2329
  min-block-size: 0;
1738
2330
  min-inline-size: 0;
1739
2331
  overflow: auto;
@@ -1745,14 +2337,184 @@
1745
2337
  position: relative;
1746
2338
  }
1747
2339
 
2340
+ .b3-app-frame > .b3-toast-region {
2341
+ overscroll-behavior: contain;
2342
+ grid-area: 2 / 1;
2343
+ place-self: end;
2344
+ min-block-size: 0;
2345
+ max-block-size: calc(100% - 2rem);
2346
+ margin: 1rem;
2347
+ position: relative;
2348
+ inset: auto;
2349
+ overflow-y: auto;
2350
+ }
2351
+
1748
2352
  .b3-app-frame > .b3-app-bar {
1749
2353
  padding-block-start: .75rem;
1750
2354
  }
1751
2355
 
2356
+ .b3-app-frame:has( > .b3-bottom-nav, > footer .b3-bottom-nav) {
2357
+ padding-block-end: 0;
2358
+ }
2359
+
1752
2360
  .b3-app-frame .b3-bottom-nav {
1753
2361
  inline-size: 100%;
1754
2362
  max-inline-size: none;
1755
- padding-block-end: .5rem;
2363
+ padding-block-end: max(.5rem, env(safe-area-inset-bottom, 0px));
1756
2364
  position: static;
1757
2365
  }
2366
+
2367
+ :where(.b3-root[data-b3-density]) .b3-button {
2368
+ min-block-size: var(--b3-d-control, 2.75rem);
2369
+ padding: var(--b3-d-pad-block, .625rem) var(--b3-d-pad-inline, 1rem);
2370
+ font-size: var(--b3-d-label, inherit);
2371
+ }
2372
+
2373
+ :where(.b3-root[data-b3-density]) .b3-button[data-b3-size="small"] {
2374
+ min-block-size: var(--b3-d-control-small, auto);
2375
+ padding: calc(var(--b3-d-pad-block, .5rem) - .125rem) calc(var(--b3-d-pad-inline, .75rem) - .25rem);
2376
+ }
2377
+
2378
+ :where(.b3-root[data-b3-density]) .b3-input {
2379
+ min-block-size: var(--b3-d-control, 2.75rem);
2380
+ padding: calc((var(--b3-d-control, 2.75rem) - 1.5em - 2px) / 2) .75rem;
2381
+ line-height: 1.5;
2382
+ }
2383
+
2384
+ :where(.b3-root[data-b3-density]) .b3-nav-link {
2385
+ min-block-size: var(--b3-d-control, 2.75rem);
2386
+ padding: var(--b3-d-pad-block, .625rem) min(var(--b3-d-pad-inline, .875rem), 4%);
2387
+ font-size: var(--b3-d-label, inherit);
2388
+ }
2389
+
2390
+ :where(.b3-root[data-b3-density]) .b3-heading {
2391
+ font-size: var(--b3-d-heading, 1.375rem);
2392
+ }
2393
+
2394
+ :where(.b3-root[data-b3-density]) .b3-avatar {
2395
+ block-size: var(--b3-d-avatar, 2.5rem);
2396
+ inline-size: var(--b3-d-avatar, 2.5rem);
2397
+ }
2398
+
2399
+ :where(.b3-root[data-b3-density]) .b3-conversation {
2400
+ gap: var(--b3-d-gap, 1.5rem);
2401
+ }
2402
+
2403
+ :where(.b3-root[data-b3-density]) .b3-message-body {
2404
+ padding: var(--b3-d-message-pad, .75rem 1rem);
2405
+ }
2406
+
2407
+ :where(.b3-root[data-b3-density]) .b3-message-meta {
2408
+ font-size: var(--b3-d-meta, .8125rem);
2409
+ }
2410
+
2411
+ .b3-button[data-b3-emphasis="ghost"] {
2412
+ color: var(--b3-color-muted);
2413
+ background: none;
2414
+ border-color: #0000;
2415
+ }
2416
+
2417
+ .b3-button[data-b3-emphasis="ghost"]:not(:disabled):hover {
2418
+ color: var(--b3-color-text);
2419
+ }
2420
+
2421
+ .b3-button[data-b3-emphasis="ghost"][aria-pressed="true"] {
2422
+ color: var(--b3-color-accent);
2423
+ }
2424
+
2425
+ .b3-button[data-b3-icon] {
2426
+ min-inline-size: var(--b3-d-control, 2.75rem);
2427
+ padding-inline: 0;
2428
+ }
2429
+
2430
+ :where(.b3-root[data-b3-density]) .b3-button[data-b3-icon][data-b3-size="small"] {
2431
+ min-inline-size: var(--b3-d-control-small, 2.25rem);
2432
+ }
2433
+
2434
+ .b3-button:disabled {
2435
+ opacity: 1;
2436
+ background: color-mix(in srgb, var(--b3-color-muted) 14%, var(--b3-color-surface));
2437
+ color: var(--b3-color-muted);
2438
+ border-color: #0000;
2439
+ }
2440
+
2441
+ .b3-button[data-b3-emphasis="ghost"]:disabled {
2442
+ background: none;
2443
+ }
2444
+
2445
+ .b3-truncate {
2446
+ white-space: nowrap;
2447
+ text-overflow: ellipsis;
2448
+ min-inline-size: 0;
2449
+ overflow: hidden;
2450
+ }
2451
+
2452
+ .b3-strong {
2453
+ font-size: inherit;
2454
+ font-weight: 650;
2455
+ }
2456
+
2457
+ .b3-caption {
2458
+ color: var(--b3-color-muted);
2459
+ font-size: .8125rem;
2460
+ line-height: 1.4;
2461
+ }
2462
+
2463
+ .b3-heading[data-b3-size="small"] {
2464
+ font-size: 1.0625rem;
2465
+ line-height: 1.3;
2466
+ }
2467
+
2468
+ :is(a, button).b3-caption {
2469
+ color: var(--b3-color-accent);
2470
+ cursor: pointer;
2471
+ text-underline-offset: .15em;
2472
+ background: none;
2473
+ border: 0;
2474
+ padding: 0;
2475
+ }
2476
+
2477
+ :is(a, button).b3-caption:is(:hover, :focus-visible) {
2478
+ text-decoration: underline;
2479
+ }
2480
+
2481
+ :where(.b3-root[data-b3-density]) .b3-caption {
2482
+ font-size: var(--b3-d-meta, .8125rem);
2483
+ }
2484
+
2485
+ .b3-badge {
2486
+ gap: .25rem;
2487
+ }
2488
+
2489
+ :where(.b3-root[data-b3-density]) .b3-surface {
2490
+ padding: var(--b3-d-surface-pad, clamp(1rem, 3vw, 2rem));
2491
+ }
2492
+
2493
+ .b3-input-group, .b3-input-group > .b3-input-affix, .b3-input-group > .b3-input {
2494
+ background: var(--b3-color-surface);
2495
+ }
2496
+
2497
+ .b3-root[data-b3-theme="dark"] .b3-message[data-b3-side="self"] > .b3-message-body {
2498
+ background: color-mix(in srgb, var(--b3-color-accent) 22%, var(--b3-color-surface));
2499
+ color: var(--b3-color-text);
2500
+ }
2501
+
2502
+ .b3-empty {
2503
+ justify-items: center;
2504
+ gap: var(--b3-space-2);
2505
+ padding: var(--b3-space-12) var(--b3-space-4);
2506
+ text-align: center;
2507
+ color: var(--b3-color-muted);
2508
+ display: grid;
2509
+ }
2510
+
2511
+ .b3-empty > svg {
2512
+ color: var(--b3-color-muted);
2513
+ }
2514
+ }
2515
+
2516
+ @property --b3-reel-fade {
2517
+ syntax: "<length>";
2518
+ inherits: false;
2519
+ initial-value: 2.5rem;
1758
2520
  }