@webority/theme 0.99.0 → 0.101.0
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.
- package/README.md +9 -9
- package/dist/published-theme.json +8 -31
- package/dist/purge-safelist.json +1 -0
- package/dist/webority-theme.css +1 -1
- package/index.scss +4 -3
- package/package.json +6 -3
- package/scss/_bootstrap.generated.scss +18 -0
- package/scss/_components.scss +38 -38
- package/scss/_marketing.scss +8 -8
- package/scss/_tokens.generated.scss +831 -0
- package/scss/_tokens.scss +4 -638
- package/scss/_variables.scss +7 -12
- package/scss/_wui-components.scss +1 -1
- package/scss/_wui-residual.scss +8 -0
- package/scss/wui/_avatar-picker.scss +2 -2
- package/scss/wui/_calendar.scss +6 -6
- package/scss/wui/_card.scss +1 -1
- package/scss/wui/_carousel.scss +2 -2
- package/scss/wui/_chart-card.scss +2 -2
- package/scss/wui/_chart.scss +8 -8
- package/scss/wui/_chat.scss +2 -2
- package/scss/wui/_choice.scss +78 -78
- package/scss/wui/_code-block.scss +2 -2
- package/scss/wui/_command-palette.scss +9 -9
- package/scss/wui/_comment-thread.scss +5 -5
- package/scss/wui/_consent-banner.scss +2 -2
- package/scss/wui/_controls.scss +52 -52
- package/scss/wui/_data.scss +38 -38
- package/scss/wui/_disclosure.scss +6 -6
- package/scss/wui/_display.scss +51 -51
- package/scss/wui/_dock.scss +4 -4
- package/scss/wui/_drawer.scss +3 -3
- package/scss/wui/_file-viewer.scss +2 -2
- package/scss/wui/_filter-popover.scss +1 -1
- package/scss/wui/_floating.scss +1 -1
- package/scss/wui/_flow.scss +60 -60
- package/scss/wui/_groups.scss +7 -7
- package/scss/wui/_hover-card.scss +1 -1
- package/scss/wui/_image-crop.scss +3 -3
- package/scss/wui/_interaction.scss +3 -3
- package/scss/wui/_kanban.scss +4 -4
- package/scss/wui/_lightbox.scss +2 -2
- package/scss/wui/_media.scss +28 -28
- package/scss/wui/_mention-input.scss +4 -4
- package/scss/wui/_menu-motion.scss +1 -1
- package/scss/wui/_modal-remote.scss +2 -2
- package/scss/wui/_navigation-menu.scss +4 -4
- package/scss/wui/_navigation.scss +25 -25
- package/scss/wui/_notification-center.scss +4 -4
- package/scss/wui/_onboarding-checklist.scss +2 -2
- package/scss/wui/_overlays.scss +21 -21
- package/scss/wui/_pending.scss +1 -1
- package/scss/wui/_rich-text.scss +7 -7
- package/scss/wui/_rolling-number.scss +1 -1
- package/scss/wui/_score-scale.scss +1 -1
- package/scss/wui/_sections.scss +8 -8
- package/scss/wui/_shell-parts.scss +15 -15
- package/scss/wui/_shell.scss +20 -20
- package/scss/wui/_shortcuts.scss +1 -1
- package/scss/wui/_sortable.scss +2 -2
- package/scss/wui/_split-view.scss +4 -4
- package/scss/wui/_theme-toggle.scss +1 -1
- package/scss/wui/_tone-pill.scss +2 -2
- package/scss/wui/_toolbar.scss +2 -2
- package/scss/wui/_tree.scss +3 -3
- package/scss/wui/_typography.scss +6 -6
- package/scss/wui/_utilities.scss +27 -19
- package/scss/wui/_whats-new.scss +4 -4
- package/scss/wui/_workspace.scss +16 -16
- package/scss/wui/tour/_advance.scss +1 -1
- package/scss/wui/tour/_base.scss +1 -1
- package/scss/wui/tour/_end.scss +1 -1
- package/scss/wui/tour/_motion.scss +1 -1
- package/token-meanings.json +56 -64
- package/scss/_wui-aliases.scss +0 -495
package/scss/wui/_choice.scss
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
gap: 11px;
|
|
15
15
|
padding: 20px;
|
|
16
16
|
border: 1.5px solid var(--color-border);
|
|
17
|
-
border-radius: var(--radius);
|
|
17
|
+
border-radius: var(--wui-radius-md);
|
|
18
18
|
background: var(--color-surface);
|
|
19
19
|
cursor: pointer;
|
|
20
20
|
transition:
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
background: color-mix(in srgb, var(--color-primary) 5%, transparent);
|
|
34
34
|
}
|
|
35
35
|
.struct-card.checked .struct-card-title {
|
|
36
|
-
color: var(--color-primary-
|
|
36
|
+
color: var(--color-primary-text);
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
// A card that cannot change: its input is disabled directly or by a disabled fieldset.
|
|
@@ -71,11 +71,11 @@
|
|
|
71
71
|
}
|
|
72
72
|
.struct-card.checked .struct-card-ic {
|
|
73
73
|
background: var(--color-surface);
|
|
74
|
-
color: var(--color-primary-
|
|
74
|
+
color: var(--color-primary-text);
|
|
75
75
|
}
|
|
76
76
|
// Hover previews the chosen glyph colour; a card that cannot change keeps its grey.
|
|
77
77
|
.struct-card:hover:not(:has(.struct-card-input:disabled)) .struct-card-ic {
|
|
78
|
-
color: var(--color-primary-
|
|
78
|
+
color: var(--color-primary-text);
|
|
79
79
|
}
|
|
80
80
|
// An image in the round icon disc (React iconNode={<img …/>}) keeps its own colours whether or not
|
|
81
81
|
// the card is selected, fills the whole disc and is cropped to its circle, whatever the image's own
|
|
@@ -111,7 +111,7 @@
|
|
|
111
111
|
align-items: center;
|
|
112
112
|
justify-content: center;
|
|
113
113
|
background: transparent;
|
|
114
|
-
color: var(--color-primary-
|
|
114
|
+
color: var(--color-primary-text);
|
|
115
115
|
opacity: 0;
|
|
116
116
|
transform: scale(0.5);
|
|
117
117
|
transition:
|
|
@@ -267,10 +267,10 @@
|
|
|
267
267
|
}
|
|
268
268
|
.search-select-control.open {
|
|
269
269
|
// White fill + the active/focus border, matching a focused text input (which lifts off the
|
|
270
|
-
// muted resting fill onto white with a --color-
|
|
270
|
+
// muted resting fill onto white with a --color-field-border-focus border). Keeps the control seamless
|
|
271
271
|
// with the open menu and the floated label's white mask.
|
|
272
272
|
background: var(--color-surface);
|
|
273
|
-
border-color: var(--color-
|
|
273
|
+
border-color: var(--color-field-border-focus);
|
|
274
274
|
}
|
|
275
275
|
// Closed again (a value picked, Escape), focus stays on the trigger: it returns to the resting
|
|
276
276
|
// fill and border, as the date picker does. Only the open list shows the focus border; keyboard
|
|
@@ -308,23 +308,23 @@
|
|
|
308
308
|
// Sizes — mirror AppInput's .input-sm / .input-lg so a select lines up with the
|
|
309
309
|
// text fields beside it. md is the base .search-select-control height.
|
|
310
310
|
.search-select-sm .search-select-control {
|
|
311
|
-
height: var(--wui-control-
|
|
312
|
-
min-height: var(--wui-control-
|
|
311
|
+
height: var(--wui-control-sm);
|
|
312
|
+
min-height: var(--wui-control-sm);
|
|
313
313
|
font-size: 13px;
|
|
314
|
-
border-radius: var(--wui-field-radius
|
|
314
|
+
border-radius: var(--wui-field-sm-radius);
|
|
315
315
|
}
|
|
316
316
|
.search-select-lg .search-select-control {
|
|
317
|
-
height: var(--wui-control-
|
|
318
|
-
min-height: var(--wui-control-
|
|
317
|
+
height: var(--wui-control-lg);
|
|
318
|
+
min-height: var(--wui-control-lg);
|
|
319
319
|
font-size: 16px;
|
|
320
|
-
border-radius: var(--wui-field-radius
|
|
320
|
+
border-radius: var(--wui-field-lg-radius);
|
|
321
321
|
}
|
|
322
322
|
// xl: the 52px select, the same height as an AppInput at size="xl". A literal height, as on the input.
|
|
323
323
|
.wui-search-select-xl .search-select-control {
|
|
324
324
|
height: 52px;
|
|
325
325
|
min-height: 52px;
|
|
326
326
|
font-size: 16px;
|
|
327
|
-
border-radius: var(--wui-field-radius
|
|
327
|
+
border-radius: var(--wui-field-lg-radius);
|
|
328
328
|
}
|
|
329
329
|
// Multi-select grows with its chips, so a size sets the FLOOR (min-height from the rule
|
|
330
330
|
// above) but never a fixed height — reset height:auto so a second row of chips can appear.
|
|
@@ -335,13 +335,13 @@
|
|
|
335
335
|
// AppSelectMini is <wui-select compact>: sm sits on the 32px sm rung, lg one rung below the lg
|
|
336
336
|
// field, never under 32px. The compound selector outranks both the plain size rule and the compact rule.
|
|
337
337
|
.search-select-compact.search-select-sm .search-select-control {
|
|
338
|
-
height: var(--wui-control-
|
|
339
|
-
min-height: var(--wui-control-
|
|
338
|
+
height: var(--wui-control-sm);
|
|
339
|
+
min-height: var(--wui-control-sm);
|
|
340
340
|
font-size: 12px;
|
|
341
341
|
}
|
|
342
342
|
.search-select-compact.search-select-lg .search-select-control {
|
|
343
|
-
height: var(--wui-control-
|
|
344
|
-
min-height: var(--wui-control-
|
|
343
|
+
height: var(--wui-control-md);
|
|
344
|
+
min-height: var(--wui-control-md);
|
|
345
345
|
font-size: 14px;
|
|
346
346
|
}
|
|
347
347
|
|
|
@@ -413,8 +413,8 @@
|
|
|
413
413
|
// pagination) so a compact wui select and a compact native select read as one control
|
|
414
414
|
// rather than two sizes of the same idea.
|
|
415
415
|
.search-select-compact .search-select-control {
|
|
416
|
-
height: var(--wui-control-
|
|
417
|
-
min-height: var(--wui-control-
|
|
416
|
+
height: var(--wui-control-sm);
|
|
417
|
+
min-height: var(--wui-control-sm);
|
|
418
418
|
min-width: 64px;
|
|
419
419
|
padding: 0 10px;
|
|
420
420
|
font-size: 13px;
|
|
@@ -433,9 +433,9 @@
|
|
|
433
433
|
right: 0;
|
|
434
434
|
background: var(--color-surface);
|
|
435
435
|
border: 1px solid var(--color-border);
|
|
436
|
-
border-radius: var(--radius-lg);
|
|
436
|
+
border-radius: var(--wui-radius-lg);
|
|
437
437
|
corner-shape: squircle;
|
|
438
|
-
box-shadow: var(--shadow-
|
|
438
|
+
box-shadow: var(--wui-shadow-popover);
|
|
439
439
|
padding: 4px;
|
|
440
440
|
overflow: hidden;
|
|
441
441
|
}
|
|
@@ -460,7 +460,7 @@
|
|
|
460
460
|
padding: 0 12px;
|
|
461
461
|
height: 40px;
|
|
462
462
|
border: 1px solid var(--color-field-border);
|
|
463
|
-
border-radius: var(--radius);
|
|
463
|
+
border-radius: var(--wui-radius-md);
|
|
464
464
|
// AppInput's field model: muted resting fill that lifts to a clean surface on focus.
|
|
465
465
|
background: var(--color-field-bg);
|
|
466
466
|
color: var(--color-text-subtle);
|
|
@@ -472,10 +472,10 @@
|
|
|
472
472
|
}
|
|
473
473
|
.search-select-search:focus-within {
|
|
474
474
|
background: var(--color-surface);
|
|
475
|
-
border-color: var(--color-
|
|
475
|
+
border-color: var(--color-field-border-focus);
|
|
476
476
|
}
|
|
477
477
|
.search-select-search:focus-within svg {
|
|
478
|
-
color: var(--color-primary-
|
|
478
|
+
color: var(--color-primary-text);
|
|
479
479
|
}
|
|
480
480
|
.search-select-clear {
|
|
481
481
|
display: grid;
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
padding: 9px 14px;
|
|
530
530
|
line-height: 1.4;
|
|
531
531
|
border: none;
|
|
532
|
-
border-radius: var(--radius);
|
|
532
|
+
border-radius: var(--wui-radius-md);
|
|
533
533
|
corner-shape: squircle;
|
|
534
534
|
background: transparent;
|
|
535
535
|
font-size: 14px;
|
|
@@ -544,19 +544,19 @@
|
|
|
544
544
|
.search-select-option:hover,
|
|
545
545
|
.search-select-option.is-active {
|
|
546
546
|
background: color-mix(in srgb, var(--color-primary-soft) 55%, transparent);
|
|
547
|
-
color: var(--color-primary-
|
|
548
|
-
outline: 1px solid var(--color-
|
|
547
|
+
color: var(--color-primary-text);
|
|
548
|
+
outline: 1px solid var(--color-field-border-focus);
|
|
549
549
|
outline-offset: -1px;
|
|
550
550
|
}
|
|
551
551
|
.search-select-option.selected {
|
|
552
552
|
background: var(--color-primary-soft);
|
|
553
|
-
color: var(--color-primary-
|
|
553
|
+
color: var(--color-primary-text);
|
|
554
554
|
font-weight: 500;
|
|
555
555
|
}
|
|
556
556
|
// allow-custom's freeform row — reads as an action ("Add "…"") rather than a listed value.
|
|
557
557
|
.search-select-option-custom {
|
|
558
558
|
font-style: italic;
|
|
559
|
-
color: var(--color-primary-
|
|
559
|
+
color: var(--color-primary-text);
|
|
560
560
|
}
|
|
561
561
|
.search-select-empty {
|
|
562
562
|
padding: 12px 10px;
|
|
@@ -617,7 +617,7 @@
|
|
|
617
617
|
// this .open rule keeps it white (matching .search-select-control.open) instead of snapping
|
|
618
618
|
// back to grey the moment the dropdown appears.
|
|
619
619
|
background-color: var(--color-surface);
|
|
620
|
-
border-color: var(--color-
|
|
620
|
+
border-color: var(--color-field-border-focus);
|
|
621
621
|
box-shadow: none;
|
|
622
622
|
}
|
|
623
623
|
// Closing hands focus back to the trigger (so the keyboard user lands where they started), which
|
|
@@ -645,9 +645,9 @@ wui-date-range:not([aria-invalid="true"]) .daterange:not(.open) .daterange-trigg
|
|
|
645
645
|
padding: 18px;
|
|
646
646
|
background: var(--color-surface);
|
|
647
647
|
border: 1px solid var(--color-border);
|
|
648
|
-
border-radius: var(--radius-xl);
|
|
648
|
+
border-radius: var(--wui-radius-xl);
|
|
649
649
|
corner-shape: squircle;
|
|
650
|
-
box-shadow: var(--shadow-
|
|
650
|
+
box-shadow: var(--wui-shadow-popover);
|
|
651
651
|
animation: datepicker-in 0.14s ease;
|
|
652
652
|
}
|
|
653
653
|
.datepicker-pop.drop-up {
|
|
@@ -698,7 +698,7 @@ wui-date-range:not([aria-invalid="true"]) .daterange:not(.open) .daterange-trigg
|
|
|
698
698
|
}
|
|
699
699
|
button.datepicker-month:hover {
|
|
700
700
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
701
|
-
color: var(--color-primary-
|
|
701
|
+
color: var(--color-primary-text);
|
|
702
702
|
}
|
|
703
703
|
.datepicker-nav {
|
|
704
704
|
display: inline-flex;
|
|
@@ -723,7 +723,7 @@ button.datepicker-month:hover {
|
|
|
723
723
|
.datepicker-nav-btn:hover {
|
|
724
724
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
725
725
|
border-color: var(--color-primary);
|
|
726
|
-
color: var(--color-primary-
|
|
726
|
+
color: var(--color-primary-text);
|
|
727
727
|
}
|
|
728
728
|
.datepicker-weekdays {
|
|
729
729
|
display: grid;
|
|
@@ -775,7 +775,7 @@ button.datepicker-month:hover {
|
|
|
775
775
|
}
|
|
776
776
|
.datepicker-day:hover:not(:disabled):not(.is-selected) {
|
|
777
777
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
778
|
-
color: var(--color-primary-
|
|
778
|
+
color: var(--color-primary-text);
|
|
779
779
|
}
|
|
780
780
|
.datepicker-day.is-outside {
|
|
781
781
|
color: var(--color-text-subtle);
|
|
@@ -783,12 +783,12 @@ button.datepicker-month:hover {
|
|
|
783
783
|
}
|
|
784
784
|
.datepicker-day.is-today {
|
|
785
785
|
font-weight: 700;
|
|
786
|
-
color: var(--color-primary-
|
|
786
|
+
color: var(--color-primary-text);
|
|
787
787
|
box-shadow: inset 0 0 0 1.5px var(--color-primary);
|
|
788
788
|
}
|
|
789
789
|
.datepicker-day.is-selected {
|
|
790
790
|
background: var(--color-primary);
|
|
791
|
-
color: var(--color-primary
|
|
791
|
+
color: var(--color-on-primary);
|
|
792
792
|
font-weight: 600;
|
|
793
793
|
}
|
|
794
794
|
.datepicker-day:disabled {
|
|
@@ -814,10 +814,10 @@ button.datepicker-month:hover {
|
|
|
814
814
|
border: none;
|
|
815
815
|
background: transparent;
|
|
816
816
|
padding: 6px 12px;
|
|
817
|
-
border-radius: var(--radius);
|
|
817
|
+
border-radius: var(--wui-radius-md);
|
|
818
818
|
font-size: 13px;
|
|
819
819
|
font-weight: 600;
|
|
820
|
-
color: var(--color-primary-
|
|
820
|
+
color: var(--color-primary-text);
|
|
821
821
|
cursor: pointer;
|
|
822
822
|
transition: background 0.12s;
|
|
823
823
|
}
|
|
@@ -842,7 +842,7 @@ button.datepicker-month:hover {
|
|
|
842
842
|
justify-content: center;
|
|
843
843
|
height: 48px;
|
|
844
844
|
border: none;
|
|
845
|
-
border-radius: var(--radius-lg, 12px);
|
|
845
|
+
border-radius: var(--wui-radius-lg, 12px);
|
|
846
846
|
background: transparent;
|
|
847
847
|
font-size: 13px;
|
|
848
848
|
font-weight: 500;
|
|
@@ -855,16 +855,16 @@ button.datepicker-month:hover {
|
|
|
855
855
|
}
|
|
856
856
|
.datepicker-cell:hover:not(:disabled):not(.is-selected) {
|
|
857
857
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
858
|
-
color: var(--color-primary-
|
|
858
|
+
color: var(--color-primary-text);
|
|
859
859
|
}
|
|
860
860
|
.datepicker-cell.is-today {
|
|
861
861
|
box-shadow: inset 0 0 0 1.5px var(--color-primary);
|
|
862
|
-
color: var(--color-primary-
|
|
862
|
+
color: var(--color-primary-text);
|
|
863
863
|
font-weight: 700;
|
|
864
864
|
}
|
|
865
865
|
.datepicker-cell.is-selected {
|
|
866
866
|
background: var(--color-primary);
|
|
867
|
-
color: var(--color-primary
|
|
867
|
+
color: var(--color-on-primary);
|
|
868
868
|
font-weight: 600;
|
|
869
869
|
}
|
|
870
870
|
.datepicker-cell:disabled {
|
|
@@ -960,7 +960,7 @@ button.datepicker-month:hover {
|
|
|
960
960
|
.daterange.open .daterange-trigger {
|
|
961
961
|
// Stay white while the two-month popover is open — see the note on .datepicker.open above.
|
|
962
962
|
background-color: var(--color-surface);
|
|
963
|
-
border-color: var(--color-
|
|
963
|
+
border-color: var(--color-field-border-focus);
|
|
964
964
|
box-shadow: none;
|
|
965
965
|
}
|
|
966
966
|
.daterange-pop {
|
|
@@ -974,9 +974,9 @@ button.datepicker-month:hover {
|
|
|
974
974
|
padding: 18px;
|
|
975
975
|
background: var(--color-surface);
|
|
976
976
|
border: 1px solid var(--color-border);
|
|
977
|
-
border-radius: var(--radius-xl);
|
|
977
|
+
border-radius: var(--wui-radius-xl);
|
|
978
978
|
corner-shape: squircle;
|
|
979
|
-
box-shadow: var(--shadow-
|
|
979
|
+
box-shadow: var(--wui-shadow-popover);
|
|
980
980
|
animation: datepicker-in 0.14s ease;
|
|
981
981
|
}
|
|
982
982
|
.daterange-pop.drop-up {
|
|
@@ -1008,13 +1008,13 @@ button.datepicker-month:hover {
|
|
|
1008
1008
|
// Days inside the chosen span get a soft rail; the two endpoints get the solid fill.
|
|
1009
1009
|
.datepicker-day.in-range {
|
|
1010
1010
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 12%, transparent));
|
|
1011
|
-
color: var(--color-primary-
|
|
1011
|
+
color: var(--color-primary-text);
|
|
1012
1012
|
border-radius: 6px;
|
|
1013
1013
|
}
|
|
1014
1014
|
.datepicker-day.is-range-start,
|
|
1015
1015
|
.datepicker-day.is-range-end {
|
|
1016
1016
|
background: var(--color-primary);
|
|
1017
|
-
color: var(--color-primary
|
|
1017
|
+
color: var(--color-on-primary);
|
|
1018
1018
|
font-weight: 600;
|
|
1019
1019
|
}
|
|
1020
1020
|
.daterange-hint {
|
|
@@ -1046,7 +1046,7 @@ button.datepicker-month:hover {
|
|
|
1046
1046
|
border: none;
|
|
1047
1047
|
background: transparent;
|
|
1048
1048
|
padding: 7px 10px;
|
|
1049
|
-
border-radius: var(--radius);
|
|
1049
|
+
border-radius: var(--wui-radius-md);
|
|
1050
1050
|
font-size: 13px;
|
|
1051
1051
|
font-weight: 500;
|
|
1052
1052
|
text-align: left;
|
|
@@ -1057,11 +1057,11 @@ button.datepicker-month:hover {
|
|
|
1057
1057
|
}
|
|
1058
1058
|
.wui-daterange-preset:hover:not(:disabled) {
|
|
1059
1059
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
1060
|
-
color: var(--color-primary-
|
|
1060
|
+
color: var(--color-primary-text);
|
|
1061
1061
|
}
|
|
1062
1062
|
.wui-daterange-preset.is-active {
|
|
1063
1063
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 12%, transparent));
|
|
1064
|
-
color: var(--color-primary-
|
|
1064
|
+
color: var(--color-primary-text);
|
|
1065
1065
|
font-weight: 600;
|
|
1066
1066
|
}
|
|
1067
1067
|
.wui-daterange-preset:disabled {
|
|
@@ -1117,10 +1117,10 @@ button.datepicker-month:hover {
|
|
|
1117
1117
|
display: flex;
|
|
1118
1118
|
align-items: center;
|
|
1119
1119
|
width: 100%;
|
|
1120
|
-
height: var(--wui-control-
|
|
1120
|
+
height: var(--wui-control-md);
|
|
1121
1121
|
border: 1px solid var(--color-field-border);
|
|
1122
|
-
// Match AppInput's field-radius ladder exactly (18px md), not the generic --radius (10px).
|
|
1123
|
-
border-radius: var(--wui-field-radius);
|
|
1122
|
+
// Match AppInput's field-radius ladder exactly (18px md), not the generic --wui-radius-md (10px).
|
|
1123
|
+
border-radius: var(--wui-field-md-radius);
|
|
1124
1124
|
// Match AppInput exactly: muted resting fill that lifts to a clean surface on focus.
|
|
1125
1125
|
background: var(--color-field-bg);
|
|
1126
1126
|
// Clip the inner control to the shell's rounded shape — a full-height child was painting
|
|
@@ -1144,7 +1144,7 @@ button.datepicker-month:hover {
|
|
|
1144
1144
|
// Match AppInput's focus: clean surface fill + a soft primary border.
|
|
1145
1145
|
.app-phone-number-input .phone-input-wrap:focus-within {
|
|
1146
1146
|
background: var(--color-surface);
|
|
1147
|
-
border-color: var(--color-
|
|
1147
|
+
border-color: var(--color-field-border-focus);
|
|
1148
1148
|
}
|
|
1149
1149
|
.app-phone-number-input .phone-input-wrap:has(> .input:disabled) {
|
|
1150
1150
|
background: var(--color-bg-muted);
|
|
@@ -1254,7 +1254,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1254
1254
|
.country-toggle:focus-visible {
|
|
1255
1255
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
1256
1256
|
outline-offset: var(--wui-focus-ring-offset);
|
|
1257
|
-
border-radius: var(--radius-sm);
|
|
1257
|
+
border-radius: var(--wui-radius-sm);
|
|
1258
1258
|
}
|
|
1259
1259
|
.country-toggle:disabled {
|
|
1260
1260
|
cursor: not-allowed;
|
|
@@ -1296,8 +1296,8 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1296
1296
|
// shell height/radius, the tel font, the dial-code text, and the adornment pad so
|
|
1297
1297
|
// the whole field steps together — md is the base block above.
|
|
1298
1298
|
.app-phone-number-input.phone-sm .phone-input-wrap {
|
|
1299
|
-
height: var(--wui-control-
|
|
1300
|
-
border-radius: var(--wui-field-radius
|
|
1299
|
+
height: var(--wui-control-sm);
|
|
1300
|
+
border-radius: var(--wui-field-sm-radius);
|
|
1301
1301
|
}
|
|
1302
1302
|
.app-phone-number-input.phone-sm {
|
|
1303
1303
|
--wui-phone-font-size: 13px;
|
|
@@ -1306,8 +1306,8 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1306
1306
|
padding-left: 10px;
|
|
1307
1307
|
}
|
|
1308
1308
|
.app-phone-number-input.phone-lg .phone-input-wrap {
|
|
1309
|
-
height: var(--wui-control-
|
|
1310
|
-
border-radius: var(--wui-field-radius
|
|
1309
|
+
height: var(--wui-control-lg);
|
|
1310
|
+
border-radius: var(--wui-field-lg-radius);
|
|
1311
1311
|
}
|
|
1312
1312
|
.app-phone-number-input.phone-lg {
|
|
1313
1313
|
--wui-phone-font-size: 16px;
|
|
@@ -1328,10 +1328,10 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1328
1328
|
max-width: calc(100vw - 16px);
|
|
1329
1329
|
padding: 4px;
|
|
1330
1330
|
border: 1px solid var(--color-border);
|
|
1331
|
-
border-radius: var(--radius-lg);
|
|
1331
|
+
border-radius: var(--wui-radius-lg);
|
|
1332
1332
|
corner-shape: squircle;
|
|
1333
1333
|
background: var(--color-surface);
|
|
1334
|
-
box-shadow: var(--shadow-
|
|
1334
|
+
box-shadow: var(--wui-shadow-popover);
|
|
1335
1335
|
overflow: hidden;
|
|
1336
1336
|
}
|
|
1337
1337
|
.dropdown-search-wrapper {
|
|
@@ -1349,14 +1349,14 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1349
1349
|
transition: color 0.12s ease;
|
|
1350
1350
|
}
|
|
1351
1351
|
.dropdown-search-wrapper:focus-within .dropdown-search-icon {
|
|
1352
|
-
color: var(--color-primary-
|
|
1352
|
+
color: var(--color-primary-text);
|
|
1353
1353
|
}
|
|
1354
1354
|
.dropdown-search-input {
|
|
1355
1355
|
width: 100%;
|
|
1356
1356
|
height: 40px;
|
|
1357
1357
|
padding: 0 12px 0 36px;
|
|
1358
1358
|
border: 1px solid var(--color-field-border);
|
|
1359
|
-
border-radius: var(--radius);
|
|
1359
|
+
border-radius: var(--wui-radius-md);
|
|
1360
1360
|
font-size: 14px;
|
|
1361
1361
|
color: var(--color-text);
|
|
1362
1362
|
// AppInput's field model: muted resting fill that lifts to a clean surface on focus.
|
|
@@ -1371,7 +1371,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1371
1371
|
// AppInput's exact focus: clean surface fill + its soft primary border token.
|
|
1372
1372
|
.dropdown-search-input:focus {
|
|
1373
1373
|
background: var(--color-surface);
|
|
1374
|
-
border-color: var(--color-
|
|
1374
|
+
border-color: var(--color-field-border-focus);
|
|
1375
1375
|
}
|
|
1376
1376
|
// AppInput's placeholder colour, not the browser default grey.
|
|
1377
1377
|
.dropdown-search-input::placeholder {
|
|
@@ -1403,7 +1403,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1403
1403
|
align-items: center;
|
|
1404
1404
|
gap: 10px;
|
|
1405
1405
|
padding: 9px 14px !important;
|
|
1406
|
-
border-radius: var(--radius) !important;
|
|
1406
|
+
border-radius: var(--wui-radius-md) !important;
|
|
1407
1407
|
corner-shape: squircle;
|
|
1408
1408
|
cursor: pointer;
|
|
1409
1409
|
color: var(--color-text) !important;
|
|
@@ -1423,7 +1423,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1423
1423
|
.country-dropdown-item:focus,
|
|
1424
1424
|
.country-dropdown-item.is-active {
|
|
1425
1425
|
background: var(--color-primary-soft) !important;
|
|
1426
|
-
color: var(--color-primary-
|
|
1426
|
+
color: var(--color-primary-text) !important;
|
|
1427
1427
|
}
|
|
1428
1428
|
// The tint alone is about 1.2:1; keyboard focus adds the ring, inset inside the scrolling list.
|
|
1429
1429
|
.country-dropdown-item:focus-visible {
|
|
@@ -1432,7 +1432,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1432
1432
|
}
|
|
1433
1433
|
.country-dropdown-item.selected {
|
|
1434
1434
|
background: var(--color-primary-soft) !important;
|
|
1435
|
-
color: var(--color-primary-
|
|
1435
|
+
color: var(--color-primary-text) !important;
|
|
1436
1436
|
font-weight: 500;
|
|
1437
1437
|
}
|
|
1438
1438
|
.country-dropdown-menu .wui-flag {
|
|
@@ -1462,7 +1462,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1462
1462
|
.selected-check-icon {
|
|
1463
1463
|
margin-left: auto;
|
|
1464
1464
|
display: flex;
|
|
1465
|
-
color: var(--color-primary-
|
|
1465
|
+
color: var(--color-primary-text);
|
|
1466
1466
|
}
|
|
1467
1467
|
.country-empty {
|
|
1468
1468
|
padding: 10px 16px;
|
|
@@ -1498,7 +1498,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1498
1498
|
width: 44px;
|
|
1499
1499
|
padding: 0;
|
|
1500
1500
|
border: none;
|
|
1501
|
-
border-radius: 0 var(--wui-field-radius) var(--wui-field-radius) 0;
|
|
1501
|
+
border-radius: 0 var(--wui-field-md-radius) var(--wui-field-md-radius) 0;
|
|
1502
1502
|
background: transparent;
|
|
1503
1503
|
color: var(--color-text-subtle);
|
|
1504
1504
|
cursor: pointer;
|
|
@@ -1509,7 +1509,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1509
1509
|
}
|
|
1510
1510
|
.wui-timepicker-toggle:hover:not(:disabled),
|
|
1511
1511
|
.timepicker.open .wui-timepicker-toggle {
|
|
1512
|
-
color: var(--color-primary-
|
|
1512
|
+
color: var(--color-primary-text);
|
|
1513
1513
|
}
|
|
1514
1514
|
.wui-timepicker-toggle:focus-visible {
|
|
1515
1515
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
@@ -1538,7 +1538,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1538
1538
|
.timepicker.open .timepicker-trigger {
|
|
1539
1539
|
// Stay white while the columns are open — see the note on .datepicker.open above.
|
|
1540
1540
|
background-color: var(--color-surface);
|
|
1541
|
-
border-color: var(--color-
|
|
1541
|
+
border-color: var(--color-field-border-focus);
|
|
1542
1542
|
box-shadow: none;
|
|
1543
1543
|
}
|
|
1544
1544
|
// Refused typed text keeps the soft danger border while the columns are open, as the shell's
|
|
@@ -1554,9 +1554,9 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1554
1554
|
padding: 8px;
|
|
1555
1555
|
background: var(--color-surface);
|
|
1556
1556
|
border: 1px solid var(--color-border);
|
|
1557
|
-
border-radius: var(--radius-lg);
|
|
1557
|
+
border-radius: var(--wui-radius-lg);
|
|
1558
1558
|
corner-shape: squircle;
|
|
1559
|
-
box-shadow: var(--shadow-
|
|
1559
|
+
box-shadow: var(--wui-shadow-popover);
|
|
1560
1560
|
animation: timepicker-in 0.14s ease;
|
|
1561
1561
|
}
|
|
1562
1562
|
.timepicker-pop.drop-up {
|
|
@@ -1615,7 +1615,7 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1615
1615
|
font-variant-numeric: tabular-nums;
|
|
1616
1616
|
color: var(--color-text);
|
|
1617
1617
|
cursor: pointer;
|
|
1618
|
-
border-radius: var(--radius-sm);
|
|
1618
|
+
border-radius: var(--wui-radius-sm);
|
|
1619
1619
|
transition:
|
|
1620
1620
|
background 0.1s,
|
|
1621
1621
|
color 0.1s;
|
|
@@ -1629,11 +1629,11 @@ wui-timepicker[aria-invalid="true"] .timepicker.open .timepicker-trigger {
|
|
|
1629
1629
|
.timepicker-option:hover:not(:disabled),
|
|
1630
1630
|
.timepicker-option.is-active {
|
|
1631
1631
|
background: var(--color-primary-soft, color-mix(in srgb, var(--color-primary) 8%, transparent));
|
|
1632
|
-
color: var(--color-primary-
|
|
1632
|
+
color: var(--color-primary-text);
|
|
1633
1633
|
}
|
|
1634
1634
|
.timepicker-option.is-selected {
|
|
1635
1635
|
background: var(--color-primary);
|
|
1636
|
-
color: var(--color-primary
|
|
1636
|
+
color: var(--color-on-primary);
|
|
1637
1637
|
font-weight: 600;
|
|
1638
1638
|
}
|
|
1639
1639
|
.timepicker-option:disabled {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
min-width: 0;
|
|
53
53
|
overflow: hidden;
|
|
54
54
|
color: var(--color-text-muted);
|
|
55
|
-
font-family: var(--font-
|
|
55
|
+
font-family: var(--wui-font-ui);
|
|
56
56
|
font-size: 12px;
|
|
57
57
|
text-overflow: ellipsis;
|
|
58
58
|
white-space: nowrap;
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
}
|
|
127
127
|
.wui-code-t-keyword,
|
|
128
128
|
.wui-code-t-tag {
|
|
129
|
-
color: var(--color-primary-
|
|
129
|
+
color: var(--color-primary-text);
|
|
130
130
|
}
|
|
131
131
|
.wui-code-t-function,
|
|
132
132
|
.wui-code-t-type,
|
|
@@ -60,7 +60,7 @@ wui-command-palette {
|
|
|
60
60
|
}
|
|
61
61
|
.wui-cmd-spinner {
|
|
62
62
|
flex: 0 0 auto;
|
|
63
|
-
color: var(--color-primary-
|
|
63
|
+
color: var(--color-primary-text);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
// Nested pages: the Back button and the path to the open page. The element fills the trail and
|
|
@@ -84,7 +84,7 @@ wui-command-palette {
|
|
|
84
84
|
height: 28px;
|
|
85
85
|
padding: 0;
|
|
86
86
|
border: 0;
|
|
87
|
-
border-radius: var(--radius);
|
|
87
|
+
border-radius: var(--wui-radius-md);
|
|
88
88
|
corner-shape: squircle;
|
|
89
89
|
background: transparent;
|
|
90
90
|
color: var(--color-text-muted);
|
|
@@ -173,7 +173,7 @@ button.wui-cmd-crumb:focus-visible {
|
|
|
173
173
|
align-items: center;
|
|
174
174
|
gap: 12px;
|
|
175
175
|
padding: 8px 10px;
|
|
176
|
-
border-radius: var(--radius);
|
|
176
|
+
border-radius: var(--wui-radius-md);
|
|
177
177
|
corner-shape: squircle;
|
|
178
178
|
color: var(--color-text);
|
|
179
179
|
cursor: pointer;
|
|
@@ -184,7 +184,7 @@ button.wui-cmd-crumb:focus-visible {
|
|
|
184
184
|
// an inset ring makes it plain; inset, because the list scrolls and would clip an outer ring.
|
|
185
185
|
.wui-cmd-item[aria-selected="true"] {
|
|
186
186
|
background: var(--color-primary-soft);
|
|
187
|
-
color: var(--color-primary-
|
|
187
|
+
color: var(--color-primary-text);
|
|
188
188
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
189
189
|
outline-offset: var(--wui-focus-ring-inset);
|
|
190
190
|
}
|
|
@@ -199,14 +199,14 @@ button.wui-cmd-crumb:focus-visible {
|
|
|
199
199
|
place-items: center;
|
|
200
200
|
width: 32px;
|
|
201
201
|
height: 32px;
|
|
202
|
-
border-radius: var(--radius);
|
|
202
|
+
border-radius: var(--wui-radius-md);
|
|
203
203
|
corner-shape: squircle;
|
|
204
204
|
background: var(--color-bg-muted);
|
|
205
205
|
color: var(--color-text-muted);
|
|
206
206
|
}
|
|
207
207
|
.wui-cmd-item[aria-selected="true"] .wui-cmd-item-icon {
|
|
208
208
|
background: var(--color-surface);
|
|
209
|
-
color: var(--color-primary-
|
|
209
|
+
color: var(--color-primary-text);
|
|
210
210
|
}
|
|
211
211
|
.wui-cmd-item-text {
|
|
212
212
|
display: flex;
|
|
@@ -242,9 +242,9 @@ button.wui-cmd-crumb:focus-visible {
|
|
|
242
242
|
flex: 0 0 auto;
|
|
243
243
|
}
|
|
244
244
|
.wui-cmd-item[aria-selected="true"] > .wui-kbd {
|
|
245
|
-
border-color: var(--color-primary-
|
|
245
|
+
border-color: var(--color-primary-text);
|
|
246
246
|
background: var(--color-surface);
|
|
247
|
-
color: var(--color-primary-
|
|
247
|
+
color: var(--color-primary-text);
|
|
248
248
|
}
|
|
249
249
|
// A phone has no keyboard to press them on.
|
|
250
250
|
@media (hover: none) and (pointer: coarse) {
|
|
@@ -303,5 +303,5 @@ button.wui-cmd-crumb:focus-visible {
|
|
|
303
303
|
|
|
304
304
|
// The shared pressed wash of wui/interaction, restated here so it ships with this on-demand layer.
|
|
305
305
|
:is(.wui-cmd-back, button.wui-cmd-crumb):active:not(:disabled, [aria-disabled="true"]) {
|
|
306
|
-
background-image: linear-gradient(var(--
|
|
306
|
+
background-image: linear-gradient(var(--wui-pressed-overlay), var(--wui-pressed-overlay)) !important;
|
|
307
307
|
}
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
padding: 0 2px;
|
|
85
85
|
border-radius: var(--wui-radius-sm);
|
|
86
86
|
background: var(--color-primary-soft);
|
|
87
|
-
color: var(--color-primary-
|
|
87
|
+
color: var(--color-primary-text);
|
|
88
88
|
font-weight: 500;
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -142,9 +142,9 @@ button.wui-reaction:hover,
|
|
|
142
142
|
padding: 4px;
|
|
143
143
|
background: var(--color-surface);
|
|
144
144
|
border: 1px solid var(--color-border);
|
|
145
|
-
border-radius: var(--radius-lg);
|
|
145
|
+
border-radius: var(--wui-radius-lg);
|
|
146
146
|
corner-shape: squircle;
|
|
147
|
-
box-shadow: var(--shadow-
|
|
147
|
+
box-shadow: var(--wui-shadow-popover);
|
|
148
148
|
}
|
|
149
149
|
.wui-reaction-picker[hidden] {
|
|
150
150
|
display: none;
|
|
@@ -156,7 +156,7 @@ button.wui-reaction:hover,
|
|
|
156
156
|
width: 36px;
|
|
157
157
|
height: 36px;
|
|
158
158
|
border: 0;
|
|
159
|
-
border-radius: var(--radius);
|
|
159
|
+
border-radius: var(--wui-radius-md);
|
|
160
160
|
background: transparent;
|
|
161
161
|
font-size: 18px;
|
|
162
162
|
cursor: pointer;
|
|
@@ -184,7 +184,7 @@ button.wui-reaction:hover,
|
|
|
184
184
|
cursor: pointer;
|
|
185
185
|
}
|
|
186
186
|
.wui-comment-action:hover {
|
|
187
|
-
color: var(--color-primary-
|
|
187
|
+
color: var(--color-primary-text);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
.wui-comment-confirm {
|
|
@@ -53,7 +53,7 @@ wui-consent-banner[tour-open] {
|
|
|
53
53
|
background: var(--color-surface);
|
|
54
54
|
border: 1px solid var(--color-border);
|
|
55
55
|
border-radius: var(--wui-radius-lg);
|
|
56
|
-
box-shadow: var(--wui-shadow-
|
|
56
|
+
box-shadow: var(--wui-shadow-modal);
|
|
57
57
|
color: var(--color-text);
|
|
58
58
|
text-align: start;
|
|
59
59
|
pointer-events: auto;
|
|
@@ -78,7 +78,7 @@ wui-consent-banner[tour-open] {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
.wui-consent-banner-policy {
|
|
81
|
-
color: var(--color-primary-
|
|
81
|
+
color: var(--color-primary-text);
|
|
82
82
|
font-weight: 500;
|
|
83
83
|
}
|
|
84
84
|
|