@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.css CHANGED
@@ -5195,6 +5195,7 @@ label:where(.bs-label) {
5195
5195
  .bs-option {
5196
5196
  padding: var(--bs-space-1) var(--bs-space-2);
5197
5197
  color: var(--bs-ink-base);
5198
+ --description-color: var(--bs-ink-light);
5198
5199
  cursor: pointer;
5199
5200
  border-left: 4px solid transparent;
5200
5201
  border-right: 4px solid transparent;
@@ -5212,12 +5213,14 @@ label:where(.bs-label) {
5212
5213
  /* Don't disable via pointer-events, so tooltips still work in a disabled menu item. */
5213
5214
  .bs-option:where([aria-disabled="true"]) {
5214
5215
  color: var(--bs-ink-disabled);
5216
+ --description-color: var(--bs-ink-disabled);
5215
5217
  cursor: default;
5216
5218
  }
5217
5219
  /* -- SELECTED -- */
5218
- .bs-option:where(:not([aria-disabled="true"])):hover,
5219
- .bs-dropdown-list:where(:not([aria-multiselectable="true"])) :where(.bs-option[aria-selected="true"]) {
5220
+ .bs-option:where(:not([aria-disabled="true"], [data-negative="true"])):hover,
5221
+ .bs-option:where(:not([data-multiple="true"])[aria-selected="true"]) {
5220
5222
  color: var(--bs-ink-primary);
5223
+ --description-color: var(--bs-ink-primary);
5221
5224
  background: var(--bs-bg-medium-to-light);
5222
5225
  border-left-color: var(--bs-ink-primary);
5223
5226
  }
@@ -5230,16 +5233,62 @@ label:where(.bs-label) {
5230
5233
  .bs-option:where([data-active="true"]) {
5231
5234
  box-shadow: inset 0 0 0 2px var(--bs-primary-base);
5232
5235
  }
5233
- /* -- HJ TODO: Variants (this is just quick junk for multiple w/checkbox) -- */
5234
- .bs-dropdown-list:where([aria-multiselectable="true"]) :where(.bs-option) {
5236
+ /* -- NEGATIVE -- */
5237
+ .bs-option:where([data-negative="true"]:hover),
5238
+ .bs-option:where(:not([data-multiple="true"])[data-negative="true"][aria-selected="true"]) {
5239
+ color: var(--bs-ink-negative);
5240
+ background: var(--bs-negative-highlight);
5241
+ border-left-color: var(--bs-negative-base);
5242
+ --description-color: var(--bs-ink-negative);
5243
+ }
5244
+ .bs-option:where([data-negative="true"][aria-selected="true"]) :where(.bs-checkbox):before {
5245
+ --fill-bg-color: var(--bs-negative-base);
5246
+ }
5247
+ .bs-option:where([data-negative="true"][data-active="true"]) {
5248
+ box-shadow: inset 0 0 0 2px var(--bs-negative-base);
5249
+ }
5250
+ /* -- MULTIPLE -- */
5251
+ .bs-option:where([data-multiple="true"]) {
5235
5252
  display: grid;
5236
5253
  grid-template-columns: auto 1fr;
5237
5254
  align-items: start;
5238
5255
  gap: var(--bs-space-2);
5239
5256
  }
5240
- .bs-dropdown-list:where([aria-multiselectable="true"]) :where(.bs-option) :where(.bs-checkbox) {
5257
+ .bs-option:where([data-multiple="true"]) :where(.bs-checkbox) {
5241
5258
  margin-top: var(--bs-space-1);
5242
5259
  }
5260
+ /* -- VARIANTS -- */
5261
+ .bs-option-grid:where([data-icon-col="true"]) {
5262
+ display: grid;
5263
+ grid-template:
5264
+ "icon label"
5265
+ ". description"
5266
+ / auto 1fr;
5267
+ grid-column-gap: var(--bs-space-2);
5268
+ }
5269
+ .bs-option-grid:where(:not([data-icon-col="true"])) {
5270
+ display: grid;
5271
+ grid-template:
5272
+ "label"
5273
+ "description";
5274
+ }
5275
+ .bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(1)) {
5276
+ grid-area: icon;
5277
+ align-self: center;
5278
+ max-width: 1.5rem;
5279
+ max-height: 1.5rem;
5280
+ }
5281
+ .bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(2)),
5282
+ .bs-option-grid:where(:not([data-icon-col="true"])) :where(:nth-child(1)) {
5283
+ grid-area: label;
5284
+ }
5285
+ .bs-option-grid:where([data-icon-col="true"]) :where(:nth-child(3)),
5286
+ .bs-option-grid:where(:not([data-icon-col="true"])) :where(:nth-child(2)) {
5287
+ grid-area: description;
5288
+ font-size: var(--bs-text-xs);
5289
+ padding-top: 0.125rem;
5290
+ color: var(--description-color);
5291
+ }
5243
5292
  .bs-overlay {
5244
5293
  -webkit-backdrop-filter: blur(4px);
5245
5294
  backdrop-filter: blur(4px);
@@ -6505,14 +6554,30 @@ a.bs-text-button {
6505
6554
  --step-color: var(--bs-ink-negative);
6506
6555
  --progress-step-bg: var(--bs-negative-base);
6507
6556
  }
6508
- .bs-vertical-nav {
6557
+ :root {
6558
+ --bs-vertical-nav-width: 9.875rem;
6559
+ --bs-vertical-nav-narrow-width: 4.5rem;
6560
+ --bs-vertical-nav-collapsed-width: 4rem;
6561
+ /* Dynamic width set by the navigation component for page layout */
6562
+ --bs-page-nav-width: 0px;
6563
+ }
6564
+ .bs-vertical-nav-wrapper {
6509
6565
  --active-color: rgba(255, 255, 255, 0.25);
6510
6566
  --bg-color: var(--bs-navy-base);
6511
6567
  --border-color: var(--bs-border-dark);
6568
+ --text-color: var(--bs-white);
6569
+ --link-color: var(--bs-white);
6570
+ --link-hover-color: var(--bs-white);
6571
+ --link-active-color: var(--bs-white);
6572
+ --toggle-bg-color: var(--bg-color);
6573
+ --toggle-color: var(--bs-white);
6512
6574
  --top-offset: 48px;
6575
+ }
6576
+ .bs-vertical-nav {
6513
6577
  -ms-overflow-style: none; /* Internet Explorer 10+ */
6514
6578
  background-color: var(--bg-color);
6515
- color: var(--bs-white);
6579
+ border-inline-end: 1px solid var(--border-color);
6580
+ color: var(--text-color);
6516
6581
  display: flex;
6517
6582
  flex-direction: column;
6518
6583
  height: 100dvh;
@@ -6538,22 +6603,22 @@ a.bs-text-button {
6538
6603
  opacity: 1;
6539
6604
  visibility: visible;
6540
6605
  }
6541
- .dark .bs-vertical-nav {
6606
+ .bs-vertical-nav:where([data-collapsible="true"]) {
6607
+ transition: opacity 200ms ease 10ms, width 350ms cubic-bezier(0.4, 0, 0.2, 1);
6608
+ }
6609
+ .dark .bs-vertical-nav-wrapper {
6542
6610
  --active-color: rgba(255, 255, 255, 0.25);
6543
6611
  --bg-color: var(--bs-bg-base);
6544
- --border-color: var(--bs-border-dark);
6545
- border-right: 1px solid var(--bs-border-medium);
6612
+ --border-color: var(--bs-border-medium);
6546
6613
  }
6547
6614
  @media (min-width: 1166px) {
6548
6615
  .bs-vertical-nav {
6549
- border-right: 1px solid var(--bg-color);
6550
6616
  opacity: 1;
6551
6617
  padding-bottom: 1rem;
6552
6618
  padding-left: 0.5rem;
6553
6619
  padding-right: 0.5rem;
6554
6620
  padding-top: 1rem;
6555
6621
  right: auto;
6556
- transition: none;
6557
6622
  visibility: visible;
6558
6623
  width: var(--bs-vertical-nav-width);
6559
6624
  }
@@ -6561,10 +6626,58 @@ a.bs-text-button {
6561
6626
  .bs-vertical-nav:where([data-narrow="true"]) {
6562
6627
  width: var(--bs-vertical-nav-narrow-width);
6563
6628
  }
6629
+
6630
+ .bs-vertical-nav:where([data-collapsed="true"]) {
6631
+ width: var(--bs-vertical-nav-collapsed-width);
6632
+ }
6564
6633
  }
6565
6634
  .bs-vertical-nav::-webkit-scrollbar {
6566
6635
  display: none; /* Safari and Chrome */
6567
6636
  }
6637
+ /* ===== Collapse Toggle Button ===== */
6638
+ .bs-vertical-nav-toggle {
6639
+ align-items: center;
6640
+ background: var(--toggle-bg-color);
6641
+ border: 1px solid var(--border-color);
6642
+ border-radius: 100px;
6643
+ color: var(--toggle-color);
6644
+ cursor: pointer;
6645
+ display: none; /* Hidden by default on mobile */
6646
+ height: 24px;
6647
+ width: 24px;
6648
+ justify-content: center;
6649
+ padding: 0;
6650
+ position: fixed;
6651
+ left: calc(var(--bs-vertical-nav-width) - 0.5rem);
6652
+ pointer-events: auto; /* Ensure button is clickable */
6653
+ top: calc(var(--top-offset) + 3rem); /* top-offset + 3rem */
6654
+ transition: left 300ms ease-out, opacity 100ms ease-out;
6655
+ z-index: 1002; /* Above nav to prevent hover conflicts */
6656
+ }
6657
+ @media (min-width: 1166px) {
6658
+ .bs-vertical-nav-toggle {
6659
+ display: flex;
6660
+ opacity: 1;
6661
+ transition: left 300ms ease-out, opacity 100ms ease-out;
6662
+ }
6663
+
6664
+ .bs-vertical-nav-toggle:where([data-collapsed="true"]) {
6665
+ left: calc(var(--bs-vertical-nav-collapsed-width) - 0.5rem);
6666
+ }
6667
+
6668
+ /* Adjust position for narrow variant when NOT collapsed */
6669
+ .bs-vertical-nav-toggle:where([data-narrow="true"]:not([data-collapsed="true"])) {
6670
+ left: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem);
6671
+ }
6672
+ }
6673
+ .bs-vertical-nav-toggle-icon {
6674
+ height: 8px;
6675
+ width: 8px;
6676
+ color: inherit;
6677
+ transition: transform 200ms var(--bs-transition-ease);
6678
+ will-change: transform;
6679
+ flex-shrink: 0;
6680
+ }
6568
6681
  /* ===== Sections ===== */
6569
6682
  .bs-vertical-nav :where(.bs-vertical-nav-section) {
6570
6683
  border-top: 2px solid var(--border-color);
@@ -6576,6 +6689,10 @@ a.bs-text-button {
6576
6689
  margin-top: 0.25rem;
6577
6690
  }
6578
6691
  }
6692
+ /* Divider-only sections have no additional padding since no toggle button */
6693
+ .bs-vertical-nav :where(.bs-vertical-nav-section[data-divider-only="true"]) {
6694
+ padding-top: 0.25rem;
6695
+ }
6579
6696
  /* Don't show border if the very first item is a section */
6580
6697
  .bs-vertical-nav :where(ul li:first-child) {
6581
6698
  border-top: none;
@@ -6644,54 +6761,64 @@ a.bs-text-button {
6644
6761
  .bs-vertical-nav :where(ul li a) {
6645
6762
  align-items: center;
6646
6763
  border-radius: 4px;
6647
- color: var(--bs-white);
6764
+ color: var(--link-color);
6648
6765
  cursor: pointer;
6649
6766
  display: flex;
6650
6767
  font-size: 1rem;
6651
6768
  font-weight: 400;
6652
6769
  gap: 0.5rem;
6653
6770
  height: 100%;
6654
- padding-bottom: 0.75rem;
6655
- padding-left: 0.75rem;
6656
- padding-right: 0.75rem;
6657
- padding-top: 0.75rem;
6771
+ padding: 0.5rem 0.75rem;
6772
+ position: relative;
6658
6773
  text-decoration: none;
6659
- width: 100%;
6774
+ }
6775
+ /* Narrow variant - text always visible on desktop (overrides collapsed state) */
6776
+ @media (min-width: 1166px) {
6777
+ .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a > span:last-child) {
6778
+ opacity: 1;
6779
+ visibility: visible;
6780
+ width: auto;
6781
+ }
6660
6782
  }
6661
6783
  @media (min-width: 1166px) {
6662
6784
  .bs-vertical-nav :where(ul li a) {
6663
6785
  font-size: 0.875rem;
6664
- padding-bottom: 0.5rem;
6665
- padding-top: 0.5rem;
6786
+ min-height: 2.5rem; /* Fixed minimum height to prevent height changes */
6787
+ padding: 0.5rem 0.75rem; /* Explicit padding for consistency */
6666
6788
  /* nav width - nav left padding - nav right padding */
6667
6789
  width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
6668
6790
  }
6669
6791
 
6792
+ /* Collapsed state width */
6793
+ .bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a) {
6794
+ /* collapsed width - nav left padding - nav right padding */
6795
+ width: calc(var(--bs-vertical-nav-collapsed-width) - 0.5rem - 0.5rem);
6796
+ }
6797
+
6670
6798
  /* Text overflow - normal width - no icon */
6671
6799
  .bs-vertical-nav :where(ul li a:not(:has(.bs-vertical-nav-link-icon)) span:first-child) {
6672
6800
  overflow: hidden;
6673
6801
  text-overflow: ellipsis;
6802
+ white-space: nowrap;
6674
6803
  /* nav width - nav left padding - nav right padding - link left padding - link right padding */
6675
- width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem);
6804
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem);
6676
6805
  }
6677
6806
 
6678
6807
  /* Text overflow - normal width - with icon */
6679
6808
  .bs-vertical-nav :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
6680
6809
  overflow: hidden;
6681
6810
  text-overflow: ellipsis;
6811
+ white-space: nowrap;
6682
6812
  /* nav width - nav left padding - nav right padding - link left padding - link right padding - icon width - icon gap */
6683
- width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 0.875rem - 0.5rem);
6813
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 1rem - 0.5rem);
6684
6814
  }
6685
6815
 
6686
6816
  .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
6687
6817
  flex-direction: column;
6688
6818
  font-size: 0.6875rem;
6689
- gap: 0.25rem;
6819
+ gap: 0.5rem; /* 8px - matches Figma */
6690
6820
  line-height: 1.3;
6691
- padding-bottom: 0.75rem;
6692
- padding-left: 0.25rem;
6693
- padding-right: 0.25rem;
6694
- padding-top: 0.75rem;
6821
+ padding: 0.5rem 0.75rem; /* 8px 12px - matches Figma */
6695
6822
  text-align: center;
6696
6823
  /* nav width - nav left padding - nav right padding */
6697
6824
  width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
@@ -6702,32 +6829,118 @@ a.bs-text-button {
6702
6829
  .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
6703
6830
  overflow: hidden;
6704
6831
  text-overflow: ellipsis;
6832
+ white-space: nowrap;
6705
6833
  /* nav width - nav left padding - nav right padding - link left padding */
6706
6834
  width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
6707
6835
  }
6708
6836
  }
6709
6837
  .bs-vertical-nav :where(ul li a:hover) {
6838
+ color: var(--link-hover-color);
6710
6839
  font-weight: 600;
6711
6840
  }
6712
6841
  .bs-vertical-nav :where(ul li a[data-active="true"]) {
6713
6842
  background-color: var(--active-color);
6843
+ color: var(--link-active-color);
6714
6844
  font-weight: 600;
6845
+ transition: background-color 200ms ease-out;
6715
6846
  }
6847
+ /* Icon sizing - mobile/default */
6716
6848
  .bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
6717
6849
  height: 1rem;
6718
6850
  width: 1rem;
6851
+ flex-shrink: 0; /* Prevent icon from shrinking */
6719
6852
  }
6720
6853
  @media (min-width: 1166px) {
6721
- .bs-vertical-nav :where(.bs-vertical-nav-link-icon) {
6854
+ /* Wide and collapsible variant icons - 14px */
6855
+ .bs-vertical-nav:not([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
6722
6856
  height: 0.875rem;
6723
6857
  width: 0.875rem;
6858
+ margin-left: 0.25rem; /* Visual centering adjustment */
6724
6859
  }
6725
6860
 
6861
+ /* Narrow variant icons - 16px (inherits from base) */
6726
6862
  .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-link-icon) {
6727
6863
  height: 1rem;
6728
6864
  width: 1rem;
6729
6865
  }
6730
6866
  }
6867
+ /* Default: Show text on mobile */
6868
+ .bs-vertical-nav :where(ul li a > span:last-child) {
6869
+ opacity: 1;
6870
+ visibility: visible;
6871
+ width: auto;
6872
+ }
6873
+ /* Desktop: Show text when NOT collapsed */
6874
+ @media (min-width: 1166px) {
6875
+ .bs-vertical-nav:not([data-collapsed="true"]) :where(ul li a > span:last-child) {
6876
+ opacity: 1;
6877
+ visibility: visible;
6878
+ width: auto;
6879
+ /* Immediate visibility when appropriate */
6880
+ transition: opacity 150ms ease, visibility 0ms linear;
6881
+ }
6882
+ }
6883
+ /* Desktop: Hide text when collapsed */
6884
+ @media (min-width: 1166px) {
6885
+ .bs-vertical-nav:where([data-collapsed="true"]) :where(ul li a > span:last-child) {
6886
+ opacity: 0;
6887
+ visibility: hidden;
6888
+ width: 0;
6889
+ overflow: hidden;
6890
+ white-space: nowrap;
6891
+ /* Delay visibility to prevent flash during breakpoint transition */
6892
+ transition: opacity 150ms ease, visibility 0ms linear 150ms;
6893
+ }
6894
+ }
6895
+ /* Keep icons visible when collapsed */
6896
+ .bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-link-icon) {
6897
+ display: block;
6898
+ }
6899
+ /* Hide section toggle when collapsed */
6900
+ .bs-vertical-nav:where([data-collapsed="true"]) :where(.bs-vertical-nav-section-toggle) {
6901
+ display: none;
6902
+ }
6903
+ /* ===== Hover Expansion (CSS-only) ===== */
6904
+ @media (min-width: 1166px) {
6905
+ /* Expand nav on hover when collapsed and collapsible - but NOT when hovering the toggle button */
6906
+ .bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-collapsible="true"]) {
6907
+ width: var(--bs-vertical-nav-width);
6908
+ }
6909
+
6910
+ /* Narrow variant should respect narrow width on hover */
6911
+ .bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"][data-narrow="true"]) {
6912
+ width: var(--bs-vertical-nav-narrow-width);
6913
+ }
6914
+
6915
+ /* Expand link widths on hover when collapsed */
6916
+ .bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav[data-collapsed="true"]) :where(ul li a) {
6917
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
6918
+ }
6919
+
6920
+ /* Narrow variant links should respect narrow width on hover */
6921
+ .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) {
6922
+ width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
6923
+ }
6924
+
6925
+ /* Show text on hover when collapsed */
6926
+ .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) {
6927
+ opacity: 1;
6928
+ visibility: visible;
6929
+ width: auto;
6930
+ overflow: visible;
6931
+ }
6932
+
6933
+ /* Hide toggle button on hover when collapsed - but NOT when hovering the button itself */
6934
+ .bs-vertical-nav-wrapper:where(:hover:not(:has(.bs-vertical-nav-toggle:hover))) :where(.bs-vertical-nav-toggle[data-collapsed="true"]) {
6935
+ opacity: 0;
6936
+ pointer-events: none; /* Prevent interaction when hidden */
6937
+ }
6938
+
6939
+ /* Show section toggles on hover when collapsed */
6940
+ .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) {
6941
+ display: flex;
6942
+ }
6943
+ }
6731
6944
  /* ===== End Items ===== */
