@webority/theme 0.31.0 → 0.32.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/_kanban.scss +67 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webority/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.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/_kanban.scss
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
// classes, so a React re-render never wipes it.
|
|
6
6
|
//
|
|
7
7
|
// Below md the board is one column per screen: a scroll-snapped strip with a column switcher
|
|
8
|
-
// above it
|
|
8
|
+
// above it that stays at the top of the viewport while the page scrolls. The board scrolls inside
|
|
9
|
+
// itself, so the page never scrolls sideways.
|
|
9
10
|
//
|
|
10
11
|
// Sizing variables, set on .wui-kanban (or any ancestor) to override:
|
|
11
12
|
// --wui-kanban-column-width basis width of an open column (288px)
|
|
@@ -13,6 +14,8 @@
|
|
|
13
14
|
// --wui-kanban-gap space between columns (16px)
|
|
14
15
|
// --wui-kanban-column-min-height least height of a column, so short columns still read as
|
|
15
16
|
// lanes (560px; not applied in the phone one-column mode)
|
|
17
|
+
// --wui-kanban-sticky-top where the phone switcher sticks (0, or under the app shell's
|
|
18
|
+
// topbar inside .app-shell)
|
|
16
19
|
//
|
|
17
20
|
// Part of the wui-components layer, see _wui-components.scss for load order.
|
|
18
21
|
|
|
@@ -21,11 +24,18 @@
|
|
|
21
24
|
--wui-kanban-collapsed-width: 56px;
|
|
22
25
|
--wui-kanban-gap: 16px;
|
|
23
26
|
--wui-kanban-column-min-height: 560px;
|
|
27
|
+
--wui-kanban-sticky-top: 0px;
|
|
24
28
|
display: block;
|
|
25
29
|
position: relative;
|
|
26
30
|
min-width: 0;
|
|
27
31
|
max-width: 100%;
|
|
28
32
|
}
|
|
33
|
+
// The shell's topbar is sticky too, so the switcher stops below it. 72px is .app-topbar's
|
|
34
|
+
// min-height in _shell.scss; change both together. :where() keeps this at .wui-kanban's own
|
|
35
|
+
// weight, so a page's `.wui-kanban { --wui-kanban-sticky-top: … }` still wins inside the shell.
|
|
36
|
+
:where(.app-shell) .wui-kanban {
|
|
37
|
+
--wui-kanban-sticky-top: 72px;
|
|
38
|
+
}
|
|
29
39
|
|
|
30
40
|
.wui-kanban-board {
|
|
31
41
|
display: flex;
|
|
@@ -210,9 +220,42 @@
|
|
|
210
220
|
outline: 2px solid var(--color-primary);
|
|
211
221
|
outline-offset: 2px;
|
|
212
222
|
}
|
|
213
|
-
.wui-kanban-card[hidden]
|
|
223
|
+
.wui-kanban-card[hidden],
|
|
224
|
+
.wui-kanban-card[data-wui-overflow] {
|
|
225
|
+
display: none;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// "Show N more" under a capped column's cards; "Show fewer" once it is open.
|
|
229
|
+
.wui-kanban-more {
|
|
230
|
+
display: block;
|
|
231
|
+
width: calc(100% - 16px);
|
|
232
|
+
min-height: 36px;
|
|
233
|
+
margin: 0 8px 8px;
|
|
234
|
+
padding: 6px 10px;
|
|
235
|
+
border: 0;
|
|
236
|
+
border-radius: var(--wui-radius);
|
|
237
|
+
background: transparent;
|
|
238
|
+
color: var(--color-text-muted);
|
|
239
|
+
font-size: 0.8125rem;
|
|
240
|
+
font-weight: 600;
|
|
241
|
+
cursor: pointer;
|
|
242
|
+
}
|
|
243
|
+
.wui-kanban-more[hidden] {
|
|
214
244
|
display: none;
|
|
215
245
|
}
|
|
246
|
+
.wui-kanban-more:hover {
|
|
247
|
+
background: var(--color-surface);
|
|
248
|
+
color: var(--color-text);
|
|
249
|
+
}
|
|
250
|
+
.wui-kanban-more:focus-visible {
|
|
251
|
+
outline: 2px solid var(--color-primary);
|
|
252
|
+
outline-offset: 2px;
|
|
253
|
+
}
|
|
254
|
+
@media (pointer: coarse) {
|
|
255
|
+
.wui-kanban-more {
|
|
256
|
+
min-height: 44px;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
216
259
|
.wui-kanban[readonly] .wui-kanban-card,
|
|
217
260
|
.wui-kanban-card[data-wui-locked] {
|
|
218
261
|
cursor: default;
|
|
@@ -354,6 +397,7 @@
|
|
|
354
397
|
}
|
|
355
398
|
.wui-kanban-summary,
|
|
356
399
|
.wui-kanban-body,
|
|
400
|
+
.wui-kanban-more,
|
|
357
401
|
.wui-kanban-empty {
|
|
358
402
|
display: none;
|
|
359
403
|
}
|
|
@@ -365,18 +409,34 @@
|
|
|
365
409
|
}
|
|
366
410
|
}
|
|
367
411
|
|
|
368
|
-
// ── Phone column switcher (hidden from md up) ──
|
|
369
|
-
.wui-kanban-switcher
|
|
412
|
+
// ── Phone column switcher and swipe hint (hidden from md up) ──
|
|
413
|
+
.wui-kanban-switcher,
|
|
414
|
+
.wui-kanban-hint {
|
|
370
415
|
display: none;
|
|
371
416
|
}
|
|
372
417
|
|
|
373
418
|
@media (max-width: 767.98px) {
|
|
419
|
+
// Sticky over the page's own background, under the shell topbar (z-index 10).
|
|
374
420
|
.wui-kanban-switcher {
|
|
421
|
+
position: sticky;
|
|
422
|
+
top: var(--wui-kanban-sticky-top);
|
|
423
|
+
z-index: 5;
|
|
375
424
|
display: flex;
|
|
376
425
|
gap: 6px;
|
|
377
426
|
margin-bottom: 12px;
|
|
427
|
+
padding-block: 6px;
|
|
378
428
|
overflow-x: auto;
|
|
379
429
|
scrollbar-width: none;
|
|
430
|
+
background: var(--color-bg);
|
|
431
|
+
}
|
|
432
|
+
.wui-kanban-hint {
|
|
433
|
+
display: flex;
|
|
434
|
+
align-items: center;
|
|
435
|
+
justify-content: center;
|
|
436
|
+
gap: 6px;
|
|
437
|
+
margin: -6px 0 12px;
|
|
438
|
+
color: var(--color-text-muted);
|
|
439
|
+
font-size: 0.75rem;
|
|
380
440
|
}
|
|
381
441
|
.wui-kanban-switch {
|
|
382
442
|
display: inline-flex;
|
|
@@ -443,6 +503,9 @@
|
|
|
443
503
|
.wui-kanban-body {
|
|
444
504
|
display: flex;
|
|
445
505
|
}
|
|
506
|
+
.wui-kanban-more:not([hidden]) {
|
|
507
|
+
display: block;
|
|
508
|
+
}
|
|
446
509
|
.wui-kanban-empty:not([hidden]) {
|
|
447
510
|
display: block;
|
|
448
511
|
}
|