@wwtdev/bsds-css 3.0.0-rc.43 → 3.0.0-rc.45
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 +262 -30
- package/dist/wwt-bsds-components.min.css +1 -1
- package/dist/wwt-bsds.css +262 -30
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
|
@@ -3751,6 +3751,7 @@ label:where(.bs-label) {
|
|
|
3751
3751
|
.bs-option {
|
|
3752
3752
|
padding: var(--bs-space-1) var(--bs-space-2);
|
|
3753
3753
|
color: var(--bs-ink-base);
|
|
3754
|
+
--description-color: var(--bs-ink-light);
|
|
3754
3755
|
cursor: pointer;
|
|
3755
3756
|
border-left: 4px solid transparent;
|
|
3756
3757
|
border-right: 4px solid transparent;
|
|
@@ -3768,12 +3769,14 @@ label:where(.bs-label) {
|
|
|
3768
3769
|
/* Don't disable via pointer-events, so tooltips still work in a disabled menu item. */
|
|
3769
3770
|
.bs-option:where([aria-disabled="true"]) {
|
|
3770
3771
|
color: var(--bs-ink-disabled);
|
|
3772
|
+
--description-color: var(--bs-ink-disabled);
|
|
3771
3773
|
cursor: default;
|
|
3772
3774
|
}
|
|
3773
3775
|
/* -- SELECTED -- */
|
|
3774
|
-
.bs-option:where(:not([aria-disabled="true"])):hover,
|
|
3775
|
-
.bs-
|
|
3776
|
+
.bs-option:where(:not([aria-disabled="true"], [data-negative="true"])):hover,
|
|
3777
|
+
.bs-option:where(:not([data-multiple="true"])[aria-selected="true"]) {
|
|
3776
3778
|
color: var(--bs-ink-primary);
|
|
3779
|
+
--description-color: var(--bs-ink-primary);
|
|
3777
3780
|
background: var(--bs-bg-medium-to-light);
|
|
3778
3781
|
border-left-color: var(--bs-ink-primary);
|
|
3779
3782
|
}
|
|
@@ -3786,16 +3789,62 @@ label:where(.bs-label) {
|
|
|
3786
3789
|
.bs-option:where([data-active="true"]) {
|
|
3787
3790
|
box-shadow: inset 0 0 0 2px var(--bs-primary-base);
|
|
3788
3791
|
}
|
|
3789
|
-
/* --
|
|
3790
|
-
.bs-
|
|
3792
|
+
/* -- NEGATIVE -- */
|
|
3793
|
+
.bs-option:where([data-negative="true"]:hover),
|
|
3794
|
+
.bs-option:where(:not([data-multiple="true"])[data-negative="true"][aria-selected="true"]) {
|
|
3795
|
+
color: var(--bs-ink-negative);
|
|
3796
|
+
background: var(--bs-negative-highlight);
|
|
3797
|
+
border-left-color: var(--bs-negative-base);
|
|
3798
|
+
--description-color: var(--bs-ink-negative);
|
|
3799
|
+
}
|
|
3800
|
+
.bs-option:where([data-negative="true"][aria-selected="true"]) :where(.bs-checkbox):before {
|
|
3801
|
+
--fill-bg-color: var(--bs-negative-base);
|
|
3802
|
+
}
|
|
3803
|
+
.bs-option:where([data-negative="true"][data-active="true"]) {
|
|
3804
|
+
box-shadow: inset 0 0 0 2px var(--bs-negative-base);
|
|
3805
|
+
}
|
|
3806
|
+
/* -- MULTIPLE -- */
|
|
3807
|
+
.bs-option:where([data-multiple="true"]) {
|
|
3791
3808
|
display: grid;
|
|
3792
3809
|
grid-template-columns: auto 1fr;
|
|
3793
3810
|
align-items: start;
|
|
3794
3811
|
gap: var(--bs-space-2);
|
|
3795
3812
|
}
|
|
3796
|
-
.bs-
|
|
3813
|
+
.bs-option:where([data-multiple="true"]) :where(.bs-checkbox) {
|
|
3797
3814
|
margin-top: var(--bs-space-1);
|
|
3798
3815
|
}
|
|
3816
|
+
/* -- VARIANTS -- */
|
|
3817
|
+
.bs-option-grid:where([data-icon-col="true"]) {
|
|
3818
|
+
display: grid;
|
|
3819
|
+
grid-template:
|
|
3820
|
+
"icon label"
|
|
3821
|
+
". description"
|
|
3822
|
+
/ auto 1fr;
|
|
3823
|
+
grid-column-gap: var(--bs-space-2);
|
|
3824
|
+
}
|
|
3825
|
+
.bs-option-grid:where(:not([data-icon-col="true"])) {
|
|
3826
|
+
display: grid;
|
|
3827
|
+
grid-template:
|
|
3828
|
+
"label"
|
|
3829
|
+
"description";
|
|
3830
|
+
}
|
|
3831
|
+
.bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(1)) {
|
|
3832
|
+
grid-area: icon;
|
|
3833
|
+
align-self: center;
|
|
3834
|
+
max-width: 1.5rem;
|
|
3835
|
+
max-height: 1.5rem;
|
|
3836
|
+
}
|
|
3837
|
+
.bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(2)),
|
|
3838
|
+
.bs-option-grid:where(:not([data-icon-col="true"])) :where(:nth-child(1)) {
|
|
3839
|
+
grid-area: label;
|
|
3840
|
+
}
|
|
3841
|
+
.bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(3)),
|
|
3842
|
+
.bs-option-grid:where(:not([data-icon-col="true"])) :where(:nth-child(2)) {
|
|
3843
|
+
grid-area: description;
|
|
3844
|
+
font-size: var(--bs-text-xs);
|
|
3845
|
+
padding-top: 0.125rem;
|
|
3846
|
+
color: var(--description-color);
|
|
3847
|
+
}
|
|
3799
3848
|
.bs-overlay {
|
|
3800
3849
|
-webkit-backdrop-filter: blur(4px);
|
|
3801
3850
|
backdrop-filter: blur(4px);
|
|
@@ -5061,14 +5110,30 @@ a.bs-text-button {
|
|
|
5061
5110
|
--step-color: var(--bs-ink-negative);
|
|
5062
5111
|
--progress-step-bg: var(--bs-negative-base);
|
|
5063
5112
|
}
|
|
5064
|
-
|
|
5113
|
+
:root {
|
|
5114
|
+
--bs-vertical-nav-width: 9.875rem;
|
|
5115
|
+
--bs-vertical-nav-narrow-width: 4.5rem;
|
|
5116
|
+
--bs-vertical-nav-collapsed-width: 4rem;
|
|
5117
|
+
/* Dynamic width set by the navigation component for page layout */
|
|
5118
|
+
--bs-page-nav-width: 0px;
|
|
5119
|
+
}
|
|
5120
|
+
.bs-vertical-nav-wrapper {
|
|
5065
5121
|
--active-color: rgba(255, 255, 255, 0.25);
|
|
5066
5122
|
--bg-color: var(--bs-navy-base);
|
|
5067
5123
|
--border-color: var(--bs-border-dark);
|
|
5124
|
+
--text-color: var(--bs-white);
|
|
5125
|
+
--link-color: var(--bs-white);
|
|
5126
|
+
--link-hover-color: var(--bs-white);
|
|
5127
|
+
--link-active-color: var(--bs-white);
|
|
5128
|
+
--toggle-bg-color: var(--bg-color);
|
|
5129
|
+
--toggle-color: var(--bs-white);
|
|
5068
5130
|
--top-offset: 48px;
|
|
5131
|
+
}
|
|
5132
|
+
.bs-vertical-nav {
|
|
5069
5133
|
-ms-overflow-style: none; /* Internet Explorer 10+ */
|
|
5070
5134
|
background-color: var(--bg-color);
|
|
5071
|
-
|
|
5135
|
+
border-inline-end: 1px solid var(--border-color);
|
|
5136
|
+
color: var(--text-color);
|
|
5072
5137
|
display: flex;
|
|
5073
5138
|
flex-direction: column;
|
|
5074
5139
|
height: 100dvh;
|
|
@@ -5094,22 +5159,22 @@ a.bs-text-button {
|
|
|
5094
5159
|
opacity: 1;
|
|
5095
5160
|
visibility: visible;
|
|
5096
5161
|
}
|
|
5097
|
-
.
|
|
5162
|
+
.bs-vertical-nav:where([data-collapsible="true"]) {
|
|
5163
|
+
transition: opacity 200ms ease 10ms, width 350ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
5164
|
+
}
|
|
5165
|
+
.dark .bs-vertical-nav-wrapper {
|
|
5098
5166
|
--active-color: rgba(255, 255, 255, 0.25);
|
|
5099
5167
|
--bg-color: var(--bs-bg-base);
|
|
5100
|
-
--border-color: var(--bs-border-
|
|
5101
|
-
border-right: 1px solid var(--bs-border-medium);
|
|
5168
|
+
--border-color: var(--bs-border-medium);
|
|
5102
5169
|
}
|
|
5103
5170
|
@media (min-width: 1166px) {
|
|
5104
5171
|
.bs-vertical-nav {
|
|
5105
|
-
border-right: 1px solid var(--bg-color);
|
|
5106
5172
|
opacity: 1;
|
|
5107
5173
|
padding-bottom: 1rem;
|
|
5108
5174
|
padding-left: 0.5rem;
|
|
5109
5175
|
padding-right: 0.5rem;
|
|
5110
5176
|
padding-top: 1rem;
|
|
5111
5177
|
right: auto;
|
|
5112
|
-
transition: none;
|
|
5113
5178
|
visibility: visible;
|
|
5114
5179
|
width: var(--bs-vertical-nav-width);
|
|
5115
5180
|
}
|
|
@@ -5117,10 +5182,58 @@ a.bs-text-button {
|
|
|
5117
5182
|
.bs-vertical-nav:where([data-narrow="true"]) {
|
|
5118
5183
|
width: var(--bs-vertical-nav-narrow-width);
|
|
5119
5184
|
}
|
|
5185
|
+
|
|
5186
|
+
.bs-vertical-nav:where([data-collapsed="true"]) {
|
|
5187
|
+
width: var(--bs-vertical-nav-collapsed-width);
|
|
5188
|
+
}
|
|
5120
5189
|
}
|
|
5121
5190
|
.bs-vertical-nav::-webkit-scrollbar {
|
|
5122
5191
|
display: none; /* Safari and Chrome */
|
|
5123
5192
|
}
|
|
5193
|
+
/* ===== Collapse Toggle Button ===== */
|
|
5194
|
+
.bs-vertical-nav-toggle {
|
|
5195
|
+
align-items: center;
|
|
5196
|
+
background: var(--toggle-bg-color);
|
|
5197
|
+
border: 1px solid var(--border-color);
|
|
5198
|
+
border-radius: 100px;
|
|
5199
|
+
color: var(--toggle-color);
|
|
5200
|
+
cursor: pointer;
|
|
5201
|
+
display: none; /* Hidden by default on mobile */
|
|
5202
|
+
height: 24px;
|
|
5203
|
+
width: 24px;
|
|
5204
|
+
justify-content: center;
|
|
5205
|
+
padding: 0;
|
|
5206
|
+
position: fixed;
|
|
5207
|
+
left: calc(var(--bs-vertical-nav-width) - 0.5rem);
|
|
5208
|
+
pointer-events: auto; /* Ensure button is clickable */
|
|
5209
|
+
top: calc(var(--top-offset) + 3rem); /* top-offset + 3rem */
|
|
5210
|
+
transition: left 300ms ease-out, opacity 100ms ease-out;
|
|
5211
|
+
z-index: 1002; /* Above nav to prevent hover conflicts */
|
|
5212
|
+
}
|
|
5213
|
+
@media (min-width: 1166px) {
|
|
5214
|
+
.bs-vertical-nav-toggle {
|
|
5215
|
+
display: flex;
|
|
5216
|
+
opacity: 1;
|
|
5217
|
+
transition: left 300ms ease-out, opacity 100ms ease-out;
|
|
5218
|
+
}
|
|
5219
|
+
|
|
5220
|
+
.bs-vertical-nav-toggle:where([data-collapsed="true"]) {
|
|
5221
|
+
left: calc(var(--bs-vertical-nav-collapsed-width) - 0.5rem);
|
|
5222
|
+
}
|
|
5223
|
+
|
|
5224
|
+
/* Adjust position for narrow variant when NOT collapsed */
|
|
5225
|
+
.bs-vertical-nav-toggle:where([data-narrow="true"]:not([data-collapsed="true"])) {
|
|
5226
|
+
left: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem);
|
|
5227
|
+
}
|
|
5228
|
+
}
|
|
5229
|
+
.bs-vertical-nav-toggle-icon {
|
|
5230
|
+
height: 8px;
|
|
5231
|
+
width: 8px;
|
|
5232
|
+
color: inherit;
|
|
5233
|
+
transition: transform 200ms var(--bs-transition-ease);
|
|
5234
|
+
will-change: transform;
|
|
5235
|
+
flex-shrink: 0;
|
|
5236
|
+
}
|
|
5124
5237
|
/* ===== Sections ===== */
|
|
5125
5238
|
.bs-vertical-nav :where(.bs-vertical-nav-section) {
|
|
5126
5239
|
border-top: 2px solid var(--border-color);
|
|
@@ -5132,6 +5245,10 @@ a.bs-text-button {
|
|
|
5132
5245
|
margin-top: 0.25rem;
|
|
5133
5246
|
}
|
|
5134
5247
|
}
|
|
5248
|
+
/* Divider-only sections have no additional padding since no toggle button */
|
|
5249
|
+
.bs-vertical-nav :where(.bs-vertical-nav-section[data-divider-only="true"]) {
|
|
5250
|
+
padding-top: 0.25rem;
|
|
5251
|
+
}
|
|
5135
5252
|
/* Don't show border if the very first item is a section */
|
|
5136
5253
|
.bs-vertical-nav :where(ul li:first-child) {
|
|
5137
5254
|
border-top: none;
|
|
@@ -5200,54 +5317,64 @@ a.bs-text-button {
|
|
|
5200
5317
|
.bs-vertical-nav :where(ul li a) {
|
|
5201
5318
|
align-items: center;
|
|
5202
5319
|
border-radius: 4px;
|
|
5203
|
-
color: var(--
|
|
5320
|
+
color: var(--link-color);
|
|
5204
5321
|
cursor: pointer;
|
|
5205
5322
|
display: flex;
|
|
5206
5323
|
font-size: 1rem;
|
|
5207
5324
|
font-weight: 400;
|
|
5208
5325
|
gap: 0.5rem;
|
|
5209
5326
|
height: 100%;
|
|
5210
|
-
padding
|
|
5211
|
-
|
|
5212
|
-
padding-right: 0.75rem;
|
|
5213
|
-
padding-top: 0.75rem;
|
|
5327
|
+
padding: 0.5rem 0.75rem;
|
|
5328
|
+
position: relative;
|
|
5214
5329
|
text-decoration: none;
|
|
5215
|
-
|
|
5330
|
+
}
|
|
5331
|
+
/* Narrow variant - text always visible on desktop (overrides collapsed state) */
|
|
5332
|
+
@media (min-width: 1166px) {
|
|
5333
|
+
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a > span:last-child) {
|
|
5334
|
+
opacity: 1;
|
|
5335
|
+
visibility: visible;
|
|
5336
|
+
width: auto;
|
|
5337
|
+
}
|
|
5216
5338
|
}
|
|
5217
5339
|
@media (min-width: 1166px) {
|
|
5218
5340
|
.bs-vertical-nav :where(ul li a) {
|
|
5219
5341
|
font-size: 0.875rem;
|
|
5220
|
-
|
|
5221
|
-
padding
|
|
5342
|
+
min-height: 2.5rem; /* Fixed minimum height to prevent height changes */
|
|
5343
|
+
padding: 0.5rem 0.75rem; /* Explicit padding for consistency */
|
|
5222
5344
|
/* nav width - nav left padding - nav right padding */
|
|
5223
5345
|
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
|
|
5224
5346
|
}
|
|
5225
5347
|
|
|
5348
|
+
/* Collapsed state width */
|
|
5349
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a) {
|
|
5350
|
+
/* collapsed width - nav left padding - nav right padding */
|
|
5351
|
+
width: calc(var(--bs-vertical-nav-collapsed-width) - 0.5rem - 0.5rem);
|
|
5352
|
+
}
|
|
5353
|
+
|
|
5226
5354
|
/* Text overflow - normal width - no icon */
|
|
5227
5355
|
.bs-vertical-nav :where(ul li a:not(:has(.bs-vertical-nav-link-icon)) span:first-child) {
|
|
5228
5356
|
overflow: hidden;
|
|
5229
5357
|
text-overflow: ellipsis;
|
|
5358
|
+
white-space: nowrap;
|
|
5230
5359
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding */
|
|
5231
|
-
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem
|
|
5360
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem);
|
|
5232
5361
|
}
|
|
5233
5362
|
|
|
5234
5363
|
/* Text overflow - normal width - with icon */
|
|
5235
5364
|
.bs-vertical-nav :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
|
|
5236
5365
|
overflow: hidden;
|
|
5237
5366
|
text-overflow: ellipsis;
|
|
5367
|
+
white-space: nowrap;
|
|
5238
5368
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding - icon width - icon gap */
|
|
5239
|
-
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem -
|
|
5369
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 1rem - 0.5rem);
|
|
5240
5370
|
}
|
|
5241
5371
|
|
|
5242
5372
|
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
|
|
5243
5373
|
flex-direction: column;
|
|
5244
5374
|
font-size: 0.6875rem;
|
|
5245
|
-
gap: 0.
|
|
5375
|
+
gap: 0.5rem; /* 8px - matches Figma */
|
|
5246
5376
|
line-height: 1.3;
|
|
5247
|
-
padding
|
|
5248
|
-
padding-left: 0.25rem;
|
|
5249
|
-
padding-right: 0.25rem;
|
|
5250
|
-
padding-top: 0.75rem;
|
|
5377
|
+
padding: 0.5rem 0.75rem; /* 8px 12px - matches Figma */
|
|
5251
5378
|
text-align: center;
|
|
5252
5379
|
/* nav width - nav left padding - nav right padding */
|
|
5253
5380
|
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
@@ -5258,32 +5385,118 @@ a.bs-text-button {
|
|
|
5258
5385
|
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
|
|
5259
5386
|
overflow: hidden;
|
|
5260
5387
|
text-overflow: ellipsis;
|
|
5388
|
+
white-space: nowrap;
|
|
5261
5389
|
/* nav width - nav left padding - nav right padding - link left padding */
|
|
5262
5390
|
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
5263
5391
|
}
|
|
5264
5392
|
}
|
|
5265
5393
|
.bs-vertical-nav :where(ul li a:hover) {
|
|
5394
|
+
color: var(--link-hover-color);
|
|
5266
5395
|
font-weight: 600;
|
|
5267
5396
|
}
|
|
5268
5397
|
.bs-vertical-nav :where(ul li a[data-active="true"]) {
|
|
5269
5398
|
background-color: var(--active-color);
|
|
5399
|
+
color: var(--link-active-color);
|
|
5270
5400
|
font-weight: 600;
|
|
5401
|
+
transition: background-color 200ms ease-out;
|
|
5271
5402
|
}
|
|
5403
|
+
/* Icon sizing - mobile/default */
|
|
5272
5404
|
.bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
|
|
5273
5405
|
height: 1rem;
|
|
5274
5406
|
width: 1rem;
|
|
5407
|
+
flex-shrink: 0; /* Prevent icon from shrinking */
|
|
5275
5408
|
}
|
|
5276
5409
|
@media (min-width: 1166px) {
|
|
5277
|
-
|
|
5410
|
+
/* Wide and collapsible variant icons - 14px */
|
|
5411
|
+
.bs-vertical-nav:not([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
5278
5412
|
height: 0.875rem;
|
|
5279
5413
|
width: 0.875rem;
|
|
5414
|
+
margin-left: 0.25rem; /* Visual centering adjustment */
|
|
5280
5415
|
}
|
|
5281
5416
|
|
|
5417
|
+
/* Narrow variant icons - 16px (inherits from base) */
|
|
5282
5418
|
.bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
5283
5419
|
height: 1rem;
|
|
5284
5420
|
width: 1rem;
|
|
5285
5421
|
}
|
|
5286
5422
|
}
|
|
5423
|
+
/* Default: Show text on mobile */
|
|
5424
|
+
.bs-vertical-nav :where(ul li a > span:last-child) {
|
|
5425
|
+
opacity: 1;
|
|
5426
|
+
visibility: visible;
|
|
5427
|
+
width: auto;
|
|
5428
|
+
}
|
|
5429
|
+
/* Desktop: Show text when NOT collapsed */
|
|
5430
|
+
@media (min-width: 1166px) {
|
|
5431
|
+
.bs-vertical-nav:not([data-collapsed="true"]) :where(ul li a > span:last-child) {
|
|
5432
|
+
opacity: 1;
|
|
5433
|
+
visibility: visible;
|
|
5434
|
+
width: auto;
|
|
5435
|
+
/* Immediate visibility when appropriate */
|
|
5436
|
+
transition: opacity 150ms ease, visibility 0ms linear;
|
|
5437
|
+
}
|
|
5438
|
+
}
|
|
5439
|
+
/* Desktop: Hide text when collapsed */
|
|
5440
|
+
@media (min-width: 1166px) {
|
|
5441
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a > span:last-child) {
|
|
5442
|
+
opacity: 0;
|
|
5443
|
+
visibility: hidden;
|
|
5444
|
+
width: 0;
|
|
5445
|
+
overflow: hidden;
|
|
5446
|
+
white-space: nowrap;
|
|
5447
|
+
/* Delay visibility to prevent flash during breakpoint transition */
|
|
5448
|
+
transition: opacity 150ms ease, visibility 0ms linear 150ms;
|
|
5449
|
+
}
|
|
5450
|
+
}
|
|
5451
|
+
/* Keep icons visible when collapsed */
|
|
5452
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
5453
|
+
display: block;
|
|
5454
|
+
}
|
|
5455
|
+
/* Hide section toggle when collapsed */
|
|
5456
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-section-toggle) {
|
|
5457
|
+
display: none;
|
|
5458
|
+
}
|
|
5459
|
+
/* ===== Hover Expansion (CSS-only) ===== */
|
|
5460
|
+
@media (min-width: 1166px) {
|
|
5461
|
+
/* Expand nav on hover when collapsed and collapsible - but NOT when hovering the toggle button */
|
|
5462
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-collapsible="true"]) {
|
|
5463
|
+
width: var(--bs-vertical-nav-width);
|
|
5464
|
+
}
|
|
5465
|
+
|
|
5466
|
+
/* Narrow variant should respect narrow width on hover */
|
|
5467
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-narrow="true"]) {
|
|
5468
|
+
width: var(--bs-vertical-nav-narrow-width);
|
|
5469
|
+
}
|
|
5470
|
+
|
|
5471
|
+
/* Expand link widths on hover when collapsed */
|
|
5472
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"]) :where(ul li a) {
|
|
5473
|
+
width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
|
|
5474
|
+
}
|
|
5475
|
+
|
|
5476
|
+
/* Narrow variant links should respect narrow width on hover */
|
|
5477
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-narrow="true"]) :where(ul li a) {
|
|
5478
|
+
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
5479
|
+
}
|
|
5480
|
+
|
|
5481
|
+
/* Show text on hover when collapsed */
|
|
5482
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"]) :where(ul li a > span:last-child) {
|
|
5483
|
+
opacity: 1;
|
|
5484
|
+
visibility: visible;
|
|
5485
|
+
width: auto;
|
|
5486
|
+
overflow: visible;
|
|
5487
|
+
}
|
|
5488
|
+
|
|
5489
|
+
/* Hide toggle button on hover when collapsed - but NOT when hovering the button itself */
|
|
5490
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav-toggle[data-collapsed="true"]) {
|
|
5491
|
+
opacity: 0;
|
|
5492
|
+
pointer-events: none; /* Prevent interaction when hidden */
|
|
5493
|
+
}
|
|
5494
|
+
|
|
5495
|
+
/* Show section toggles on hover when collapsed */
|
|
5496
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"]) :where(.bs-vertical-nav-section-toggle) {
|
|
5497
|
+
display: flex;
|
|
5498
|
+
}
|
|
5499
|
+
}
|
|
5287
5500
|
/* ===== End Items ===== */
|
|
5288
5501
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items) {
|
|
5289
5502
|
display: flex;
|
|
@@ -5291,11 +5504,23 @@ a.bs-text-button {
|
|
|
5291
5504
|
gap: 0.25rem;
|
|
5292
5505
|
margin-top: auto;
|
|
5293
5506
|
}
|
|
5507
|
+
/* End items visibility for collapsible variant (desktop only) */
|
|
5508
|
+
@media (min-width: 1166px) {
|
|
5509
|
+
/* Hide end items when collapsible variant is collapsed */
|
|
5510
|
+
.bs-vertical-nav:where([data-collapsible="true"][data-collapsed="true"]) :where(.bs-vertical-nav-end-items) {
|
|
5511
|
+
display: none;
|
|
5512
|
+
}
|
|
5513
|
+
|
|
5514
|
+
/* Show end items on hover when collapsible variant is collapsed */
|
|
5515
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsible="true"][data-collapsed="true"]) :where(.bs-vertical-nav-end-items) {
|
|
5516
|
+
display: flex;
|
|
5517
|
+
}
|
|
5518
|
+
}
|
|
5294
5519
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items > *) {
|
|
5295
|
-
color: var(--
|
|
5520
|
+
color: var(--text-color);
|
|
5296
5521
|
}
|
|
5297
5522
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items > *:not(button)) {
|
|
5298
|
-
color: var(--
|
|
5523
|
+
color: var(--text-color);
|
|
5299
5524
|
padding-bottom: 0.5rem;
|
|
5300
5525
|
padding-left: 0.75rem;
|
|
5301
5526
|
padding-right: 0.75rem;
|
|
@@ -5312,9 +5537,16 @@ a.bs-text-button {
|
|
|
5312
5537
|
margin-right: 0.75rem;
|
|
5313
5538
|
margin-top: 0.5rem;
|
|
5314
5539
|
}
|
|
5540
|
+
/* Hide end items in narrow variant (all screen sizes) */
|
|
5315
5541
|
.bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-end-items) {
|
|
5316
5542
|
display: none;
|
|
5317
5543
|
}
|
|
5544
|
+
/* ===== CSS-Only Page Layout Support ===== */
|
|
5545
|
+
/* Apply to any element that needs to adjust for navigation width (e.g., headers, main content) */
|
|
5546
|
+
.bs-header-with-nav {
|
|
5547
|
+
margin-inline-start: var(--bs-page-nav-width);
|
|
5548
|
+
transition: margin-inline-start 350ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
5549
|
+
}
|
|
5318
5550
|
/*
|
|
5319
5551
|
POP SYSTEM COMPONENTS
|
|
5320
5552
|
Components that are built on top of BsPopover. The popover.css must come first.
|