@webority/theme 0.9.4 → 0.9.6
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/_controls.scss +5 -2
- package/scss/wui/_data.scss +8 -24
- package/scss/wui/_overlays.scss +9 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.6",
|
|
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/_controls.scss
CHANGED
|
@@ -865,7 +865,11 @@ textarea.form-control.autosize {
|
|
|
865
865
|
}
|
|
866
866
|
// Character counter — a right-aligned count under the field; turns danger at the limit.
|
|
867
867
|
.field-count {
|
|
868
|
-
|
|
868
|
+
// `.field` is align-items:flex-start, so a shrink-wrapped count would sit on the LEFT —
|
|
869
|
+
// text-align alone can't move it. align-self pushes it to the control's right edge.
|
|
870
|
+
align-self: flex-end;
|
|
871
|
+
// Tighten the space above the count: .field's 4px gap → effective 2px, matching .field-error.
|
|
872
|
+
margin-top: -2px;
|
|
869
873
|
font-size: 12px;
|
|
870
874
|
line-height: normal;
|
|
871
875
|
text-align: right;
|
|
@@ -911,7 +915,6 @@ textarea.form-control.autosize {
|
|
|
911
915
|
flex-direction: column;
|
|
912
916
|
align-items: flex-start;
|
|
913
917
|
gap: 4px;
|
|
914
|
-
margin-bottom: 16px;
|
|
915
918
|
}
|
|
916
919
|
.field > .label,
|
|
917
920
|
.field label {
|
package/scss/wui/_data.scss
CHANGED
|
@@ -58,19 +58,6 @@
|
|
|
58
58
|
align-items: center;
|
|
59
59
|
text-align: center;
|
|
60
60
|
padding: 40px 24px;
|
|
61
|
-
// An empty ledger still renders its header row, whose nowrap cells can push the
|
|
62
|
-
// table wider than the viewport, so `.table-wrap` scrolls horizontally with no
|
|
63
|
-
// data to justify it. This state row spans the full scroll width, so without a
|
|
64
|
-
// pin the message centres over that width and slides off screen on mobile.
|
|
65
|
-
// Stick it to the scrollport's left edge and size it to the visible wrap width
|
|
66
|
-
// (`100cqw`, from the container on `.table-wrap`), so the message stays centred
|
|
67
|
-
// and fully in view no matter how far the header scrolls. `left: 0` is relative
|
|
68
|
-
// to the scroll container; on a wide screen `100cqw` equals the content width, so
|
|
69
|
-
// this is a no-op there.
|
|
70
|
-
position: sticky;
|
|
71
|
-
left: 0;
|
|
72
|
-
width: 100cqw;
|
|
73
|
-
box-sizing: border-box;
|
|
74
61
|
}
|
|
75
62
|
.tbl-empty-icon {
|
|
76
63
|
display: inline-grid;
|
|
@@ -115,16 +102,11 @@
|
|
|
115
102
|
border-bottom: 0;
|
|
116
103
|
}
|
|
117
104
|
// A plain-string empty (no `.tbl-empty` wrapper) — carries the padding the cell
|
|
118
|
-
// used to own
|
|
119
|
-
// when a narrow ledger scrolls horizontally (see the pin note on `.tbl-empty`).
|
|
105
|
+
// used to own.
|
|
120
106
|
.tbl-empty-plain {
|
|
121
107
|
padding: 36px 24px;
|
|
122
108
|
text-align: center;
|
|
123
109
|
color: var(--color-text-muted);
|
|
124
|
-
position: sticky;
|
|
125
|
-
left: 0;
|
|
126
|
-
width: 100cqw;
|
|
127
|
-
box-sizing: border-box;
|
|
128
110
|
}
|
|
129
111
|
.table tbody tr:hover td.wui-table-empty:has(> .tbl-empty),
|
|
130
112
|
.table-ledger tbody tr:hover td.wui-table-empty:has(> .tbl-empty) {
|
|
@@ -279,11 +261,13 @@
|
|
|
279
261
|
// class (set --wui-table-pad) without overriding this selector. Bottom padding is now
|
|
280
262
|
// included (was 0) so the last row isn't flush against the card edge.
|
|
281
263
|
padding: var(--wui-table-pad, 20px);
|
|
282
|
-
//
|
|
283
|
-
//
|
|
284
|
-
//
|
|
285
|
-
// scroll
|
|
286
|
-
|
|
264
|
+
// NOTE: do NOT set `container-type` here. Size containment (from `container-type:
|
|
265
|
+
// inline-size`) collapses `.table-wrap` to a ~40px sliver whenever it is a flex/grid
|
|
266
|
+
// ITEM (a very common product layout), forcing the whole table into a tiny horizontal
|
|
267
|
+
// scroll. It was briefly added for a `100cqw` empty-state pin; the collapse is far worse
|
|
268
|
+
// than the empty message not being perfectly centred on a narrow scrolling table, so the
|
|
269
|
+
// pin was removed. If the empty state ever needs viewport-relative sizing again, do it
|
|
270
|
+
// without turning the scroll container into a query container.
|
|
287
271
|
}
|
|
288
272
|
.table-ledger {
|
|
289
273
|
border-spacing: 0;
|
package/scss/wui/_overlays.scss
CHANGED
|
@@ -681,6 +681,15 @@
|
|
|
681
681
|
margin-top: 1px;
|
|
682
682
|
font-size: 0.65rem;
|
|
683
683
|
}
|
|
684
|
+
// Bootstrap's .btn-close paints a box-shadow ring on :focus (fires on mouse click too).
|
|
685
|
+
// Drop it; keep a keyboard-only outline so dismissal stays reachable without a mouse.
|
|
686
|
+
.wui-toast-close:focus {
|
|
687
|
+
box-shadow: none;
|
|
688
|
+
}
|
|
689
|
+
.wui-toast-close:focus-visible {
|
|
690
|
+
outline: 2px solid var(--wui-toast-accent);
|
|
691
|
+
outline-offset: 2px;
|
|
692
|
+
}
|
|
684
693
|
|
|
685
694
|
// The auto-dismiss TIMER, deliberately invisible (height 0): the element still runs the
|
|
686
695
|
// countdown animation because its animationend is what dismisses the toast on both surfaces,
|