@webority/theme 0.16.0 → 0.17.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.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/_display.scss
CHANGED
|
@@ -550,8 +550,8 @@ a.info-row:hover .info-value {
|
|
|
550
550
|
}
|
|
551
551
|
// Borderless (bordered={false} / bordered="false") — the selected pill keeps its tint and primary
|
|
552
552
|
// label but drops the ring, on both the sliding thumb and the no-JS per-option pill.
|
|
553
|
-
.segmented-borderless .segmented-thumb,
|
|
554
|
-
.segmented-borderless .segmented-option:has(.segmented-input:checked) {
|
|
553
|
+
.wui-segmented-borderless .segmented-thumb,
|
|
554
|
+
.wui-segmented-borderless .segmented-option:has(.segmented-input:checked) {
|
|
555
555
|
box-shadow: none;
|
|
556
556
|
}
|
|
557
557
|
// Icon pop — the selected segment's glyph springs up a touch as it becomes active.
|
|
@@ -561,7 +561,7 @@ a.info-row:hover .info-value {
|
|
|
561
561
|
}
|
|
562
562
|
.segmented-sm .segmented-thumb,
|
|
563
563
|
.segmented-lg .segmented-thumb,
|
|
564
|
-
.segmented-xl .segmented-thumb {
|
|
564
|
+
.wui-segmented-xl .segmented-thumb {
|
|
565
565
|
top: 3px;
|
|
566
566
|
bottom: 3px;
|
|
567
567
|
}
|
|
@@ -574,7 +574,7 @@ a.info-row:hover .info-value {
|
|
|
574
574
|
--segmented-icon: 15px;
|
|
575
575
|
--segmented-note: 11px;
|
|
576
576
|
}
|
|
577
|
-
.segmented-xl {
|
|
577
|
+
.wui-segmented-xl {
|
|
578
578
|
--segmented-option-h: 36px;
|
|
579
579
|
--segmented-icon: 17px;
|
|
580
580
|
--segmented-note: 12px;
|
|
@@ -588,7 +588,7 @@ a.info-row:hover .info-value {
|
|
|
588
588
|
padding: 4px 16px;
|
|
589
589
|
font-size: 13px;
|
|
590
590
|
}
|
|
591
|
-
.segmented-xl .segmented-option {
|
|
591
|
+
.wui-segmented-xl .segmented-option {
|
|
592
592
|
gap: 7px;
|
|
593
593
|
padding: 4px 20px;
|
|
594
594
|
font-size: 15px;
|
|
@@ -9,17 +9,26 @@
|
|
|
9
9
|
// AppSidebarMenu — react-bootstrap Offcanvas mapped onto the app tokens plus
|
|
10
10
|
// a flex column layout for the header / scrolling body / sticky footer.
|
|
11
11
|
.app-sidebar-menu.offcanvas {
|
|
12
|
-
|
|
12
|
+
// Phone first: a side panel fills the screen, because a 420px panel on a 430px phone leaves a
|
|
13
|
+
// sliver of page that reads as a rendering fault. From sm up it takes its own width (below).
|
|
14
|
+
--bs-offcanvas-width: 100vw;
|
|
13
15
|
--bs-offcanvas-bg: var(--color-surface);
|
|
14
16
|
--bs-offcanvas-color: var(--color-text);
|
|
15
17
|
--bs-offcanvas-border-color: var(--color-border);
|
|
16
18
|
--bs-offcanvas-border-width: 1px;
|
|
17
19
|
--bs-offcanvas-padding-x: 0;
|
|
18
20
|
--bs-offcanvas-padding-y: 0;
|
|
19
|
-
|
|
21
|
+
// A caller's own maxWidth still caps the panel on a phone.
|
|
22
|
+
max-width: var(--asm-max-width, 100vw);
|
|
20
23
|
display: flex;
|
|
21
24
|
flex-direction: column;
|
|
22
25
|
}
|
|
26
|
+
@include media-breakpoint-up(sm) {
|
|
27
|
+
.app-sidebar-menu.offcanvas {
|
|
28
|
+
--bs-offcanvas-width: var(--asm-width, 420px);
|
|
29
|
+
max-width: var(--asm-max-width, 92vw);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
23
32
|
.app-sidebar-menu .offcanvas-body {
|
|
24
33
|
// Inset the content to the same 20px gutter as the header/footer so plain body
|
|
25
34
|
// content doesn't stick to the panel edge. Full-bleed content (edge-to-edge nav
|
package/scss/wui/_overlays.scss
CHANGED
|
@@ -249,7 +249,11 @@
|
|
|
249
249
|
// hover, so dismissing reads as the destructive-ish gesture it is. The corner is
|
|
250
250
|
// fixed across states: only the tint animates, so the button never morphs into a
|
|
251
251
|
// circle. Slower on the way in than the way out.
|
|
252
|
-
|
|
252
|
+
//
|
|
253
|
+
// The drawer (AppSidebarMenu) header close shares the rule, so the two overlays dismiss with
|
|
254
|
+
// the same control.
|
|
255
|
+
.wui-modal-close,
|
|
256
|
+
.wui-drawer-close {
|
|
253
257
|
margin-left: auto;
|
|
254
258
|
display: grid;
|
|
255
259
|
place-items: center;
|
|
@@ -268,20 +272,24 @@
|
|
|
268
272
|
background 180ms cubic-bezier(0.4, 0, 0.2, 1),
|
|
269
273
|
color 180ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
270
274
|
}
|
|
271
|
-
.wui-modal-close:hover
|
|
275
|
+
.wui-modal-close:hover,
|
|
276
|
+
.wui-drawer-close:hover {
|
|
272
277
|
background: var(--color-danger-soft);
|
|
273
278
|
color: var(--color-danger-text);
|
|
274
279
|
transition:
|
|
275
280
|
background 280ms cubic-bezier(0.16, 1, 0.3, 1),
|
|
276
281
|
color 280ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
277
282
|
}
|
|
278
|
-
.wui-modal-close:focus-visible
|
|
283
|
+
.wui-modal-close:focus-visible,
|
|
284
|
+
.wui-drawer-close:focus-visible {
|
|
279
285
|
outline: 2px solid var(--color-primary);
|
|
280
286
|
outline-offset: 2px;
|
|
281
287
|
}
|
|
282
288
|
@media (prefers-reduced-motion: reduce) {
|
|
283
289
|
.wui-modal-close,
|
|
284
|
-
.wui-modal-close:hover
|
|
290
|
+
.wui-modal-close:hover,
|
|
291
|
+
.wui-drawer-close,
|
|
292
|
+
.wui-drawer-close:hover {
|
|
285
293
|
transition:
|
|
286
294
|
background 1ms linear,
|
|
287
295
|
color 1ms linear;
|