@wwtdev/bsds-css 2.31.0 → 2.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/components/_vertical-navigation.scss +258 -42
- package/dist/components/vertical-navigation.css +258 -42
- package/dist/wwt-bsds.css +237 -41
- package/dist/wwt-bsds.min.css +1 -1
- package/package.json +1 -1
package/dist/wwt-bsds.css
CHANGED
|
@@ -6051,17 +6051,29 @@ This must go last to properly override the other classes
|
|
|
6051
6051
|
transform: translateY(-50%) scale(0.5);
|
|
6052
6052
|
}
|
|
6053
6053
|
:root {
|
|
6054
|
-
--bs-vertical-nav-width:
|
|
6054
|
+
--bs-vertical-nav-width: 11.25rem;
|
|
6055
6055
|
--bs-vertical-nav-narrow-width: 4.5rem;
|
|
6056
|
+
--bs-vertical-nav-collapsed-width: 4.5rem;
|
|
6057
|
+
/* Dynamic width set by the navigation component for page layout */
|
|
6058
|
+
--bs-page-nav-width: 0px;
|
|
6056
6059
|
}
|
|
6057
|
-
.bs-vertical-nav {
|
|
6060
|
+
.bs-vertical-nav-wrapper {
|
|
6058
6061
|
--active-color: rgba(255, 255, 255, 0.25);
|
|
6059
6062
|
--bg-color: var(--bs-navy-base);
|
|
6060
6063
|
--border-color: var(--bs-border-dark);
|
|
6064
|
+
--text-color: var(--bs-white);
|
|
6065
|
+
--link-color: var(--bs-white);
|
|
6066
|
+
--link-hover-color: var(--bs-white);
|
|
6067
|
+
--link-active-color: var(--bs-white);
|
|
6068
|
+
--toggle-bg-color: var(--bg-color);
|
|
6069
|
+
--toggle-color: var(--bs-white);
|
|
6061
6070
|
--top-offset: 48px;
|
|
6071
|
+
}
|
|
6072
|
+
.bs-vertical-nav {
|
|
6062
6073
|
-ms-overflow-style: none; /* Internet Explorer 10+ */
|
|
6063
6074
|
background-color: var(--bg-color);
|
|
6064
|
-
|
|
6075
|
+
border-inline-end: 1px solid var(--border-color);
|
|
6076
|
+
color: var(--text-color);
|
|
6065
6077
|
display: flex;
|
|
6066
6078
|
flex-direction: column;
|
|
6067
6079
|
height: 100dvh;
|
|
@@ -6077,7 +6089,6 @@ This must go last to properly override the other classes
|
|
|
6077
6089
|
right: 0;
|
|
6078
6090
|
scrollbar-width: none; /* Firefox */
|
|
6079
6091
|
top: var(--top-offset);
|
|
6080
|
-
/* Slight delay for visibility to change prior to opacity */
|
|
6081
6092
|
transition: opacity 200ms ease 10ms;
|
|
6082
6093
|
visibility: hidden;
|
|
6083
6094
|
width: auto;
|
|
@@ -6087,22 +6098,19 @@ This must go last to properly override the other classes
|
|
|
6087
6098
|
opacity: 1;
|
|
6088
6099
|
visibility: visible;
|
|
6089
6100
|
}
|
|
6090
|
-
.
|
|
6101
|
+
.bs-vertical-nav:where([data-collapsible="true"]) {
|
|
6102
|
+
transition: opacity 200ms ease 10ms, width 350ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
6103
|
+
}
|
|
6104
|
+
.dark .bs-vertical-nav-wrapper {
|
|
6091
6105
|
--active-color: rgba(255, 255, 255, 0.25);
|
|
6092
6106
|
--bg-color: var(--bs-bg-base);
|
|
6093
|
-
--border-color: var(--bs-border-
|
|
6094
|
-
border-right: 1px solid var(--bs-border-medium);
|
|
6107
|
+
--border-color: var(--bs-border-medium);
|
|
6095
6108
|
}
|
|
6096
6109
|
@media (min-width: 1166px) {
|
|
6097
6110
|
.bs-vertical-nav {
|
|
6098
|
-
border-right: 1px solid var(--bg-color);
|
|
6099
6111
|
opacity: 1;
|
|
6100
|
-
padding
|
|
6101
|
-
padding-left: 0.5rem;
|
|
6102
|
-
padding-right: 0.5rem;
|
|
6103
|
-
padding-top: 1rem;
|
|
6112
|
+
padding: 1rem;
|
|
6104
6113
|
right: auto;
|
|
6105
|
-
transition: none;
|
|
6106
6114
|
visibility: visible;
|
|
6107
6115
|
width: var(--bs-vertical-nav-width);
|
|
6108
6116
|
}
|
|
@@ -6110,21 +6118,73 @@ This must go last to properly override the other classes
|
|
|
6110
6118
|
.bs-vertical-nav:where([data-narrow="true"]) {
|
|
6111
6119
|
width: var(--bs-vertical-nav-narrow-width);
|
|
6112
6120
|
}
|
|
6121
|
+
|
|
6122
|
+
.bs-vertical-nav:where([data-collapsed="true"]) {
|
|
6123
|
+
width: var(--bs-vertical-nav-collapsed-width);
|
|
6124
|
+
}
|
|
6113
6125
|
}
|
|
6114
6126
|
.bs-vertical-nav::-webkit-scrollbar {
|
|
6115
6127
|
display: none; /* Safari and Chrome */
|
|
6116
6128
|
}
|
|
6129
|
+
/* ===== Collapse Toggle Button ===== */
|
|
6130
|
+
.bs-vertical-nav-toggle {
|
|
6131
|
+
align-items: center;
|
|
6132
|
+
background: var(--toggle-bg-color);
|
|
6133
|
+
border: 1px solid var(--border-color);
|
|
6134
|
+
border-radius: 100px;
|
|
6135
|
+
color: var(--toggle-color);
|
|
6136
|
+
cursor: pointer;
|
|
6137
|
+
display: none; /* Hidden by default on mobile */
|
|
6138
|
+
height: 24px;
|
|
6139
|
+
width: 24px;
|
|
6140
|
+
justify-content: center;
|
|
6141
|
+
padding: 0;
|
|
6142
|
+
position: fixed;
|
|
6143
|
+
left: calc(var(--bs-vertical-nav-width) - 0.5rem);
|
|
6144
|
+
pointer-events: auto; /* Ensure button is clickable */
|
|
6145
|
+
top: calc(var(--top-offset) + 1.125rem); /* top-offset + 18px */
|
|
6146
|
+
transition: left 300ms ease-out, opacity 100ms ease-out;
|
|
6147
|
+
z-index: 1002; /* Above nav to prevent hover conflicts */
|
|
6148
|
+
}
|
|
6149
|
+
@media (min-width: 1166px) {
|
|
6150
|
+
.bs-vertical-nav-toggle {
|
|
6151
|
+
display: flex;
|
|
6152
|
+
opacity: 1;
|
|
6153
|
+
transition: left 300ms ease-out, opacity 100ms ease-out;
|
|
6154
|
+
}
|
|
6155
|
+
|
|
6156
|
+
.bs-vertical-nav-toggle:where([data-collapsed="true"]) {
|
|
6157
|
+
left: calc(var(--bs-vertical-nav-collapsed-width) - 0.5rem);
|
|
6158
|
+
}
|
|
6159
|
+
|
|
6160
|
+
/* Adjust position for narrow variant when NOT collapsed */
|
|
6161
|
+
.bs-vertical-nav-toggle:where([data-narrow="true"]:not([data-collapsed="true"])) {
|
|
6162
|
+
left: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem);
|
|
6163
|
+
}
|
|
6164
|
+
}
|
|
6165
|
+
.bs-vertical-nav-toggle-icon {
|
|
6166
|
+
height: 8px;
|
|
6167
|
+
width: 8px;
|
|
6168
|
+
color: inherit;
|
|
6169
|
+
transition: transform 200ms var(--bs-transition-ease);
|
|
6170
|
+
will-change: transform;
|
|
6171
|
+
flex-shrink: 0;
|
|
6172
|
+
}
|
|
6117
6173
|
/* ===== Sections ===== */
|
|
6118
6174
|
.bs-vertical-nav :where(.bs-vertical-nav-section) {
|
|
6119
|
-
border-top:
|
|
6175
|
+
border-top: 1px solid var(--border-color);
|
|
6120
6176
|
margin-top: 0.5rem;
|
|
6121
6177
|
padding-top: 0.5rem;
|
|
6122
6178
|
}
|
|
6123
6179
|
@media (min-width: 1166px) {
|
|
6124
6180
|
.bs-vertical-nav :where(.bs-vertical-nav-section) {
|
|
6125
|
-
margin-top: 0.
|
|
6181
|
+
margin-top: 0.5rem;
|
|
6126
6182
|
}
|
|
6127
6183
|
}
|
|
6184
|
+
/* Divider-only sections have no additional padding since no toggle button */
|
|
6185
|
+
.bs-vertical-nav :where(.bs-vertical-nav-section[data-divider-only="true"]) {
|
|
6186
|
+
padding-top: 0.5rem;
|
|
6187
|
+
}
|
|
6128
6188
|
/* Don't show border if the very first item is a section */
|
|
6129
6189
|
.bs-vertical-nav :where(ul li:first-child) {
|
|
6130
6190
|
border-top: none;
|
|
@@ -6147,7 +6207,7 @@ This must go last to properly override the other classes
|
|
|
6147
6207
|
@media (min-width: 1166px) {
|
|
6148
6208
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle) {
|
|
6149
6209
|
/* nav width - nav left padding - nav right padding */
|
|
6150
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
6210
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem);
|
|
6151
6211
|
}
|
|
6152
6212
|
|
|
6153
6213
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle span:first-child) {
|
|
@@ -6155,7 +6215,7 @@ This must go last to properly override the other classes
|
|
|
6155
6215
|
text-align: start;
|
|
6156
6216
|
text-overflow: ellipsis;
|
|
6157
6217
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding - caret width */
|
|
6158
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
6218
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem - 0.75rem - 0.75rem - 0.75rem);
|
|
6159
6219
|
}
|
|
6160
6220
|
}
|
|
6161
6221
|
.bs-vertical-nav :where(.bs-vertical-nav-section-toggle-caret) {
|
|
@@ -6178,64 +6238,70 @@ This must go last to properly override the other classes
|
|
|
6178
6238
|
margin-top: 0;
|
|
6179
6239
|
padding-left: 0;
|
|
6180
6240
|
}
|
|
6181
|
-
@media (min-width: 1166px) {
|
|
6182
|
-
.bs-vertical-nav :where(ul) {
|
|
6183
|
-
gap: 0.25rem;
|
|
6184
|
-
}
|
|
6185
|
-
}
|
|
6186
6241
|
/* ===== Nav List Items / Links */
|
|
6187
6242
|
.bs-vertical-nav :where(ul li a) {
|
|
6188
6243
|
align-items: center;
|
|
6189
6244
|
border-radius: 4px;
|
|
6245
|
+
color: var(--link-color);
|
|
6190
6246
|
cursor: pointer;
|
|
6191
6247
|
display: flex;
|
|
6192
6248
|
font-size: 1rem;
|
|
6193
6249
|
font-weight: 400;
|
|
6194
6250
|
gap: 0.5rem;
|
|
6195
6251
|
height: 100%;
|
|
6196
|
-
padding
|
|
6197
|
-
|
|
6198
|
-
|
|
6199
|
-
|
|
6200
|
-
|
|
6252
|
+
padding: 0.5rem 0.75rem;
|
|
6253
|
+
position: relative;
|
|
6254
|
+
}
|
|
6255
|
+
/* Narrow variant - text always visible on desktop (overrides collapsed state) */
|
|
6256
|
+
@media (min-width: 1166px) {
|
|
6257
|
+
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a > span:last-child) {
|
|
6258
|
+
opacity: 1;
|
|
6259
|
+
visibility: visible;
|
|
6260
|
+
width: auto;
|
|
6261
|
+
}
|
|
6201
6262
|
}
|
|
6202
6263
|
@media (min-width: 1166px) {
|
|
6203
6264
|
.bs-vertical-nav :where(ul li a) {
|
|
6204
6265
|
font-size: 0.875rem;
|
|
6205
|
-
|
|
6206
|
-
padding
|
|
6266
|
+
min-height: 2.5rem; /* Fixed minimum height to prevent height changes */
|
|
6267
|
+
padding: 0.5rem 0.75rem; /* Explicit padding for consistency */
|
|
6207
6268
|
/* nav width - nav left padding - nav right padding */
|
|
6208
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
6269
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem);
|
|
6270
|
+
}
|
|
6271
|
+
|
|
6272
|
+
/* Collapsed state width */
|
|
6273
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a) {
|
|
6274
|
+
/* collapsed width - nav left padding - nav right padding */
|
|
6275
|
+
width: calc(var(--bs-vertical-nav-collapsed-width) - 1rem - 1rem);
|
|
6209
6276
|
}
|
|
6210
6277
|
|
|
6211
6278
|
/* Text overflow - normal width - no icon */
|
|
6212
6279
|
.bs-vertical-nav :where(ul li a:not(:has(.bs-vertical-nav-link-icon)) span:first-child) {
|
|
6213
6280
|
overflow: hidden;
|
|
6214
6281
|
text-overflow: ellipsis;
|
|
6282
|
+
white-space: nowrap;
|
|
6215
6283
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding */
|
|
6216
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
6284
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem - 0.75rem - 0.75rem);
|
|
6217
6285
|
}
|
|
6218
6286
|
|
|
6219
6287
|
/* Text overflow - normal width - with icon */
|
|
6220
6288
|
.bs-vertical-nav :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
|
|
6221
6289
|
overflow: hidden;
|
|
6222
6290
|
text-overflow: ellipsis;
|
|
6291
|
+
white-space: nowrap;
|
|
6223
6292
|
/* nav width - nav left padding - nav right padding - link left padding - link right padding - icon width - icon gap */
|
|
6224
|
-
width: calc(var(--bs-vertical-nav-width) -
|
|
6293
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem - 0.75rem - 0.75rem - 1rem - 0.5rem);
|
|
6225
6294
|
}
|
|
6226
6295
|
|
|
6227
6296
|
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
|
|
6228
6297
|
flex-direction: column;
|
|
6229
6298
|
font-size: 0.6875rem;
|
|
6230
|
-
gap: 0.
|
|
6299
|
+
gap: 0.5rem; /* 8px - matches Figma */
|
|
6231
6300
|
line-height: 1.3;
|
|
6232
|
-
padding
|
|
6233
|
-
padding-left: 0.25rem;
|
|
6234
|
-
padding-right: 0.25rem;
|
|
6235
|
-
padding-top: 0.75rem;
|
|
6301
|
+
padding: 0.5rem 0.75rem; /* 8px 12px - matches Figma */
|
|
6236
6302
|
text-align: center;
|
|
6237
6303
|
/* nav width - nav left padding - nav right padding */
|
|
6238
|
-
width: calc(var(--bs-vertical-nav-narrow-width) -
|
|
6304
|
+
width: calc(var(--bs-vertical-nav-narrow-width) - 1rem - 1rem);
|
|
6239
6305
|
}
|
|
6240
6306
|
|
|
6241
6307
|
/* Text overflow - narrow width */
|
|
@@ -6243,32 +6309,143 @@ This must go last to properly override the other classes
|
|
|
6243
6309
|
.bs-vertical-nav:where([data-narrow="true"]) :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
|
|
6244
6310
|
overflow: hidden;
|
|
6245
6311
|
text-overflow: ellipsis;
|
|
6312
|
+
white-space: nowrap;
|
|
6246
6313
|
/* nav width - nav left padding - nav right padding - link left padding */
|
|
6247
6314
|
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
6248
6315
|
}
|
|
6249
6316
|
}
|
|
6317
|
+
.bs-vertical-nav-section:where([data-app-links="true"]) {
|
|
6318
|
+
padding-top: 1rem;
|
|
6319
|
+
}
|
|
6320
|
+
.bs-vertical-nav-section:where([data-app-links="true"]) :where(ul li a) {
|
|
6321
|
+
padding: 0.375rem 0.5rem;
|
|
6322
|
+
font-size: 0.75rem;
|
|
6323
|
+
font-weight: 600;
|
|
6324
|
+
}
|
|
6250
6325
|
.bs-vertical-nav :where(ul li a:hover) {
|
|
6326
|
+
color: var(--link-hover-color);
|
|
6251
6327
|
font-weight: 600;
|
|
6252
6328
|
}
|
|
6329
|
+
.bs-vertical-nav-section:where([data-app-links="true"]) :where(ul li a:hover) {
|
|
6330
|
+
color: var(--bs-ink-blue);
|
|
6331
|
+
}
|
|
6253
6332
|
.bs-vertical-nav :where(ul li a[data-active="true"]) {
|
|
6254
6333
|
background-color: var(--active-color);
|
|
6334
|
+
color: var(--link-active-color);
|
|
6255
6335
|
font-weight: 600;
|
|
6336
|
+
transition: background-color 200ms ease-out;
|
|
6256
6337
|
}
|
|
6338
|
+
/* Icon sizing - mobile/default */
|
|
6257
6339
|
.bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
|
|
6258
6340
|
height: 1rem;
|
|
6259
6341
|
width: 1rem;
|
|
6342
|
+
flex-shrink: 0; /* Prevent icon from shrinking */
|
|
6260
6343
|
}
|
|
6261
6344
|
@media (min-width: 1166px) {
|
|
6262
|
-
|
|
6345
|
+
/* Wide and collapsible variant icons - 14px */
|
|
6346
|
+
.bs-vertical-nav:not([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
6263
6347
|
height: 0.875rem;
|
|
6264
6348
|
width: 0.875rem;
|
|
6265
6349
|
}
|
|
6266
6350
|
|
|
6351
|
+
/* Narrow variant icons - 16px (inherits from base) */
|
|
6267
6352
|
.bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
6268
6353
|
height: 1rem;
|
|
6269
6354
|
width: 1rem;
|
|
6270
6355
|
}
|
|
6271
6356
|
}
|
|
6357
|
+
.bs-vertical-nav-section:where([data-app-links="true"]) .bs-vertical-nav-link-icon {
|
|
6358
|
+
height: 1.5rem;
|
|
6359
|
+
width: 1.5rem;
|
|
6360
|
+
margin-left: 0;
|
|
6361
|
+
}
|
|
6362
|
+
/* Default: Show text on mobile */
|
|
6363
|
+
.bs-vertical-nav :where(ul li a > span:last-child) {
|
|
6364
|
+
opacity: 1;
|
|
6365
|
+
visibility: visible;
|
|
6366
|
+
width: auto;
|
|
6367
|
+
}
|
|
6368
|
+
/* Desktop: Show text when NOT collapsed */
|
|
6369
|
+
@media (min-width: 1166px) {
|
|
6370
|
+
.bs-vertical-nav:not([data-collapsed="true"]) :where(ul li a > span:last-child) {
|
|
6371
|
+
opacity: 1;
|
|
6372
|
+
visibility: visible;
|
|
6373
|
+
width: auto;
|
|
6374
|
+
/* Immediate visibility when appropriate */
|
|
6375
|
+
transition: opacity 150ms ease, visibility 0ms linear;
|
|
6376
|
+
}
|
|
6377
|
+
}
|
|
6378
|
+
/* Desktop: Hide text when collapsed */
|
|
6379
|
+
@media (min-width: 1166px) {
|
|
6380
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a > span:last-child) {
|
|
6381
|
+
opacity: 0;
|
|
6382
|
+
visibility: hidden;
|
|
6383
|
+
width: 0;
|
|
6384
|
+
overflow: hidden;
|
|
6385
|
+
white-space: nowrap;
|
|
6386
|
+
/* Delay visibility to prevent flash during breakpoint transition */
|
|
6387
|
+
transition: opacity 150ms ease, visibility 0ms linear 150ms;
|
|
6388
|
+
}
|
|
6389
|
+
}
|
|
6390
|
+
/* Keep icons visible when collapsed */
|
|
6391
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-link-icon) {
|
|
6392
|
+
display: block;
|
|
6393
|
+
}
|
|
6394
|
+
/* Hide section toggle when collapsed */
|
|
6395
|
+
.bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-section-toggle) {
|
|
6396
|
+
display: none;
|
|
6397
|
+
}
|
|
6398
|
+
/* ===== Hover Expansion (CSS-only) ===== */
|
|
6399
|
+
@media (min-width: 1166px) {
|
|
6400
|
+
/* Expand nav on hover when collapsed and collapsible - but NOT when hovering the toggle button */
|
|
6401
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-collapsible="true"]) {
|
|
6402
|
+
width: var(--bs-vertical-nav-width);
|
|
6403
|
+
}
|
|
6404
|
+
|
|
6405
|
+
/* Narrow variant should respect narrow width on hover */
|
|
6406
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-narrow="true"]) {
|
|
6407
|
+
width: var(--bs-vertical-nav-narrow-width);
|
|
6408
|
+
}
|
|
6409
|
+
|
|
6410
|
+
/* Expand link widths on hover when collapsed */
|
|
6411
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"]) :where(ul li a) {
|
|
6412
|
+
width: calc(var(--bs-vertical-nav-width) - 1rem - 1rem);
|
|
6413
|
+
}
|
|
6414
|
+
|
|
6415
|
+
/* Narrow variant links should respect narrow width on hover */
|
|
6416
|
+
.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) {
|
|
6417
|
+
width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
|
|
6418
|
+
}
|
|
6419
|
+
|
|
6420
|
+
/* Show text on hover when collapsed */
|
|
6421
|
+
.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) {
|
|
6422
|
+
opacity: 1;
|
|
6423
|
+
visibility: visible;
|
|
6424
|
+
width: auto;
|
|
6425
|
+
overflow: visible;
|
|
6426
|
+
}
|
|
6427
|
+
|
|
6428
|
+
/* Hide toggle button on hover when collapsed - but NOT when hovering the button itself */
|
|
6429
|
+
.bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav-toggle[data-collapsed="true"]) {
|
|
6430
|
+
opacity: 0;
|
|
6431
|
+
pointer-events: none; /* Prevent interaction when hidden */
|
|
6432
|
+
}
|
|
6433
|
+
|
|
6434
|
+
/* Show section toggles on hover when collapsed */
|
|
6435
|
+
.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) {
|
|
6436
|
+
display: flex;
|
|
6437
|
+
}
|
|
6438
|
+
}
|
|
6439
|
+
/* ===== Top Content ===== */
|
|
6440
|
+
.bs-vertical-nav :where(.bs-vertical-nav-top-content) {
|
|
6441
|
+
margin-bottom: 0.5rem;
|
|
6442
|
+
padding: 0;
|
|
6443
|
+
}
|
|
6444
|
+
@media (min-width: 1166px) {
|
|
6445
|
+
.bs-vertical-nav :where(.bs-vertical-nav-top-content) {
|
|
6446
|
+
margin-bottom: 0.75rem;
|
|
6447
|
+
}
|
|
6448
|
+
}
|
|
6272
6449
|
/* ===== End Items ===== */
|
|
6273
6450
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items) {
|
|
6274
6451
|
display: flex;
|
|
@@ -6276,11 +6453,23 @@ This must go last to properly override the other classes
|
|
|
6276
6453
|
gap: 0.25rem;
|
|
6277
6454
|
margin-top: auto;
|
|
6278
6455
|
}
|
|
6456
|
+
/* End items visibility for collapsible variant (desktop only) */
|
|
6457
|
+
@media (min-width: 1166px) {
|
|
6458
|
+
/* Hide end items when collapsible variant is collapsed */
|
|
6459
|
+
.bs-vertical-nav:where([data-collapsible="true"][data-collapsed="true"]) :where(.bs-vertical-nav-end-items) {
|
|
6460
|
+
display: none;
|
|
6461
|
+
}
|
|
6462
|
+
|
|
6463
|
+
/* Show end items on hover when collapsible variant is collapsed */
|
|
6464
|
+
.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) {
|
|
6465
|
+
display: flex;
|
|
6466
|
+
}
|
|
6467
|
+
}
|
|
6279
6468
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items > *) {
|
|
6280
|
-
color: var(--
|
|
6469
|
+
color: var(--text-color);
|
|
6281
6470
|
}
|
|
6282
6471
|
.bs-vertical-nav :where(.bs-vertical-nav-end-items > *:not(button)) {
|
|
6283
|
-
color: var(--
|
|
6472
|
+
color: var(--text-color);
|
|
6284
6473
|
padding-bottom: 0.5rem;
|
|
6285
6474
|
padding-left: 0.75rem;
|
|
6286
6475
|
padding-right: 0.75rem;
|
|
@@ -6297,6 +6486,13 @@ This must go last to properly override the other classes
|
|
|
6297
6486
|
margin-right: 0.75rem;
|
|
6298
6487
|
margin-top: 0.5rem;
|
|
6299
6488
|
}
|
|
6489
|
+
/* Hide end items in narrow variant (all screen sizes) */
|
|
6300
6490
|
.bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-end-items) {
|
|
6301
6491
|
display: none;
|
|
6302
6492
|
}
|
|
6493
|
+
/* ===== CSS-Only Page Layout Support ===== */
|
|
6494
|
+
/* Apply to any element that needs to adjust for navigation width (e.g., headers, main content) */
|
|
6495
|
+
.bs-header-with-nav {
|
|
6496
|
+
margin-inline-start: var(--bs-page-nav-width);
|
|
6497
|
+
transition: margin-inline-start 350ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
6498
|
+
}
|