@webority/theme 0.9.19 → 0.9.21
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/webority-theme.css +1 -1
- package/package.json +1 -1
- package/scss/wui/_choice.scss +7 -0
- package/scss/wui/_overlays.scss +13 -1
- package/scss/wui/_shell.scss +11 -17
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.21",
|
|
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/_choice.scss
CHANGED
|
@@ -509,6 +509,10 @@
|
|
|
509
509
|
z-index: var(--wui-z-menu);
|
|
510
510
|
width: 312px;
|
|
511
511
|
max-width: calc(100vw - 16px);
|
|
512
|
+
// JS (anchorOverlay's clampHeight) sets an inline max-height when the viewport can't fit the
|
|
513
|
+
// whole grid above or below the trigger: overflow-y is the scroll fallback that makes the
|
|
514
|
+
// clamped remainder reachable instead of silently clipped.
|
|
515
|
+
overflow-y: auto;
|
|
512
516
|
padding: 18px;
|
|
513
517
|
background: var(--color-surface);
|
|
514
518
|
border: 1px solid var(--color-border);
|
|
@@ -828,6 +832,9 @@ button.datepicker-month:hover {
|
|
|
828
832
|
z-index: var(--wui-z-menu);
|
|
829
833
|
width: 620px;
|
|
830
834
|
max-width: calc(100vw - 16px);
|
|
835
|
+
// See the matching note on .datepicker-pop: the scroll fallback for clampHeight's inline
|
|
836
|
+
// max-height.
|
|
837
|
+
overflow-y: auto;
|
|
831
838
|
padding: 18px;
|
|
832
839
|
background: var(--color-surface);
|
|
833
840
|
border: 1px solid var(--color-border);
|
package/scss/wui/_overlays.scss
CHANGED
|
@@ -309,11 +309,23 @@
|
|
|
309
309
|
line-height: 0;
|
|
310
310
|
margin-bottom: 22px;
|
|
311
311
|
}
|
|
312
|
+
// A caller-supplied illustration occupies the SAME footprint as the built-in badge, whatever
|
|
313
|
+
// the source file measures — the box is the theme's, the artwork is the caller's. Without
|
|
314
|
+
// this a 1024px export blows the dialog open and a 48px one sits lost in the whitespace, so
|
|
315
|
+
// "use your own image" would in practice mean "first go and resize it to ours". `contain`
|
|
316
|
+
// keeps a non-square source whole rather than cropping it.
|
|
317
|
+
.wui-confirm-icon img {
|
|
318
|
+
display: block;
|
|
319
|
+
width: 80px;
|
|
320
|
+
height: 80px;
|
|
321
|
+
object-fit: contain;
|
|
322
|
+
}
|
|
312
323
|
// Icon size tracks the copy: a title+message dialog keeps the full 80px badge (set on
|
|
313
324
|
// the element), but a lone title (no message) is one line and gets a smaller badge.
|
|
314
325
|
// `.wui-confirm-msg` is a real element rendered only when a message exists, so `:has()`
|
|
315
326
|
// is reliable here; CSS width/height override the SVG's own width/height attributes.
|
|
316
|
-
.wui-confirm-content:not(:has(.wui-confirm-msg)) .wui-confirm-icon svg
|
|
327
|
+
.wui-confirm-content:not(:has(.wui-confirm-msg)) .wui-confirm-icon svg,
|
|
328
|
+
.wui-confirm-content:not(:has(.wui-confirm-msg)) .wui-confirm-icon img {
|
|
317
329
|
width: 56px;
|
|
318
330
|
height: 56px;
|
|
319
331
|
}
|
package/scss/wui/_shell.scss
CHANGED
|
@@ -549,21 +549,17 @@
|
|
|
549
549
|
display: inline-grid;
|
|
550
550
|
place-items: center;
|
|
551
551
|
transform: translateY(-50%);
|
|
552
|
-
border:
|
|
552
|
+
border: 0;
|
|
553
553
|
border-radius: 999px;
|
|
554
554
|
background: var(--color-surface);
|
|
555
555
|
color: var(--color-text-muted);
|
|
556
556
|
cursor: pointer;
|
|
557
557
|
transition:
|
|
558
558
|
left 0.2s var(--wui-ease-ui),
|
|
559
|
-
|
|
560
|
-
color 0.12s ease,
|
|
561
|
-
box-shadow 0.12s ease;
|
|
559
|
+
color 0.12s ease;
|
|
562
560
|
}
|
|
563
561
|
.app-sidebar-toggle:hover {
|
|
564
|
-
|
|
565
|
-
color: var(--color-text);
|
|
566
|
-
box-shadow: var(--shadow-sm);
|
|
562
|
+
color: var(--color-primary);
|
|
567
563
|
}
|
|
568
564
|
.app-sidebar-toggle:focus-visible {
|
|
569
565
|
outline: 2px solid var(--color-primary);
|
|
@@ -576,14 +572,13 @@
|
|
|
576
572
|
// `block` kills the inline-block baseline gap (.wui-icon is inline-block), which otherwise
|
|
577
573
|
// pushes the glyph a hair down in the round button — so the grid can centre it exactly.
|
|
578
574
|
display: block;
|
|
579
|
-
// Optical centring nudge for the chevron in the round button.
|
|
580
|
-
// (translateX is in the icon's own frame, so after the collapsed 180° rotation the same value
|
|
581
|
-
// mirrors on screen — keeping the flipped chevron optically centred too.)
|
|
582
|
-
transform: translateX(-2px);
|
|
583
575
|
transition: transform 0.2s ease;
|
|
584
576
|
}
|
|
577
|
+
// The double-chevron glyph is a left/right MIRROR pair, not a point-symmetric shape, so a
|
|
578
|
+
// 180deg rotate (used for the old single-chevron glyph) would flip it upside down too;
|
|
579
|
+
// scaleX(-1) mirrors only the axis that differs between the collapse and expand glyphs.
|
|
585
580
|
.app-shell.collapsed .app-sidebar-toggle > * {
|
|
586
|
-
transform:
|
|
581
|
+
transform: scaleX(-1);
|
|
587
582
|
}
|
|
588
583
|
|
|
589
584
|
.app-main {
|
|
@@ -604,16 +599,15 @@
|
|
|
604
599
|
min-height: 72px;
|
|
605
600
|
padding: 12px 28px;
|
|
606
601
|
background: var(--color-surface);
|
|
607
|
-
//
|
|
608
|
-
// shift the layout by a pixel.
|
|
602
|
+
// Reserved rather than absent, so a consumer colouring the divider on
|
|
603
|
+
// `.app-topbar.scrolled` doesn't shift the layout by a pixel. The library
|
|
604
|
+
// adds that class on scroll but deliberately paints nothing: how heavy the
|
|
605
|
+
// topbar reads once the page moves is a per-surface art-direction call.
|
|
609
606
|
border-bottom: 1px solid transparent;
|
|
610
607
|
transition:
|
|
611
608
|
border-color 0.2s ease,
|
|
612
609
|
box-shadow 0.2s ease;
|
|
613
610
|
}
|
|
614
|
-
.app-topbar.scrolled {
|
|
615
|
-
border-bottom-color: var(--color-border);
|
|
616
|
-
}
|
|
617
611
|
// Two groups: the leading one shrinks and ellipsises a long page title, the
|
|
618
612
|
// trailing one is pinned so actions are never pushed off-screen.
|
|
619
613
|
.app-topbar-start {
|