@webority/theme 0.27.1 → 0.27.2

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.27.1",
3
+ "version": "0.27.2",
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": {
@@ -135,7 +135,8 @@
135
135
  .page-title,
136
136
  .card-title,
137
137
  .wui-modal-title,
138
- .empty-state-title {
138
+ .empty-state-title,
139
+ .result-title {
139
140
  font-family: var(--wui-font-display);
140
141
  font-weight: 600;
141
142
  font-style: normal;
@@ -351,7 +351,10 @@ a.info-row:hover .info-value {
351
351
  padding: 0;
352
352
  }
353
353
  .descs-item {
354
- display: contents;
354
+ display: flex;
355
+ flex-direction: column;
356
+ min-width: 0;
357
+ border-bottom: 1px solid var(--color-border);
355
358
  grid-column: span var(--descs-span, 1);
356
359
  }
357
360
  .descs-label {
@@ -360,16 +363,14 @@ a.info-row:hover .info-value {
360
363
  text-transform: uppercase;
361
364
  letter-spacing: 0.04em;
362
365
  color: var(--color-text-subtle);
363
- padding: 12px 16px;
364
- border-bottom: 1px solid var(--color-border);
366
+ padding: 12px 16px 0;
365
367
  margin: 0;
366
368
  }
367
369
  .descs-value {
368
370
  font-size: 14px;
369
371
  font-weight: 500;
370
372
  color: var(--color-text);
371
- padding: 12px 16px;
372
- border-bottom: 1px solid var(--color-border);
373
+ padding: 4px 16px 12px;
373
374
  margin: 0;
374
375
  word-break: break-word;
375
376
  }
@@ -379,24 +380,22 @@ a.info-row:hover .info-value {
379
380
  color: var(--color-text-subtle);
380
381
  }
381
382
  // Small size variant.
382
- .descs-sm .descs-label,
383
+ .descs-sm .descs-label {
384
+ font-size: 12px;
385
+ padding: 8px 12px 0;
386
+ }
383
387
  .descs-sm .descs-value {
384
388
  font-size: 12px;
385
- padding: 8px 12px;
389
+ padding: 4px 12px 8px;
386
390
  }
387
- // Bordered variant removes inner dividers (only outer border on cells).
388
- .descs-bordered .descs-label,
389
- .descs-bordered .descs-value {
391
+ // Bordered variant draws dividers between neighbouring items instead of under each row.
392
+ .descs-bordered .descs-item {
390
393
  border-bottom: none;
391
394
  border-right: 1px solid var(--color-border);
392
395
  }
393
- .descs-bordered .descs-item:last-child .descs-label,
394
- .descs-bordered .descs-item:last-child .descs-value {
396
+ .descs-bordered .descs-item:last-child {
395
397
  border-right: none;
396
398
  }
397
- .descs-bordered .descs-list > :nth-child(2n-1) {
398
- border-bottom: 1px solid var(--color-border);
399
- }
400
399
  // Column variants — set the grid-template-columns.
401
400
  .descs-col-1 .descs-list {
402
401
  --descs-cols: 1;
@@ -263,8 +263,8 @@
263
263
  flex-direction: column;
264
264
  gap: 2px;
265
265
  overflow-y: auto;
266
- // The rail is chrome, not content: a scrollbar here reads as clutter and, at
267
- // 88px collapsed, would eat a meaningful share of the width.
266
+ // A native scrollbar always takes layout width, and its width differs by browser and OS, so
267
+ // it stays hidden; the thumb below is drawn over the links instead.
268
268
  scrollbar-width: none;
269
269
  }
270
270
  .app-sidebar-scroll::-webkit-scrollbar {
@@ -272,6 +272,47 @@
272
272
  width: 0;
273
273
  height: 0;
274
274
  }
275
+ // Scroll thumb for a long menu, shown on hover or keyboard focus and only when the links
276
+ // overflow. It is a sticky pseudo-element over the nav's right edge, moved by the nav's own
277
+ // scroll timeline, so it takes no width. The negative bottom margin cancels its height and the
278
+ // flex gap, so no link moves. Browsers without scroll timelines keep the hidden scrollbar.
279
+ @supports (animation-timeline: scroll()) {
280
+ .app-sidebar-scroll {
281
+ container-type: scroll-state;
282
+ }
283
+ .app-sidebar-scroll::before {
284
+ content: "";
285
+ position: sticky;
286
+ top: 0;
287
+ flex: none;
288
+ align-self: flex-end;
289
+ width: 6px;
290
+ height: 48px;
291
+ margin-bottom: -50px;
292
+ border-radius: 9999px;
293
+ background: var(--wui-scrollbar);
294
+ visibility: hidden;
295
+ opacity: 0;
296
+ pointer-events: none;
297
+ transition: opacity 0.2s var(--wui-ease-ui);
298
+ animation: wui-sidebar-thumb linear both;
299
+ animation-timeline: scroll(nearest);
300
+ }
301
+ @container scroll-state(scrollable: y) {
302
+ .app-sidebar-scroll::before {
303
+ visibility: visible;
304
+ }
305
+ }
306
+ .app-sidebar-scroll:hover::before,
307
+ .app-sidebar-scroll:focus-within::before {
308
+ opacity: 1;
309
+ }
310
+ }
311
+ @keyframes wui-sidebar-thumb {
312
+ to {
313
+ top: calc(100% - 48px);
314
+ }
315
+ }
275
316
  // Between the brand row and the nav — a workspace/tenant switcher, an environment
276
317
  // badge. It must not shrink when the nav overflows. The full card has no place on
277
318
  // the 88px rail, so the collapsed state hides it (the mobile drawer restores it).