@webority/theme 0.27.3 → 0.29.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/dist/purge-safelist.json +2 -0
- package/dist/webority-theme.css +1 -1
- package/package.json +1 -1
- package/scss/wui/_data.scss +13 -0
- package/scss/wui/_flow.scss +76 -13
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Webority shared design system — Bootstrap 5.3 SCSS overrides, --wui-* tokens, and shared component CSS. The single source of brand chrome for React portals and Razor sites.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"publishConfig": {
|
package/scss/wui/_data.scss
CHANGED
|
@@ -509,6 +509,19 @@
|
|
|
509
509
|
.wui-filter-bar {
|
|
510
510
|
min-width: 0;
|
|
511
511
|
}
|
|
512
|
+
// Facets size themselves: a select, multi-select or date range takes about 180 to 240px and the
|
|
513
|
+
// search box a wider 260 to 320px, so they wrap as a compact row instead of stacking at full
|
|
514
|
+
// width. Segments keep their own width.
|
|
515
|
+
.wui-filter-bar > .field {
|
|
516
|
+
flex: 1 1 180px;
|
|
517
|
+
min-width: 0;
|
|
518
|
+
max-width: 240px;
|
|
519
|
+
}
|
|
520
|
+
.wui-filter-bar > .search-wrap {
|
|
521
|
+
flex: 1 1 260px;
|
|
522
|
+
min-width: 0;
|
|
523
|
+
max-width: 320px;
|
|
524
|
+
}
|
|
512
525
|
|
|
513
526
|
// Pagination footer: a "10 per page" menu beside the page buttons, flush under a table. No row
|
|
514
527
|
// range and no total; the page buttons say where you are.
|
package/scss/wui/_flow.scss
CHANGED
|
@@ -20,6 +20,9 @@
|
|
|
20
20
|
// --wui-step-soft soft tint (active ring; the journey/icons "done" badge bg)
|
|
21
21
|
// --wui-step-soft-fg text/icon on the soft tint (the "done" badge check)
|
|
22
22
|
// --wui-step-connector the incomplete-rail colour
|
|
23
|
+
// --wui-step-done-accent, --wui-step-done-accent-fg, --wui-step-done-soft,
|
|
24
|
+
// --wui-step-done-soft-fg the same four, for COMPLETED steps only (badge, "STEP n"
|
|
25
|
+
// eyebrow, filled rail). Unset, completed steps follow the accent.
|
|
23
26
|
// --wui-step-size compact/vertical badge diameter (default 28px)
|
|
24
27
|
// --wui-step-badge-size icons-variant badge diameter (default 56px)
|
|
25
28
|
// Every variant defaults to the brand primary — active, done and rail share one accent
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
z-index: 0;
|
|
72
75
|
}
|
|
73
76
|
.step.done + .step::before {
|
|
74
|
-
background: var(--wui-step-accent, var(--color-primary));
|
|
77
|
+
background: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
75
78
|
}
|
|
76
79
|
.step-circle {
|
|
77
80
|
position: relative;
|
|
@@ -95,9 +98,9 @@
|
|
|
95
98
|
box-shadow: 0 0 0 4px var(--wui-step-soft, var(--color-primary-soft));
|
|
96
99
|
}
|
|
97
100
|
.step.done .step-circle {
|
|
98
|
-
border-color: var(--wui-step-accent, var(--color-primary));
|
|
99
|
-
background: var(--wui-step-accent, var(--color-primary));
|
|
100
|
-
color: var(--wui-step-accent-fg, var(--color-on-scrim));
|
|
101
|
+
border-color: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
102
|
+
background: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
103
|
+
color: var(--wui-step-done-accent-fg, var(--wui-step-accent-fg, var(--color-on-scrim)));
|
|
101
104
|
}
|
|
102
105
|
.step-label {
|
|
103
106
|
max-width: 130px;
|
|
@@ -147,6 +150,22 @@ button.step:focus-visible .step-circle {
|
|
|
147
150
|
0 0 0 4px var(--wui-step-soft, var(--color-primary-soft)),
|
|
148
151
|
0 0 0 6px var(--wui-step-accent, var(--color-primary));
|
|
149
152
|
}
|
|
153
|
+
// A completed step keeps its own colour while hovered or focused, so a done-tone step does
|
|
154
|
+
// not flash the main accent. Unset, these resolve to the same accent as the rules above.
|
|
155
|
+
a.step.done:hover .step-circle,
|
|
156
|
+
button.step.done:hover .step-circle {
|
|
157
|
+
box-shadow: 0 0 0 4px var(--wui-step-done-soft, var(--wui-step-soft, var(--color-primary-soft)));
|
|
158
|
+
}
|
|
159
|
+
a.step.done:hover .step-label,
|
|
160
|
+
button.step.done:hover .step-label {
|
|
161
|
+
color: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
162
|
+
}
|
|
163
|
+
a.step.done:focus-visible .step-circle,
|
|
164
|
+
button.step.done:focus-visible .step-circle {
|
|
165
|
+
box-shadow:
|
|
166
|
+
0 0 0 4px var(--wui-step-done-soft, var(--wui-step-soft, var(--color-primary-soft))),
|
|
167
|
+
0 0 0 6px var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
168
|
+
}
|
|
150
169
|
// A step that failed its stage — a red circle with an alert, so an invalid step
|
|
151
170
|
// reads as wrong at a glance rather than merely "not done".
|
|
152
171
|
.step.error .step-circle {
|
|
@@ -201,8 +220,8 @@ button.step:focus-visible .step-circle {
|
|
|
201
220
|
transform 0.2s ease;
|
|
202
221
|
}
|
|
203
222
|
.stepper-journey .step.done .step-circle {
|
|
204
|
-
background: var(--wui-step-soft, var(--color-primary-soft));
|
|
205
|
-
color: var(--wui-step-soft-fg, var(--color-primary));
|
|
223
|
+
background: var(--wui-step-done-soft, var(--wui-step-soft, var(--color-primary-soft)));
|
|
224
|
+
color: var(--wui-step-done-soft-fg, var(--wui-step-soft-fg, var(--color-primary)));
|
|
206
225
|
}
|
|
207
226
|
.stepper-journey .step.active .step-circle {
|
|
208
227
|
background: var(--wui-step-accent, var(--color-primary));
|
|
@@ -227,7 +246,7 @@ button.step:focus-visible .step-circle {
|
|
|
227
246
|
color: var(--color-text-subtle);
|
|
228
247
|
}
|
|
229
248
|
.stepper-journey .step.done .step-index {
|
|
230
|
-
color: var(--wui-step-soft-fg, var(--color-primary));
|
|
249
|
+
color: var(--wui-step-done-soft-fg, var(--wui-step-soft-fg, var(--color-primary)));
|
|
231
250
|
}
|
|
232
251
|
.stepper-journey .step.active .step-index {
|
|
233
252
|
color: var(--wui-step-accent, var(--color-primary));
|
|
@@ -275,7 +294,7 @@ button.step:focus-visible .step-circle {
|
|
|
275
294
|
background: var(--color-border-strong);
|
|
276
295
|
}
|
|
277
296
|
.stepper-journey .step-line.done {
|
|
278
|
-
background: var(--wui-step-accent, var(--color-primary));
|
|
297
|
+
background: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
279
298
|
}
|
|
280
299
|
// Below xl the four label+title pairs no longer fit side by side, so the bar
|
|
281
300
|
// becomes a vertical list and the connectors go away.
|
|
@@ -353,7 +372,7 @@ button.step:focus-visible .step-circle {
|
|
|
353
372
|
z-index: 0;
|
|
354
373
|
}
|
|
355
374
|
.stepper-vertical .step.done:not(:last-child)::after {
|
|
356
|
-
background: var(--wui-step-accent, var(--color-primary));
|
|
375
|
+
background: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
357
376
|
}
|
|
358
377
|
// The journey bar stacked vertically reuses its own narrow-width treatment: a plain
|
|
359
378
|
// column with the horizontal connectors dropped (a real vertical rail here would
|
|
@@ -403,8 +422,8 @@ button.step:focus-visible .step-circle {
|
|
|
403
422
|
}
|
|
404
423
|
.stepper-icons .step.done .step-circle {
|
|
405
424
|
border: none;
|
|
406
|
-
background: var(--wui-step-soft, var(--color-primary-soft));
|
|
407
|
-
color: var(--wui-step-soft-fg, var(--color-primary));
|
|
425
|
+
background: var(--wui-step-done-soft, var(--wui-step-soft, var(--color-primary-soft)));
|
|
426
|
+
color: var(--wui-step-done-soft-fg, var(--wui-step-soft-fg, var(--color-primary)));
|
|
408
427
|
}
|
|
409
428
|
.stepper-icons .step.error .step-circle {
|
|
410
429
|
background: var(--color-danger-soft);
|
|
@@ -429,7 +448,7 @@ button.step:focus-visible .step-circle {
|
|
|
429
448
|
color: var(--wui-step-accent, var(--color-primary));
|
|
430
449
|
}
|
|
431
450
|
.stepper-icons .step.done .step-index {
|
|
432
|
-
color: var(--wui-step-soft-fg, var(--color-primary));
|
|
451
|
+
color: var(--wui-step-done-soft-fg, var(--wui-step-soft-fg, var(--color-primary)));
|
|
433
452
|
}
|
|
434
453
|
.stepper-icons .step.error .step-index {
|
|
435
454
|
color: var(--color-danger-text);
|
|
@@ -455,7 +474,7 @@ button.step:focus-visible .step-circle {
|
|
|
455
474
|
background: var(--wui-step-connector, var(--color-border));
|
|
456
475
|
}
|
|
457
476
|
.stepper-icons .step.done + .step::before {
|
|
458
|
-
background: var(--wui-step-accent, var(--color-primary));
|
|
477
|
+
background: var(--wui-step-done-accent, var(--wui-step-accent, var(--color-primary)));
|
|
459
478
|
}
|
|
460
479
|
// The compact hover ring is calibrated to the 28px badge; the 56px icon badge just
|
|
461
480
|
// lifts on hover instead.
|
|
@@ -483,6 +502,14 @@ button.step:focus-visible .step-circle {
|
|
|
483
502
|
}
|
|
484
503
|
}
|
|
485
504
|
|
|
505
|
+
// No connectors: the wizard's hide-connectors option drops the line between steps on every
|
|
506
|
+
// variant and orientation. Placed after the variants so it outranks their equal-specificity
|
|
507
|
+
// rails; the journey bar's .step-line siblings are simply not emitted.
|
|
508
|
+
.wui-stepper-no-connectors .step + .step::before,
|
|
509
|
+
.wui-stepper-no-connectors .step:not(:last-child)::after {
|
|
510
|
+
content: none;
|
|
511
|
+
}
|
|
512
|
+
|
|
486
513
|
@media (prefers-reduced-motion: reduce) {
|
|
487
514
|
a.step:hover .step-circle,
|
|
488
515
|
button.step:hover .step-circle,
|
|
@@ -531,6 +558,42 @@ button.step:focus-visible .step-circle {
|
|
|
531
558
|
--wui-step-soft-fg: var(--color-info-text);
|
|
532
559
|
}
|
|
533
560
|
|
|
561
|
+
// Done-tone presets — recolour COMPLETED steps only (their badge, "STEP n" eyebrow and the
|
|
562
|
+
// filled rail after them), leaving the active step on the accent above. Same ramps and the
|
|
563
|
+
// same placement rules as the tone presets: on the stepper or any ancestor (the wizard host).
|
|
564
|
+
// Error and skipped steps keep their own look.
|
|
565
|
+
// ----------------------------------------------------------------------------
|
|
566
|
+
.wui-step-done-tone-primary {
|
|
567
|
+
--wui-step-done-accent: var(--color-primary);
|
|
568
|
+
--wui-step-done-accent-fg: var(--color-primary-text);
|
|
569
|
+
--wui-step-done-soft: var(--color-primary-soft);
|
|
570
|
+
--wui-step-done-soft-fg: var(--color-primary);
|
|
571
|
+
}
|
|
572
|
+
.wui-step-done-tone-success {
|
|
573
|
+
--wui-step-done-accent: var(--color-success);
|
|
574
|
+
--wui-step-done-accent-fg: var(--color-progress-label);
|
|
575
|
+
--wui-step-done-soft: var(--color-success-soft);
|
|
576
|
+
--wui-step-done-soft-fg: var(--color-success-text);
|
|
577
|
+
}
|
|
578
|
+
.wui-step-done-tone-warning {
|
|
579
|
+
--wui-step-done-accent: var(--color-warning);
|
|
580
|
+
--wui-step-done-accent-fg: var(--color-progress-label);
|
|
581
|
+
--wui-step-done-soft: var(--color-warning-soft);
|
|
582
|
+
--wui-step-done-soft-fg: var(--color-warning-text);
|
|
583
|
+
}
|
|
584
|
+
.wui-step-done-tone-danger {
|
|
585
|
+
--wui-step-done-accent: var(--color-danger);
|
|
586
|
+
--wui-step-done-accent-fg: var(--color-progress-label);
|
|
587
|
+
--wui-step-done-soft: var(--color-danger-soft);
|
|
588
|
+
--wui-step-done-soft-fg: var(--color-danger-text);
|
|
589
|
+
}
|
|
590
|
+
.wui-step-done-tone-info {
|
|
591
|
+
--wui-step-done-accent: var(--color-info);
|
|
592
|
+
--wui-step-done-accent-fg: var(--color-progress-label);
|
|
593
|
+
--wui-step-done-soft: var(--color-info-soft);
|
|
594
|
+
--wui-step-done-soft-fg: var(--color-info-text);
|
|
595
|
+
}
|
|
596
|
+
|
|
534
597
|
// ============================================================================
|
|
535
598
|
// Pricing card. A tier's name, price, pitch, feature list and CTA.
|
|
536
599
|
//
|