6732
6945
  .bs-vertical-nav :where(.bs-vertical-nav-end-items) {
6733
6946
  display: flex;
@@ -6735,11 +6948,23 @@ a.bs-text-button {
6735
6948
  gap: 0.25rem;
6736
6949
  margin-top: auto;
6737
6950
  }
6951
+ /* End items visibility for collapsible variant (desktop only) */
6952
+ @media (min-width: 1166px) {
6953
+ /* Hide end items when collapsible variant is collapsed */
6954
+ .bs-vertical-nav:where([data-collapsible="true"][data-collapsed="true"]) :where(.bs-vertical-nav-end-items) {
6955
+ display: none;
6956
+ }
6957
+
6958
+ /* Show end items on hover when collapsible variant is collapsed */
6959
+ .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) {
6960
+ display: flex;
6961
+ }
6962
+ }
6738
6963
  .bs-vertical-nav :where(.bs-vertical-nav-end-items > *) {
6739
- color: var(--bs-white);
6964
+ color: var(--text-color);
6740
6965
  }
6741
6966
  .bs-vertical-nav :where(.bs-vertical-nav-end-items > *:not(button)) {
6742
- color: var(--bs-white);
6967
+ color: var(--text-color);
6743
6968
  padding-bottom: 0.5rem;
6744
6969
  padding-left: 0.75rem;
6745
6970
  padding-right: 0.75rem;
@@ -6756,9 +6981,16 @@ a.bs-text-button {
6756
6981
  margin-right: 0.75rem;
6757
6982
  margin-top: 0.5rem;
6758
6983
  }
6984
+ /* Hide end items in narrow variant (all screen sizes) */
6759
6985
  .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-end-items) {
6760
6986
  display: none;
6761
6987
  }
6988
+ /* ===== CSS-Only Page Layout Support ===== */
6989
+ /* Apply to any element that needs to adjust for navigation width (e.g., headers, main content) */
6990
+ .bs-header-with-nav {
6991
+ margin-inline-start: var(--bs-page-nav-width);
6992
+ transition: margin-inline-start 350ms cubic-bezier(0.4, 0, 0.2, 1);
6993
+ }
6762
6994
  /*
6763
6995
  POP SYSTEM COMPONENTS
6764
6996
  Components that are built on top of BsPopover. The popover.css must come first.