@webority/theme 0.99.0 → 0.100.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/_overlays.scss
CHANGED
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
// deep drop shadow.
|
|
68
68
|
box-shadow:
|
|
69
69
|
0 0 0 1px color-mix(in srgb, var(--color-text) 10%, transparent),
|
|
70
|
-
var(--shadow-
|
|
70
|
+
var(--wui-shadow-modal);
|
|
71
71
|
background: var(--color-surface);
|
|
72
72
|
}
|
|
73
73
|
// `--wui-modal-max-width` is how a caller sets an explicit width. It is set on the
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
// it on `.modal-dialog`, so the same `maxWidth="800"` produced two different dialogs.
|
|
79
79
|
.wui-modal {
|
|
80
80
|
background: var(--color-surface);
|
|
81
|
-
border-radius: var(--radius-xl);
|
|
81
|
+
border-radius: var(--wui-radius-xl);
|
|
82
82
|
corner-shape: squircle;
|
|
83
83
|
border: none;
|
|
84
84
|
width: 100%;
|
|
@@ -149,11 +149,11 @@
|
|
|
149
149
|
justify-content: center;
|
|
150
150
|
width: 34px;
|
|
151
151
|
height: 34px;
|
|
152
|
-
border-radius: var(--radius);
|
|
152
|
+
border-radius: var(--wui-radius-md);
|
|
153
153
|
corner-shape: squircle;
|
|
154
154
|
flex: none;
|
|
155
155
|
background: var(--color-primary-soft);
|
|
156
|
-
color: var(--color-primary-
|
|
156
|
+
color: var(--color-primary-text);
|
|
157
157
|
}
|
|
158
158
|
|
|
159
159
|
// Break long unbroken names so they wrap within the heading instead of
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
font-weight: 700;
|
|
178
178
|
letter-spacing: 0.06em;
|
|
179
179
|
text-transform: uppercase;
|
|
180
|
-
color: var(--color-primary-
|
|
180
|
+
color: var(--color-primary-text);
|
|
181
181
|
margin-bottom: 2px;
|
|
182
182
|
}
|
|
183
183
|
// `tone` tints the header icon tile and the eyebrow, so a destructive or a success dialog
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
line-height: 1;
|
|
282
282
|
background: var(--color-bg-subtle);
|
|
283
283
|
color: var(--color-text-muted);
|
|
284
|
-
border-radius: var(--radius-lg);
|
|
284
|
+
border-radius: var(--wui-radius-lg);
|
|
285
285
|
corner-shape: squircle;
|
|
286
286
|
transition:
|
|
287
287
|
background 180ms cubic-bezier(0.4, 0, 0.2, 1),
|
|
@@ -290,8 +290,8 @@
|
|
|
290
290
|
@media (max-width: 575.98px), (pointer: coarse) {
|
|
291
291
|
.wui-modal-close,
|
|
292
292
|
.wui-drawer-close {
|
|
293
|
-
width: var(--wui-control-
|
|
294
|
-
height: var(--wui-control-
|
|
293
|
+
width: var(--wui-control-md);
|
|
294
|
+
height: var(--wui-control-md);
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
.wui-modal-close:hover,
|
|
@@ -467,9 +467,9 @@
|
|
|
467
467
|
:where(.tooltip.wui-tooltip) {
|
|
468
468
|
--wui-tooltip-bg: var(--color-surface);
|
|
469
469
|
--wui-tooltip-color: var(--color-text);
|
|
470
|
-
--wui-tooltip-border: var(--color-border-
|
|
471
|
-
--wui-tooltip-radius: var(--radius, 10px);
|
|
472
|
-
--wui-tooltip-shadow: var(--wui-shadow-
|
|
470
|
+
--wui-tooltip-border: var(--color-border-subtle);
|
|
471
|
+
--wui-tooltip-radius: var(--wui-radius-md, 10px);
|
|
472
|
+
--wui-tooltip-shadow: var(--wui-shadow-popover);
|
|
473
473
|
// Size is these four vars — the `md` default. A size-* class swaps them; a caller can
|
|
474
474
|
// override any one from its own className for a fully custom size.
|
|
475
475
|
--wui-tooltip-max-width: 240px;
|
|
@@ -533,12 +533,12 @@
|
|
|
533
533
|
width: max-content;
|
|
534
534
|
max-width: 240px;
|
|
535
535
|
padding: 7px 11px;
|
|
536
|
-
border-radius: var(--radius, 10px);
|
|
536
|
+
border-radius: var(--wui-radius-md, 10px);
|
|
537
537
|
corner-shape: squircle;
|
|
538
538
|
background: var(--color-surface);
|
|
539
539
|
color: var(--color-text);
|
|
540
|
-
border: 1px solid var(--color-border-
|
|
541
|
-
box-shadow: var(--wui-shadow-
|
|
540
|
+
border: 1px solid var(--color-border-subtle);
|
|
541
|
+
box-shadow: var(--wui-shadow-popover);
|
|
542
542
|
font-size: 0.8125rem;
|
|
543
543
|
font-weight: 500;
|
|
544
544
|
line-height: 1.4;
|
|
@@ -590,7 +590,7 @@
|
|
|
590
590
|
}
|
|
591
591
|
.tooltip.wui-tooltip.tone-primary {
|
|
592
592
|
--wui-tooltip-bg: var(--color-primary);
|
|
593
|
-
--wui-tooltip-color: var(--color-primary
|
|
593
|
+
--wui-tooltip-color: var(--color-on-primary);
|
|
594
594
|
--wui-tooltip-border: transparent;
|
|
595
595
|
}
|
|
596
596
|
.tooltip.wui-tooltip.tone-success {
|
|
@@ -656,8 +656,8 @@
|
|
|
656
656
|
// The full-strength border, not border-light: on a white page the surface-on-white
|
|
657
657
|
// card otherwise merges into the background (the overlay shadow alone is too soft).
|
|
658
658
|
border: 1px solid var(--color-border);
|
|
659
|
-
border-radius: var(--radius-lg, 12px);
|
|
660
|
-
box-shadow: var(--wui-shadow-
|
|
659
|
+
border-radius: var(--wui-radius-lg, 12px);
|
|
660
|
+
box-shadow: var(--wui-shadow-popover);
|
|
661
661
|
overflow: hidden;
|
|
662
662
|
touch-action: pan-y;
|
|
663
663
|
user-select: none;
|
|
@@ -847,10 +847,10 @@
|
|
|
847
847
|
font-weight: 600;
|
|
848
848
|
color: var(--color-text-subtle);
|
|
849
849
|
background: var(--color-surface);
|
|
850
|
-
border: 1px solid var(--color-border-
|
|
850
|
+
border: 1px solid var(--color-border-subtle);
|
|
851
851
|
border-radius: 999px;
|
|
852
852
|
padding: 2px 12px;
|
|
853
|
-
box-shadow: var(--wui-shadow-
|
|
853
|
+
box-shadow: var(--wui-shadow-popover);
|
|
854
854
|
}
|
|
855
855
|
|
|
856
856
|
@keyframes wui-toast-countdown {
|
|
@@ -881,13 +881,13 @@
|
|
|
881
881
|
// materializes softly while the status icon grows from a dot with a slight overshoot,
|
|
882
882
|
// and the message trails in last.
|
|
883
883
|
.wui-toast--anim-organic {
|
|
884
|
-
animation: wui-toast-materialize 360ms var(--wui-ease-out
|
|
884
|
+
animation: wui-toast-materialize 360ms var(--wui-ease-out);
|
|
885
885
|
}
|
|
886
886
|
.wui-toast--anim-organic .wui-toast-icon {
|
|
887
887
|
animation: wui-toast-icon-grow 420ms 60ms cubic-bezier(0.34, 1.45, 0.64, 1) backwards;
|
|
888
888
|
}
|
|
889
889
|
.wui-toast--anim-organic .wui-toast-content {
|
|
890
|
-
animation: wui-toast-content-in 300ms 190ms var(--wui-ease-out
|
|
890
|
+
animation: wui-toast-content-in 300ms 190ms var(--wui-ease-out) backwards;
|
|
891
891
|
}
|
|
892
892
|
|
|
893
893
|
// `jelly` — drops in with a squash-and-stretch landing.
|
package/scss/wui/_pending.scss
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// and the field does not jump or flash option text.
|
|
4
4
|
:is(wui-multiselect, wui-autocomplete, wui-taginput, wui-timepicker, wui-date-range, wui-phone, wui-country-select, wui-slider, wui-mention-input):not(:defined) {
|
|
5
5
|
display: block;
|
|
6
|
-
min-height: var(--wui-control-
|
|
6
|
+
min-height: var(--wui-control-md);
|
|
7
7
|
}
|
|
8
8
|
:is(wui-multiselect, wui-autocomplete, wui-taginput, wui-timepicker, wui-date-range, wui-phone, wui-country-select, wui-slider, wui-mention-input):not(:defined) > wui-option {
|
|
9
9
|
display: none;
|
package/scss/wui/_rich-text.scss
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// Part of the wui-components layer; see _wui-components.scss for the load order. The shell wears the
|
|
4
4
|
// shared field chrome (muted fill at rest, white surface and brand border on focus, soft danger
|
|
5
5
|
// border when invalid) around a toolbar and the editable surface; the content takes the page's
|
|
6
|
-
// type. Every colour is a token the dark remap in
|
|
6
|
+
// type. Every colour is a token the dark remap in _tokens.generated.scss flips with the rest of the portal.
|
|
7
7
|
|
|
8
8
|
wui-rich-text {
|
|
9
9
|
display: block;
|
|
@@ -27,7 +27,7 @@ wui-rich-text:not(:defined) > textarea {
|
|
|
27
27
|
flex-direction: column;
|
|
28
28
|
width: 100%;
|
|
29
29
|
border: 1px solid var(--color-field-border);
|
|
30
|
-
border-radius: var(--wui-field-radius);
|
|
30
|
+
border-radius: var(--wui-field-md-radius);
|
|
31
31
|
background: var(--color-field-bg);
|
|
32
32
|
color: var(--color-text);
|
|
33
33
|
font-size: 14px;
|
|
@@ -42,7 +42,7 @@ wui-rich-text:not(:defined) > textarea {
|
|
|
42
42
|
}
|
|
43
43
|
.wui-rich-text-shell:focus-within {
|
|
44
44
|
background: var(--color-surface);
|
|
45
|
-
border-color: var(--color-
|
|
45
|
+
border-color: var(--color-field-border-focus);
|
|
46
46
|
}
|
|
47
47
|
wui-rich-text[aria-invalid="true"] .wui-rich-text-shell,
|
|
48
48
|
wui-rich-text[aria-invalid="true"] .wui-rich-text-shell:focus-within {
|
|
@@ -151,7 +151,7 @@ wui-rich-text[readonly] .wui-rich-text-toolbar {
|
|
|
151
151
|
height: 32px;
|
|
152
152
|
padding: 0 10px;
|
|
153
153
|
border: 1px solid var(--color-border);
|
|
154
|
-
border-radius: var(--wui-field-radius
|
|
154
|
+
border-radius: var(--wui-field-sm-radius);
|
|
155
155
|
background: var(--color-surface);
|
|
156
156
|
color: var(--color-text);
|
|
157
157
|
font: inherit;
|
|
@@ -165,7 +165,7 @@ wui-rich-text[readonly] .wui-rich-text-toolbar {
|
|
|
165
165
|
}
|
|
166
166
|
.wui-rich-text-link-input:focus {
|
|
167
167
|
outline: none;
|
|
168
|
-
border-color: var(--color-
|
|
168
|
+
border-color: var(--color-field-border-focus);
|
|
169
169
|
}
|
|
170
170
|
.wui-rich-text-link-input[aria-invalid="true"] {
|
|
171
171
|
border-color: color-mix(in srgb, var(--color-danger) 30%, transparent);
|
|
@@ -185,7 +185,7 @@ wui-rich-text[readonly] .wui-rich-text-toolbar {
|
|
|
185
185
|
}
|
|
186
186
|
.wui-rich-text-link-apply {
|
|
187
187
|
background: var(--color-primary);
|
|
188
|
-
color: var(--color-primary
|
|
188
|
+
color: var(--color-on-primary);
|
|
189
189
|
}
|
|
190
190
|
.wui-rich-text-link-apply:hover {
|
|
191
191
|
background: var(--color-primary-hover);
|
|
@@ -308,5 +308,5 @@ wui-rich-text[readonly] .wui-rich-text-prose {
|
|
|
308
308
|
.wui-rich-text-link-cancel,
|
|
309
309
|
.wui-rich-text-link-remove
|
|
310
310
|
):active:not(:disabled, [aria-disabled="true"]) {
|
|
311
|
-
background-image: linear-gradient(var(--
|
|
311
|
+
background-image: linear-gradient(var(--wui-pressed-overlay), var(--wui-pressed-overlay)) !important;
|
|
312
312
|
}
|
|
@@ -56,7 +56,7 @@ $wui-roll-cell: 1.2em;
|
|
|
56
56
|
}
|
|
57
57
|
// Only a figure that is moving has a transition, so a still render never catches a reel mid-move.
|
|
58
58
|
.wui-rolling-number[data-rolling] .wui-rolling-number-reel {
|
|
59
|
-
transition: transform var(--wui-roll-duration, 600ms) var(--wui-ease-out
|
|
59
|
+
transition: transform var(--wui-roll-duration, 600ms) var(--wui-ease-out);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
.wui-score-scale__item--selected {
|
|
36
36
|
border-color: var(--color-primary);
|
|
37
37
|
background: var(--color-primary);
|
|
38
|
-
color: var(--color-primary
|
|
38
|
+
color: var(--color-on-primary);
|
|
39
39
|
}
|
|
40
40
|
.wui-score-scale__item:has(input:focus-visible) {
|
|
41
41
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
package/scss/wui/_sections.scss
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
.wui-section-eyebrow {
|
|
50
50
|
margin: 0;
|
|
51
|
-
color: var(--color-primary-
|
|
51
|
+
color: var(--color-primary-text);
|
|
52
52
|
font-size: var(--wui-fs-sm);
|
|
53
53
|
font-weight: 600;
|
|
54
54
|
letter-spacing: 0.04em;
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
border-color: transparent;
|
|
68
68
|
}
|
|
69
69
|
.wui-section-eyebrow-primary {
|
|
70
|
-
@include wui-tone-pill-colors(primary, var(--color-primary-
|
|
70
|
+
@include wui-tone-pill-colors(primary, var(--color-primary-text));
|
|
71
71
|
border-color: color-mix(in srgb, var(--color-primary) 25%, transparent);
|
|
72
72
|
}
|
|
73
73
|
.wui-section-eyebrow-success {
|
|
@@ -125,7 +125,7 @@
|
|
|
125
125
|
display: block;
|
|
126
126
|
width: 100%;
|
|
127
127
|
height: auto;
|
|
128
|
-
border-radius: var(--radius-xl);
|
|
128
|
+
border-radius: var(--wui-radius-xl);
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
// ── Hero ──
|
|
@@ -180,9 +180,9 @@
|
|
|
180
180
|
width: 3rem;
|
|
181
181
|
height: 3rem;
|
|
182
182
|
margin-bottom: 0.5rem;
|
|
183
|
-
border-radius: var(--radius-lg);
|
|
183
|
+
border-radius: var(--wui-radius-lg);
|
|
184
184
|
background: var(--color-primary-soft);
|
|
185
|
-
color: var(--color-primary-
|
|
185
|
+
color: var(--color-primary-text);
|
|
186
186
|
}
|
|
187
187
|
.wui-section-feature-title {
|
|
188
188
|
margin: 0;
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
}
|
|
239
239
|
.wui-section-logo a {
|
|
240
240
|
display: inline-flex;
|
|
241
|
-
border-radius: var(--radius-sm);
|
|
241
|
+
border-radius: var(--wui-radius-sm);
|
|
242
242
|
}
|
|
243
243
|
.wui-section-logo a:focus-visible {
|
|
244
244
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
@@ -284,7 +284,7 @@
|
|
|
284
284
|
margin: 0;
|
|
285
285
|
padding: 1.75rem;
|
|
286
286
|
border: 1px solid var(--color-border);
|
|
287
|
-
border-radius: var(--radius-xl);
|
|
287
|
+
border-radius: var(--wui-radius-xl);
|
|
288
288
|
background: var(--color-surface);
|
|
289
289
|
}
|
|
290
290
|
.wui-section-testimonial-quote {
|
|
@@ -341,7 +341,7 @@
|
|
|
341
341
|
width: 100%;
|
|
342
342
|
max-width: none;
|
|
343
343
|
padding: clamp(2rem, 1.5rem + 3vw, 4rem);
|
|
344
|
-
border-radius: var(--radius-xl);
|
|
344
|
+
border-radius: var(--wui-radius-xl);
|
|
345
345
|
background: var(--color-primary-soft);
|
|
346
346
|
}
|
|
347
347
|
.wui-section-call-to-action .wui-section-subtitle {
|
|
@@ -75,13 +75,13 @@
|
|
|
75
75
|
text-decoration: none;
|
|
76
76
|
}
|
|
77
77
|
.wui-tabbar-item.active {
|
|
78
|
-
color: var(--color-primary-
|
|
78
|
+
color: var(--color-primary-text);
|
|
79
79
|
font-weight: 600;
|
|
80
80
|
}
|
|
81
81
|
.wui-tabbar-item:focus-visible {
|
|
82
82
|
outline: var(--wui-focus-ring-width) solid var(--color-focus-ring);
|
|
83
83
|
outline-offset: -4px;
|
|
84
|
-
border-radius: var(--radius-lg);
|
|
84
|
+
border-radius: var(--wui-radius-lg);
|
|
85
85
|
}
|
|
86
86
|
.wui-tabbar-icon {
|
|
87
87
|
display: inline-grid;
|
|
@@ -147,16 +147,16 @@
|
|
|
147
147
|
left: auto;
|
|
148
148
|
max-width: calc(100vw - 24px);
|
|
149
149
|
border: 1px solid var(--color-border);
|
|
150
|
-
border-radius: var(--radius-lg);
|
|
150
|
+
border-radius: var(--wui-radius-lg);
|
|
151
151
|
background: var(--color-surface);
|
|
152
|
-
box-shadow: var(--shadow-
|
|
152
|
+
box-shadow: var(--wui-shadow-popover);
|
|
153
153
|
}
|
|
154
154
|
.wui-usermenu-menu .dropdown-item {
|
|
155
155
|
display: flex;
|
|
156
156
|
align-items: center;
|
|
157
157
|
gap: 10px;
|
|
158
158
|
min-height: 44px;
|
|
159
|
-
border-radius: var(--radius-sm);
|
|
159
|
+
border-radius: var(--wui-radius-sm);
|
|
160
160
|
color: var(--color-text-body);
|
|
161
161
|
white-space: normal;
|
|
162
162
|
}
|
|
@@ -296,7 +296,7 @@
|
|
|
296
296
|
padding: 0 4px;
|
|
297
297
|
border: 0;
|
|
298
298
|
background: none;
|
|
299
|
-
color: var(--color-primary-
|
|
299
|
+
color: var(--color-primary-text);
|
|
300
300
|
font: inherit;
|
|
301
301
|
font-size: 14px;
|
|
302
302
|
font-weight: 500;
|
|
@@ -321,7 +321,7 @@
|
|
|
321
321
|
gap: 12px;
|
|
322
322
|
min-height: 44px;
|
|
323
323
|
padding: 12px 16px;
|
|
324
|
-
border-bottom: 1px solid var(--color-border-
|
|
324
|
+
border-bottom: 1px solid var(--color-border-subtle);
|
|
325
325
|
color: var(--color-text-body);
|
|
326
326
|
text-decoration: none;
|
|
327
327
|
}
|
|
@@ -382,7 +382,7 @@ a.wui-bell-item:focus-visible {
|
|
|
382
382
|
justify-content: center;
|
|
383
383
|
min-height: 44px;
|
|
384
384
|
border-top: 1px solid var(--color-border);
|
|
385
|
-
color: var(--color-primary-
|
|
385
|
+
color: var(--color-primary-text);
|
|
386
386
|
font-size: 14px;
|
|
387
387
|
font-weight: 500;
|
|
388
388
|
text-decoration: none;
|
|
@@ -429,9 +429,9 @@ a.wui-bell-item:focus-visible {
|
|
|
429
429
|
padding: 6px;
|
|
430
430
|
overflow-y: auto;
|
|
431
431
|
border: 1px solid var(--color-border);
|
|
432
|
-
border-radius: var(--radius-lg);
|
|
432
|
+
border-radius: var(--wui-radius-lg);
|
|
433
433
|
background: var(--color-surface);
|
|
434
|
-
box-shadow: var(--shadow-
|
|
434
|
+
box-shadow: var(--wui-shadow-popover);
|
|
435
435
|
}
|
|
436
436
|
.wui-topsearch-results[hidden] {
|
|
437
437
|
display: none;
|
|
@@ -439,7 +439,7 @@ a.wui-bell-item:focus-visible {
|
|
|
439
439
|
.wui-topsearch-group + .wui-topsearch-group {
|
|
440
440
|
margin-top: 4px;
|
|
441
441
|
padding-top: 4px;
|
|
442
|
-
border-top: 1px solid var(--color-border-
|
|
442
|
+
border-top: 1px solid var(--color-border-subtle);
|
|
443
443
|
}
|
|
444
444
|
.wui-topsearch-group-label {
|
|
445
445
|
padding: 6px 10px 4px;
|
|
@@ -455,7 +455,7 @@ a.wui-bell-item:focus-visible {
|
|
|
455
455
|
gap: 10px;
|
|
456
456
|
min-height: 44px;
|
|
457
457
|
padding: 6px 10px;
|
|
458
|
-
border-radius: var(--radius-sm);
|
|
458
|
+
border-radius: var(--wui-radius-sm);
|
|
459
459
|
color: var(--color-text-body);
|
|
460
460
|
text-decoration: none;
|
|
461
461
|
}
|
|
@@ -492,8 +492,8 @@ a.wui-bell-item:focus-visible {
|
|
|
492
492
|
}
|
|
493
493
|
.wui-topsearch-all {
|
|
494
494
|
margin-top: 4px;
|
|
495
|
-
border-top: 1px solid var(--color-border-
|
|
496
|
-
border-radius: 0 0 var(--radius-sm) var(--radius-sm);
|
|
495
|
+
border-top: 1px solid var(--color-border-subtle);
|
|
496
|
+
border-radius: 0 0 var(--wui-radius-sm) var(--wui-radius-sm);
|
|
497
497
|
}
|
|
498
498
|
.wui-topsearch-empty {
|
|
499
499
|
padding: 14px 10px;
|
|
@@ -525,7 +525,7 @@ a.wui-bell-item:focus-visible {
|
|
|
525
525
|
padding: 12px;
|
|
526
526
|
border-bottom: 1px solid var(--color-border);
|
|
527
527
|
background: var(--color-surface);
|
|
528
|
-
box-shadow: var(--shadow-
|
|
528
|
+
box-shadow: var(--wui-shadow-popover);
|
|
529
529
|
}
|
|
530
530
|
.wui-topsearch-results {
|
|
531
531
|
position: static;
|
package/scss/wui/_shell.scss
CHANGED
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
height: var(--wui-splash-size, 56px);
|
|
42
42
|
display: inline-grid;
|
|
43
43
|
place-items: center;
|
|
44
|
-
border-radius: var(--radius-lg);
|
|
44
|
+
border-radius: var(--wui-radius-lg);
|
|
45
45
|
background: var(--color-primary);
|
|
46
|
-
color: var(--color-primary
|
|
46
|
+
color: var(--color-on-primary);
|
|
47
47
|
font-size: calc(var(--wui-splash-size, 56px) * 0.39);
|
|
48
48
|
font-weight: 700;
|
|
49
49
|
animation: wui-splash-breathe 2.6s ease-in-out infinite;
|
|
@@ -385,9 +385,9 @@
|
|
|
385
385
|
gap: 12px;
|
|
386
386
|
// Comfortable row: 44px, which with the 2px group gap is a 46px pitch. Compact sets its own below.
|
|
387
387
|
// An explicit itemHeight sets --wui-nav-item-height on the shell and replaces all three heights.
|
|
388
|
-
min-height: var(--wui-nav-item-height, var(--wui-control-
|
|
388
|
+
min-height: var(--wui-nav-item-height, var(--wui-control-lg));
|
|
389
389
|
padding: 9px 14px;
|
|
390
|
-
border-radius: var(--radius-xl);
|
|
390
|
+
border-radius: var(--wui-radius-xl);
|
|
391
391
|
corner-shape: squircle;
|
|
392
392
|
font-size: 14px;
|
|
393
393
|
font-weight: 500;
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
}
|
|
406
406
|
@media (pointer: coarse) {
|
|
407
407
|
.app-shell[data-density="compact"] .app-nav-item:not(.app-nav-subitem) {
|
|
408
|
-
min-height: var(--wui-nav-item-height, var(--wui-control-
|
|
408
|
+
min-height: var(--wui-nav-item-height, var(--wui-control-lg));
|
|
409
409
|
}
|
|
410
410
|
}
|
|
411
411
|
.app-nav-item:hover {
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
}
|
|
416
416
|
.app-nav-item.active {
|
|
417
417
|
background: var(--color-primary-soft);
|
|
418
|
-
color: var(--color-primary-
|
|
418
|
+
color: var(--color-primary-text);
|
|
419
419
|
font-weight: 600;
|
|
420
420
|
}
|
|
421
421
|
.app-nav-item:focus-visible {
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
color: var(--color-text-subtle);
|
|
430
430
|
}
|
|
431
431
|
.app-nav-item.active .app-nav-icon {
|
|
432
|
-
color: var(--color-primary-
|
|
432
|
+
color: var(--color-primary-text);
|
|
433
433
|
}
|
|
434
434
|
.app-nav-text {
|
|
435
435
|
// Grows to fill the row so every trailing element — badge, trailing marker,
|
|
@@ -454,7 +454,7 @@
|
|
|
454
454
|
// tinted badge on top of it would vanish.
|
|
455
455
|
.app-nav-item.active .app-nav-badge {
|
|
456
456
|
background: var(--color-surface);
|
|
457
|
-
color: var(--color-primary-
|
|
457
|
+
color: var(--color-primary-text);
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
// Collapsed rail: icons only, centred. The label is removed from the flow rather
|
|
@@ -536,7 +536,7 @@
|
|
|
536
536
|
color: var(--color-text-subtle);
|
|
537
537
|
}
|
|
538
538
|
.app-nav-item.active .app-nav-trailing {
|
|
539
|
-
color: var(--color-primary-
|
|
539
|
+
color: var(--color-primary-text);
|
|
540
540
|
}
|
|
541
541
|
|
|
542
542
|
// ── Expandable sub-items ─────────────────────────────────────────────────────
|
|
@@ -628,7 +628,7 @@
|
|
|
628
628
|
padding: 0;
|
|
629
629
|
width: 32px;
|
|
630
630
|
height: 32px;
|
|
631
|
-
border-radius: var(--radius-sm, 6px);
|
|
631
|
+
border-radius: var(--wui-radius-sm, 6px);
|
|
632
632
|
cursor: pointer;
|
|
633
633
|
}
|
|
634
634
|
.wui-nav-split-toggle:hover {
|
|
@@ -658,13 +658,13 @@
|
|
|
658
658
|
top: 50%;
|
|
659
659
|
z-index: 40;
|
|
660
660
|
padding: 5px 10px;
|
|
661
|
-
border-radius: var(--radius-lg);
|
|
661
|
+
border-radius: var(--wui-radius-lg);
|
|
662
662
|
background: var(--color-text);
|
|
663
663
|
color: var(--color-surface);
|
|
664
664
|
font-size: 12px;
|
|
665
665
|
font-weight: 500;
|
|
666
666
|
white-space: nowrap;
|
|
667
|
-
box-shadow: var(--shadow-
|
|
667
|
+
box-shadow: var(--wui-shadow-card);
|
|
668
668
|
opacity: 0;
|
|
669
669
|
transform: translateY(-50%) scale(0.96);
|
|
670
670
|
transform-origin: left center;
|
|
@@ -700,7 +700,7 @@
|
|
|
700
700
|
margin-top: calc(9px + var(--app-sidebar-toggle-gap));
|
|
701
701
|
padding: 0;
|
|
702
702
|
border: 0;
|
|
703
|
-
border-radius: var(--radius-xl);
|
|
703
|
+
border-radius: var(--wui-radius-xl);
|
|
704
704
|
corner-shape: squircle;
|
|
705
705
|
background: transparent;
|
|
706
706
|
color: var(--color-text-muted);
|
|
@@ -722,7 +722,7 @@
|
|
|
722
722
|
pointer-events: none;
|
|
723
723
|
}
|
|
724
724
|
.app-sidebar-toggle:hover {
|
|
725
|
-
color: var(--color-primary-
|
|
725
|
+
color: var(--color-primary-text);
|
|
726
726
|
background: var(--color-bg-muted);
|
|
727
727
|
}
|
|
728
728
|
.app-sidebar-toggle:focus-visible {
|
|
@@ -771,7 +771,7 @@
|
|
|
771
771
|
}
|
|
772
772
|
.app-topbar[data-tone="primary"] {
|
|
773
773
|
background: var(--color-primary);
|
|
774
|
-
color: var(--color-primary
|
|
774
|
+
color: var(--color-on-primary);
|
|
775
775
|
}
|
|
776
776
|
.app-topbar[data-tone="primary"] :is(.app-topbar-menu, .topbar-icon-btn, .wui-usermenu-trigger) {
|
|
777
777
|
color: inherit;
|
|
@@ -783,10 +783,10 @@
|
|
|
783
783
|
}
|
|
784
784
|
.app-topbar[data-tone="primary"] .app-topbar-menu {
|
|
785
785
|
background: transparent;
|
|
786
|
-
border-color: color-mix(in srgb, var(--color-primary
|
|
786
|
+
border-color: color-mix(in srgb, var(--color-on-primary) 60%, transparent);
|
|
787
787
|
}
|
|
788
788
|
.app-topbar[data-tone="primary"] :is(.app-topbar-menu, .topbar-icon-btn, .wui-usermenu-trigger):hover {
|
|
789
|
-
background: color-mix(in srgb, var(--color-primary
|
|
789
|
+
background: color-mix(in srgb, var(--color-on-primary) 12%, transparent);
|
|
790
790
|
}
|
|
791
791
|
// Two groups: the leading one shrinks and ellipsises a long page title, the
|
|
792
792
|
// trailing one is pinned so actions are never pushed off-screen.
|
|
@@ -890,15 +890,15 @@
|
|
|
890
890
|
// Hidden once the slide-out ends so a closed drawer's links leave the Tab order.
|
|
891
891
|
visibility: hidden;
|
|
892
892
|
transition:
|
|
893
|
-
transform 0.24s var(--wui-ease-out
|
|
893
|
+
transform 0.24s var(--wui-ease-out),
|
|
894
894
|
visibility 0s linear 0.24s;
|
|
895
|
-
box-shadow: var(--shadow-
|
|
895
|
+
box-shadow: var(--wui-shadow-modal);
|
|
896
896
|
}
|
|
897
897
|
.app-shell.app-shell.mobile-open .app-sidebar {
|
|
898
898
|
transform: translateX(0);
|
|
899
899
|
visibility: visible;
|
|
900
900
|
transition:
|
|
901
|
-
transform 0.24s var(--wui-ease-out
|
|
901
|
+
transform 0.24s var(--wui-ease-out),
|
|
902
902
|
visibility 0s;
|
|
903
903
|
}
|
|
904
904
|
// The rail is a desktop affordance; on a drawer it makes no sense, so the
|
package/scss/wui/_shortcuts.scss
CHANGED
package/scss/wui/_sortable.scss
CHANGED
|
@@ -70,7 +70,7 @@ wui-sortable[disabled] .wui-sortable-item,
|
|
|
70
70
|
// Lifted by the keyboard.
|
|
71
71
|
.wui-sortable-handle[aria-pressed="true"] {
|
|
72
72
|
background: var(--color-primary-soft);
|
|
73
|
-
color: var(--color-primary-
|
|
73
|
+
color: var(--color-primary-text);
|
|
74
74
|
}
|
|
75
75
|
.wui-sortable-handle:disabled {
|
|
76
76
|
cursor: not-allowed;
|
|
@@ -102,7 +102,7 @@ wui-sortable[disabled] .wui-sortable-item,
|
|
|
102
102
|
left: 0;
|
|
103
103
|
z-index: var(--wui-z-tooltip, 1650);
|
|
104
104
|
margin: 0;
|
|
105
|
-
box-shadow: var(--wui-shadow-
|
|
105
|
+
box-shadow: var(--wui-shadow-popover);
|
|
106
106
|
pointer-events: none;
|
|
107
107
|
cursor: grabbing;
|
|
108
108
|
}
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
.wui-split-head-bulk {
|
|
91
91
|
min-height: 36px;
|
|
92
92
|
padding: 2px 8px 2px 12px;
|
|
93
|
-
border-radius: var(--radius);
|
|
93
|
+
border-radius: var(--wui-radius-md);
|
|
94
94
|
background: var(--color-primary-soft);
|
|
95
95
|
}
|
|
96
96
|
.wui-split-head-main[hidden],
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
.wui-split-item {
|
|
134
134
|
display: flex;
|
|
135
135
|
align-items: flex-start;
|
|
136
|
-
border-bottom: 1px solid var(--color-border-
|
|
136
|
+
border-bottom: 1px solid var(--color-border-subtle);
|
|
137
137
|
}
|
|
138
138
|
.wui-split-item:hover {
|
|
139
139
|
background: var(--color-bg-muted);
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
padding: 1px 7px;
|
|
222
222
|
border-radius: 999px;
|
|
223
223
|
background: var(--color-primary-soft);
|
|
224
|
-
color: var(--color-primary-
|
|
224
|
+
color: var(--color-primary-text);
|
|
225
225
|
font-size: 12px;
|
|
226
226
|
font-weight: 600;
|
|
227
227
|
line-height: 18px;
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
flex-direction: column;
|
|
243
243
|
gap: 8px;
|
|
244
244
|
padding: 14px 16px;
|
|
245
|
-
border-bottom: 1px solid var(--color-border-
|
|
245
|
+
border-bottom: 1px solid var(--color-border-subtle);
|
|
246
246
|
}
|
|
247
247
|
.wui-split-skeleton-title,
|
|
248
248
|
.wui-split-skeleton-meta {
|
|
@@ -34,7 +34,7 @@ html.wui-theme-switching *::after {
|
|
|
34
34
|
// The disc's glyph turns a touch on hover, the one cue that it changes something page-wide. The
|
|
35
35
|
// segmented variant (one option per mode) keeps AppSegmented's own look.
|
|
36
36
|
.u-action.wui-theme-toggle .wui-icon {
|
|
37
|
-
transition: transform 0.3s var(--wui-ease-out
|
|
37
|
+
transition: transform 0.3s var(--wui-ease-out, ease-out);
|
|
38
38
|
}
|
|
39
39
|
.u-action.wui-theme-toggle:hover .wui-icon {
|
|
40
40
|
transform: rotate(24deg);
|
package/scss/wui/_tone-pill.scss
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
// border-color: transparent
|
|
6
6
|
//
|
|
7
7
|
// $text exists because `primary` has no on-tint token: --color-{status}-text-on-soft is the
|
|
8
|
-
// on-tint hue (equal to -text in light, lifted in dark), but --color-primary
|
|
8
|
+
// on-tint hue (equal to -text in light, lifted in dark), but --color-on-primary
|
|
9
9
|
// is the text-on-SOLID-primary color (near-black in dark mode) and fails AA on the
|
|
10
|
-
// soft tint — primary pills pass var(--color-primary-
|
|
10
|
+
// soft tint — primary pills pass var(--color-primary-text) instead.
|
|
11
11
|
//
|
|
12
12
|
// Component-specific overrides (e.g. .badge-primary's colored border) are applied
|
|
13
13
|
// after the mixin call.
|
package/scss/wui/_toolbar.scss
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
border: 1px solid var(--color-border);
|
|
15
15
|
border-radius: var(--wui-radius-lg);
|
|
16
16
|
corner-shape: squircle;
|
|
17
|
-
box-shadow: var(--wui-shadow-
|
|
17
|
+
box-shadow: var(--wui-shadow-popover);
|
|
18
18
|
}
|
|
19
19
|
.toolbar.is-disabled {
|
|
20
20
|
opacity: var(--wui-disabled-opacity);
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
// The active tool: brand fill + the label slides open beside the icon.
|
|
42
42
|
.toolbar-item:has(.toolbar-input:checked) {
|
|
43
43
|
background: var(--color-primary);
|
|
44
|
-
color: var(--color-primary
|
|
44
|
+
color: var(--color-on-primary);
|
|
45
45
|
}
|
|
46
46
|
.toolbar-item:has(.toolbar-input:disabled) {
|
|
47
47
|
opacity: var(--wui-disabled-opacity);
|
package/scss/wui/_tree.scss
CHANGED
|
@@ -29,7 +29,7 @@ wui-tree {
|
|
|
29
29
|
min-height: 36px;
|
|
30
30
|
padding: 4px 8px;
|
|
31
31
|
padding-inline-start: calc(8px + var(--wui-tree-level, 0) * 20px);
|
|
32
|
-
border-radius: var(--radius-sm);
|
|
32
|
+
border-radius: var(--wui-radius-sm);
|
|
33
33
|
color: var(--color-text);
|
|
34
34
|
cursor: pointer;
|
|
35
35
|
user-select: none;
|
|
@@ -39,7 +39,7 @@ wui-tree {
|
|
|
39
39
|
}
|
|
40
40
|
.wui-tree-row.wui-tree-row-selected {
|
|
41
41
|
background: var(--color-primary-soft);
|
|
42
|
-
color: var(--color-primary-
|
|
42
|
+
color: var(--color-primary-text);
|
|
43
43
|
}
|
|
44
44
|
.wui-tree-item[aria-disabled="true"] > .wui-tree-row {
|
|
45
45
|
color: var(--color-text-subtle);
|
|
@@ -125,5 +125,5 @@ wui-tree {
|
|
|
125
125
|
|
|
126
126
|
// The shared pressed wash of wui/interaction, restated here so it ships with this on-demand layer.
|
|
127
127
|
.wui-tree-row:active:not(:disabled, [aria-disabled="true"]) {
|
|
128
|
-
background-image: linear-gradient(var(--
|
|
128
|
+
background-image: linear-gradient(var(--wui-pressed-overlay), var(--wui-pressed-overlay)) !important;
|
|
129
129
|
}
|