@wwtdev/bsds-css 3.0.15 → 3.0.17
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/wwt-bsds-components.css +48 -22
- package/dist/wwt-bsds-components.min.css +1 -1
- package/dist/wwt-bsds.css +48 -22
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -3804,7 +3804,7 @@ label:where(.bs-label) {
|
|
|
3804
3804
|
box-shadow: inset 0 0 0 2px var(--bs-primary-base);
|
|
3805
3805
|
}
|
|
3806
3806
|
/* -- NEGATIVE -- */
|
|
3807
|
-
.bs-option:where([data-negative="true"]:hover),
|
|
3807
|
+
.bs-option:where(:not([aria-disabled="true"])[data-negative="true"]:hover),
|
|
3808
3808
|
.bs-option:where(:not([data-multiple="true"])[data-negative="true"][aria-selected="true"]) {
|
|
3809
3809
|
--description-color: var(--bs-ink-negative);
|
|
3810
3810
|
background: var(--bs-negative-highlight);
|
|
@@ -3850,7 +3850,7 @@ label:where(.bs-label) {
|
|
|
3850
3850
|
.bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(3)),
|
|
3851
3851
|
.bs-option-grid:where(:not([data-icon-col="true"])) :where(:nth-child(2)) {
|
|
3852
3852
|
color: var(--description-color);
|
|
3853
|
-
font-size: var(--bs-text-
|
|
3853
|
+
font-size: var(--bs-text-sm);
|
|
3854
3854
|
grid-area: description;
|
|
3855
3855
|
padding-top: 0.125rem;
|
|
3856
3856
|
}
|
|
@@ -5188,7 +5188,7 @@ a.bs-text-button {
|
|
|
5188
5188
|
@media (min-width: 1166px) {
|
|
5189
5189
|
.bs-vertical-nav {
|
|
5190
5190
|
opacity: 1;
|
|
5191
|
-
padding: 1rem;
|
|
5191
|
+
padding: 1rem 0.5rem;
|
|
5192
5192
|
right: auto;
|
|
5193
5193
|
visibility: visible;
|
|
5194
5194
|
pointer-events: auto;
|
|
@@ -5204,6 +5204,13 @@ a.bs-text-button {
|
|
|
5204
5204
|
width: var(--bs-vertical-nav-narrow-width);
|
|
5205
5205
|
}
|
|
5206
5206
|
|
|
5207
|
+
/* Collapsible variant keeps 1rem inline gutter in all states (collapsed and click-expanded),
|
|
5208
|
+
unlike wide/narrow which use 0.5rem. Targeting data-collapsible (not data-collapsed) so
|
|
5209
|
+
the rule also applies when the toggle is click-expanded. */
|
|
5210
|
+
.bs-vertical-nav:where([data-collapsible="true"]) {
|
|
5211
|
+
padding-inline: 1rem;
|
|
5212
|
+
}
|
|
5213
|
+
|
|
5207
5214
|
.bs-vertical-nav:where([data-collapsed="true"]) {
|
|
5208
5215
|
width: var(--bs-vertical-nav-collapsed-width);
|
|
5209
5216
|
}
|
|
@@ -5297,8 +5304,8 @@ a.bs-text-button {
|
|
|
5297
5304
|
}
|
|
5298
5305
|
@media (min-width: 1166px) {
|
|
5299
5306
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle) {
|
|
5300
|
-
/* nav width - nav left padding - nav right padding */
|
|
5301
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
5307
|
+
/* nav width - nav left padding - nav right padding (0.5rem each for wide) */
|
|
5308
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
|
|
5302
5309
|
}
|
|
5303
5310
|
|
|
5304
5311
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle span:first-child) {
|
|
@@ -5306,7 +5313,7 @@ a.bs-text-button {
|
|
|
5306
5313
|
text-align: start;
|
|
5307
5314
|
text-overflow: ellipsis;
|
|
5308
5315
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding - caret width */
|
|
5309
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
5316
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 0.75rem);
|
|
5310
5317
|
}
|
|
5311
5318
|
}
|
|
5312
5319
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle-caret) {
|
|
@@ -5324,7 +5331,7 @@ a.bs-text-button {
|
|
|
5324
5331
|
.bs-vertical-nav :where(ul) {
|
|
5325
5332
|
display: flex;
|
|
5326
5333
|
flex-direction: column;
|
|
5327
|
-
gap: 0;
|
|
5334
|
+
gap: 0.25rem;
|
|
5328
5335
|
list-style: none;
|
|
5329
5336
|
margin-top: 0;
|
|
5330
5337
|
padding-left: 0;
|
|
@@ -5357,13 +5364,17 @@ a.bs-text-button {
|
|
|
5357
5364
|
font-size: 0.875rem;
|
|
5358
5365
|
min-height: 2.5rem; /* Fixed minimum height to prevent height changes */
|
|
5359
5366
|
padding: 0.5rem 0.75rem; /* Explicit padding for consistency */
|
|
5360
|
-
/* nav width - nav left padding - nav right padding */
|
|
5367
|
+
/* nav width - nav left padding - nav right padding (0.5rem each for wide) */
|
|
5368
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
|
|
5369
|
+
}
|
|
5370
|
+
|
|
5371
|
+
/* Collapsible click-expanded: wide width but with 1rem inline gutter, not 0.5rem */
|
|
5372
|
+
.bs-vertical-nav:where([data-collapsible="true"]) :where(ul li a) {
|
|
5361
5373
|
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem);
|
|
5362
5374
|
}
|
|
5363
5375
|
|
|
5364
|
-
/*
|
|
5376
|
+
/* Collapsible collapsed: narrow content-box inside 1rem gutter */
|
|
5365
5377
|
.bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a) {
|
|
5366
|
-
/* collapsed width - nav left padding - nav right padding */
|
|
5367
5378
|
width: calc(var(--bs-vertical-nav-collapsed-width) - 1rem - 1rem);
|
|
5368
5379
|
}
|
|
5369
5380
|
|
|
@@ -5373,7 +5384,7 @@ a.bs-text-button {
|
|
|
5373
5384
|
text-overflow: ellipsis;
|
|
5374
5385
|
white-space: nowrap;
|
|
5375
5386
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding */
|
|
5376
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
5387
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem);
|
|
5377
5388
|
}
|
|
5378
5389
|
|
|
5379
5390
|
/* Text overflow - normal width - with icon */
|
|
@@ -5382,28 +5393,35 @@ a.bs-text-button {
|
|
|
5382
5393
|
text-overflow: ellipsis;
|
|
5383
5394
|
white-space: nowrap;
|
|
5384
5395
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding - icon width - icon gap */
|
|
5385
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
5396
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 1rem - 0.5rem);
|
|
5386
5397
|
}
|
|
5387
5398
|
|
|
5388
5399
|
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
|
|
5389
5400
|
flex-direction: column;
|
|
5390
5401
|
font-size: 0.6875rem;
|
|
5391
|
-
gap: 0.5rem;
|
|
5402
|
+
gap: 0.5rem;
|
|
5403
|
+
justify-content: center;
|
|
5392
5404
|
line-height: 1.3;
|
|
5393
|
-
|
|
5405
|
+
/* 68px covers 1- and 2-line labels at 11px/1.3 lh + 16px icon + 8px gap + 16px padding */
|
|
5406
|
+
min-height: 4.25rem;
|
|
5407
|
+
padding: 0.5rem 0.75rem;
|
|
5394
5408
|
text-align: center;
|
|
5395
|
-
/*
|
|
5396
|
-
width: calc(var(--bs-vertical-nav-narrow-width) -
|
|
5409
|
+
/* narrow-width (72px) - 0.5rem left - 0.5rem right = 56px, matches span */
|
|
5410
|
+
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
5397
5411
|
}
|
|
5398
5412
|
|
|
5399
|
-
/* Text overflow - narrow
|
|
5400
|
-
|
|
5401
|
-
|
|
5413
|
+
/* Text overflow - narrow: multi-word wraps naturally at spaces ("Content Audit" → 2 lines).
|
|
5414
|
+
Single long words overflow their line and truncate with ellipsis ("Presentations" → "Present...").
|
|
5415
|
+
Span is 52px, 4px narrower than the 56px link, centered via align-items: center on the link.
|
|
5416
|
+
That gives 2px of inner padding each side inside the active highlight (per UX).
|
|
5417
|
+
Specificity bumped to (0,2,2) to beat later generic `ul li a > span:last-child {width: auto}`. */
|
|
5418
|
+
.bs-vertical-nav[data-narrow="true"] :where(ul li a:not(:has(.bs-vertical-nav-link-icon))) span:first-child,
|
|
5419
|
+
.bs-vertical-nav[data-narrow="true"] :where(ul li a:has(.bs-vertical-nav-link-icon)) span:nth-child(2) {
|
|
5402
5420
|
overflow: hidden;
|
|
5403
5421
|
text-overflow: ellipsis;
|
|
5404
|
-
white-space:
|
|
5405
|
-
/*
|
|
5406
|
-
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
5422
|
+
white-space: normal;
|
|
5423
|
+
/* narrow-width - nav padding (0.5rem each) - 2px inner padding (0.125rem each) = 52px */
|
|
5424
|
+
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem - 0.125rem - 0.125rem);
|
|
5407
5425
|
}
|
|
5408
5426
|
}
|
|
5409
5427
|
.bs-vertical-nav-section:where([data-app-links="true"]) {
|
|
@@ -5427,6 +5445,14 @@ a.bs-text-button {
|
|
|
5427
5445
|
font-weight: 600;
|
|
5428
5446
|
transition: background-color 200ms ease-out;
|
|
5429
5447
|
}
|
|
5448
|
+
/* Keyboard focus ring — matches house convention (accordion, filter-button, link, pagination) */
|
|
5449
|
+
.bs-vertical-nav :where(ul li a:focus-visible) {
|
|
5450
|
+
outline: 2px solid var(--bs-primary-base);
|
|
5451
|
+
outline-offset: 2px;
|
|
5452
|
+
}
|
|
5453
|
+
.bs-vertical-nav :where(ul li a:focus:not(:focus-visible)) {
|
|
5454
|
+
outline: none;
|
|
5455
|
+
}
|
|
5430
5456
|
/* Icon sizing - mobile/default */
|
|
5431
5457
|
.bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
|
|
5432
5458
|
height: 1rem;
|