@wwtdev/bsds-css 2.24.0 → 2.26.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.
@@ -1,3 +1,7 @@
1
+ :root {
2
+ --bs-horizontal-nav-height: 48px;
3
+ }
4
+
1
5
  .bs-horizontal-nav {
2
6
  --bg-color: var(--bs-bg-light);
3
7
  --top-offset: 48px;
@@ -5,12 +9,12 @@
5
9
  background-color: var(--bg-color);
6
10
  bottom: auto;
7
11
  display: none;
8
- height: 48px;
12
+ height: var(--bs-horizontal-nav-height);
9
13
  left: 0;
10
14
  position: fixed;
11
15
  right: 0;
12
16
  top: var(--top-offset);
13
- z-index: 1001;
17
+ z-index: 1000;
14
18
  }
15
19
 
16
20
  @media (min-width: 1166px) {
@@ -32,8 +36,7 @@
32
36
  }
33
37
 
34
38
  /* ===== Nav List ===== */
35
- .bs-horizontal-nav :where(nav > ul),
36
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul) {
39
+ .bs-horizontal-nav :where(nav > ul) {
37
40
  align-items: center;
38
41
  display: flex;
39
42
  flex-direction: row;
@@ -56,20 +59,17 @@
56
59
  padding-left: 0;
57
60
  padding-right: 0;
58
61
  padding-top: 0;
59
- width: auto;
60
62
  }
61
63
 
62
64
  /* ===== Nav Items ===== */
63
- .bs-horizontal-nav :where(nav > ul > li),
64
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li) {
65
+ .bs-horizontal-nav :where(nav > ul > li) {
65
66
  border-bottom: none;
66
67
  display: list-item;
67
68
  margin-left: 0;
68
69
  width: auto;
69
70
  }
70
71
 
71
- .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a),
72
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a) {
72
+ .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a) {
73
73
  align-items: center;
74
74
  border-radius: 4px;
75
75
  color: var(--bs-ink-light);
@@ -85,19 +85,16 @@
85
85
  width: 100%;
86
86
  }
87
87
 
88
- .bs-horizontal-nav :where(nav > ul > li:not(.bs-horizontal-nav-title) > a:hover),
89
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a:hover) {
88
+ .bs-horizontal-nav :where(nav > ul > li > a:hover) {
90
89
  color: var(--bs-ink-blue);
91
90
  }
92
91
 
93
- .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]),
94
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a[data-active="true"]) {
92
+ .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]) {
95
93
  color: var(--bs-ink-base);
96
94
  font-weight: 600;
97
95
  }
98
96
 
99
- .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]:hover),
100
- .bs-horizontal-nav :where(nav > .bs-horizontal-nav-external-links > ul > li > a[data-active="true"]:hover) {
97
+ .bs-horizontal-nav :where(nav > ul > li > a[data-active="true"]:hover) {
101
98
  color: var(--bs-ink-blue);
102
99
  }
103
100
 
@@ -157,10 +154,12 @@
157
154
  --dropdown-top: 100%;
158
155
  border-radius: 8px;
159
156
  padding: 1.5rem;
160
- width: 10.5rem;
161
157
  }
162
158
 
163
159
  .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu > ul) {
160
+ display: inline-flex;
161
+ flex-direction: column;
162
+ gap: 0.5rem;
164
163
  list-style: none;
165
164
  }
166
165
 
@@ -186,24 +185,30 @@
186
185
  color: var(--bs-ink-blue);
187
186
  }
188
187
 
189
- /* ===== External Links ===== */
190
- .bs-horizontal-nav :where(.bs-horizontal-nav-external-link-icon) {
191
- height: 1rem;
192
- width: 1rem;
188
+ /* ===== End Items ===== */
189
+ .bs-horizontal-nav :where(.bs-horizontal-nav-end-items) {
190
+ display: flex;
191
+ gap: 1.5rem;
192
+ margin-left: auto;
193
+ white-space: nowrap;
193
194
  }
194
195
 
195
- /* ===== Slotted Items ===== */
196
- .bs-horizontal-nav :where(.bs-horizontal-nav-slotted-items) {
197
- margin-left: auto;
196
+ .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > *) {
197
+ font-size: 0.75rem;
198
+ font-weight: 600;
198
199
  }
199
200
 
200
- .bs-horizontal-nav :where(.bs-horizontal-nav-external-links ~ .bs-horizontal-nav-slotted-items) {
201
- margin-left: 1.5rem;
201
+ .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > *:not(button)) {
202
+ color: var(--bs-ink-light);
203
+ padding-bottom: 0.5rem;
204
+ padding-left: 0rem;
205
+ padding-right: 0rem;
206
+ padding-top: 0.5rem;
202
207
  }
203
208
 
204
- /* ===== Component-specific ===== */
205
- .bs-horizontal-nav :where(.bs-horizontal-nav-nested-menu-override) {
206
- --dropdown-top: 0;
207
- padding: 1.5rem;
208
- width: 10.5rem;
209
+ .bs-horizontal-nav :where(.bs-horizontal-nav-end-items > button) {
210
+ margin-bottom: 0.5rem;
211
+ margin-left: 0rem;
212
+ margin-right: 0rem;
213
+ margin-top: 0.5rem;
209
214
  }
@@ -28,7 +28,7 @@
28
28
 
29
29
  @media (min-width: 752px) {
30
30
  .bs-modal {
31
- max-height: min(calc(100vh - 3rem), 40.625rem);
31
+ max-height: min(calc(100dvh - 3rem), 40.625rem);
32
32
  width: var(--base-modal-width);
33
33
  }
34
34
 
@@ -90,6 +90,7 @@
90
90
  .bs-modal :where(.bs-modal-close-button) {
91
91
  background-color: transparent;
92
92
  cursor: pointer;
93
+ z-index: 10000;
93
94
  }
94
95
 
95
96
  .bs-modal:where(:not(:has(.bs-modal-header-container))) :where(.bs-modal-close-button) {
@@ -36,6 +36,7 @@
36
36
 
37
37
  .bs-pagination button:where(:disabled) {
38
38
  color: var(--bs-ink-disabled);
39
+ cursor: default;
39
40
  }
40
41
 
41
42
  .bs-pagination button:where([data-selected]:not([data-selected="false"])) {
@@ -36,33 +36,43 @@
36
36
  }
37
37
 
38
38
  /* ------------- Tabs and Toggle ------------- */
39
- :is(bs-tab-list, .bs-tab-list) :where([role="tab"], .bs-tab-list-toggle) {
39
+ .bs-tab-list-toggle,
40
+ :is(bs-tab-list, .bs-tab-list) :where([role="tab"]) {
41
+ font-size: var(--tab-text-size, .875rem);
42
+ font-weight: var(--tab-weight, 400);
43
+ display: inline-flex;
40
44
  align-items: center;
45
+ gap: 0.375rem;
41
46
  color: var(--tab-color, var(--bs-ink-light));
42
47
  column-gap: .5rem;
43
48
  cursor: var(--tab-cursor);
44
- display: var(--tab-display);
45
49
  flex-basis: var(--tab-basis, content);
46
50
  flex-grow: var(--tab-grow, 1);
47
51
  flex-shrink: var(--tab-shrink, 0);
48
- font-size: inherit;
49
- font-weight: var(--tab-weight, var(--bs-font-normal));
50
52
  height: 2.5rem;
51
53
  justify-content: var(--tab-justify-self, center);
52
54
  padding: .5rem;
53
55
  outline-color: var(--bs-blue-base);
54
56
  outline-offset: -1px;
55
57
  text-decoration: none;
58
+ border-bottom: 1px solid var(--bs-border-base);
59
+ border-top: none;
60
+ border-left: none;
61
+ border-right: none;
62
+ border-radius: 0;
63
+ background: none;
56
64
  }
57
65
 
66
+
58
67
  :is(bs-tab-list, .bs-tab-list) :where([role="tab"]):where([tabindex="-1"]) {
59
68
  --tab-cursor: default;
60
69
  }
61
- :is(bs-tab-list, .bs-tab-list) :where([role="tab"], .bs-tab-list-toggle):where([data-hidden]:not([data-hidden="false"])) {
62
- --tab-display: none;
70
+
71
+ :is(bs-tab-list, .bs-tab-list) :where([role="tab"][data-hidden]:not([data-hidden="false"])), :is(bs-tab-list-toggle, .bs-tab-list-toggle):where([data-hidden]:not([data-hidden="false"])) {
72
+ display: none;
63
73
  }
64
- :is(bs-tab-list, .bs-tab-list) :where([role="tab"]):where([aria-selected]:not([aria-selected="false"])),
65
- :is(bs-tab-list, .bs-tab-list) :where(.bs-tab-list-toggle):where([data-active]:not([data-active="false"])) {
74
+
75
+ :is(bs-tab-list, .bs-tab-list) :where([role="tab"][data-hidden]:not([data-hidden="false"])):where([aria-selected]:not([aria-selected="false"])), :is(bs-tab-list-toggle, .bs-tab-list-toggle):where([data-hidden]:not([data-hidden="false"])):where([data-active]:not([data-active="false"])) {
66
76
  --tab-color: var(--bs-ink-base);
67
77
  --tab-weight: var(--bs-font-bold);
68
78
  }
@@ -1,18 +1,22 @@
1
+ :root {
2
+ --bs-vertical-nav-width: 9.875rem;
3
+ --bs-vertical-nav-narrow-width: 4.5rem;
4
+ }
5
+
1
6
  .bs-vertical-nav {
2
7
  --active-color: rgba(255, 255, 255, 0.25);
3
8
  --bg-color: var(--bs-navy-base);
4
9
  --border-color: var(--bs-border-dark);
5
10
  --expand-y-transform: translateY(calc(-1 * var(--top-offset)));
6
11
  --top-offset: 48px;
7
- --width: auto;
8
12
  -ms-overflow-style: none; /* Internet Explorer 10+ */
9
13
  background-color: var(--bg-color);
10
14
  color: var(--bs-white);
11
15
  display: flex;
12
16
  flex-direction: column;
13
- height: 100vh;
17
+ height: 100dvh;
14
18
  left: 0;
15
- max-height: calc(100vh - var(--top-offset));
19
+ max-height: calc(100dvh - var(--top-offset));
16
20
  opacity: 0;
17
21
  overflow: scroll;
18
22
  padding-bottom: 1.5rem;
@@ -26,8 +30,8 @@
26
30
  /* Slight delay for visibility to change prior to opacity */
27
31
  transition: opacity 200ms ease 10ms;
28
32
  visibility: hidden;
29
- width: var(--width);
30
- z-index: 1001;
33
+ width: auto;
34
+ z-index: 1000;
31
35
  }
32
36
 
33
37
  .bs-vertical-nav:where([data-mobile-shown="true"]) {
@@ -44,7 +48,6 @@
44
48
 
45
49
  @media (min-width: 1166px) {
46
50
  .bs-vertical-nav {
47
- --width: 9.875rem;
48
51
  border-right: 1px solid var(--bg-color);
49
52
  opacity: 1;
50
53
  padding-bottom: 1rem;
@@ -54,10 +57,11 @@
54
57
  right: auto;
55
58
  transition: max-height 200ms ease, transform 200ms ease;
56
59
  visibility: visible;
60
+ width: var(--bs-vertical-nav-width);
57
61
  }
58
62
 
59
63
  .bs-vertical-nav:where([data-narrow="true"]) {
60
- --width: 4.5rem;
64
+ width: var(--bs-vertical-nav-narrow-width);
61
65
  }
62
66
  }
63
67
 
@@ -67,7 +71,7 @@
67
71
 
68
72
  .bs-vertical-nav:where([data-y-expand="true"]) {
69
73
  transform: var(--expand-y-transform);
70
- max-height: 100vh;
74
+ max-height: 100dvh;
71
75
  }
72
76
 
73
77
  /* ===== Sections ===== */
@@ -104,6 +108,21 @@
104
108
  width: 100%;
105
109
  }
106
110
 
111
+ @media (min-width: 1166px) {
112
+ .bs-vertical-nav :where(.bs-vertical-nav-section-toggle) {
113
+ /* nav width - nav left padding - nav right padding */
114
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
115
+ }
116
+
117
+ .bs-vertical-nav :where(.bs-vertical-nav-section-toggle span:first-child) {
118
+ overflow: hidden;
119
+ text-align: start;
120
+ text-overflow: ellipsis;
121
+ /* nav width - nav left padding - nav right padding - link left padding - link right padding - caret width */
122
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 0.75rem);
123
+ }
124
+ }
125
+
107
126
  .bs-vertical-nav :where(.bs-vertical-nav-section-toggle-caret) {
108
127
  height: 0.75rem;
109
128
  transform: none;
@@ -155,18 +174,47 @@
155
174
  font-size: 0.875rem;
156
175
  padding-bottom: 0.5rem;
157
176
  padding-top: 0.5rem;
177
+ /* nav width - nav left padding - nav right padding */
178
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem);
179
+ }
180
+
181
+ /* Text overflow - normal width - no icon */
182
+ .bs-vertical-nav :where(ul li a:not(:has(.bs-vertical-nav-link-icon)) span:first-child) {
183
+ overflow: hidden;
184
+ text-overflow: ellipsis;
185
+ /* nav width - nav left padding - nav right padding - link left padding - link right padding */
186
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem);
187
+ }
188
+
189
+ /* Text overflow - normal width - with icon */
190
+ .bs-vertical-nav :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
191
+ overflow: hidden;
192
+ text-overflow: ellipsis;
193
+ /* nav width - nav left padding - nav right padding - link left padding - link right padding - icon width - icon gap */
194
+ width: calc(var(--bs-vertical-nav-width) - 0.5rem - 0.5rem - 0.75rem - 0.75rem - 0.875rem - 0.5rem);
158
195
  }
159
196
 
160
197
  .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a) {
161
198
  flex-direction: column;
162
199
  font-size: 0.6875rem;
163
200
  gap: 0.25rem;
164
- line-height: 110%;
201
+ line-height: 1.3;
165
202
  padding-bottom: 0.75rem;
166
203
  padding-left: 0.25rem;
167
204
  padding-right: 0.25rem;
168
205
  padding-top: 0.75rem;
169
206
  text-align: center;
207
+ /* nav width - nav left padding - nav right padding */
208
+ width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
209
+ }
210
+
211
+ /* Text overflow - narrow width */
212
+ .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a:not(:has(.bs-vertical-nav-link-icon)) span:first-child),
213
+ .bs-vertical-nav:where([data-narrow="true"]) :where(ul li a:has(.bs-vertical-nav-link-icon) span:nth-child(2)) {
214
+ overflow: hidden;
215
+ text-overflow: ellipsis;
216
+ /* nav width - nav left padding - nav right padding - link left padding */
217
+ width: calc(var(--bs-vertical-nav-narrow-width) - 0.5rem - 0.5rem);
170
218
  }
171
219
  }
172
220
 
@@ -196,37 +244,39 @@
196
244
  }
197
245
  }
198
246
 
199
- /* ===== External Links ===== */
200
- .bs-vertical-nav :where(.bs-vertical-nav-external-links) {
247
+ /* ===== End Items ===== */
248
+ .bs-vertical-nav :where(.bs-vertical-nav-end-items) {
249
+ display: flex;
250
+ flex-direction: column;
251
+ gap: 0.25rem;
201
252
  margin-top: auto;
202
- padding-top: 2.25rem;
203
253
  }
204
254
 
205
- .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-external-links) {
206
- display: none;
255
+ .bs-vertical-nav :where(.bs-vertical-nav-end-items > *) {
256
+ color: var(--bs-white);
207
257
  }
208
258
 
209
- .bs-vertical-nav :where(.bs-vertical-nav-external-links .bs-vertical-nav-external-link-icon) {
210
- height: 1rem;
211
- width: 1rem;
259
+ .bs-vertical-nav :where(.bs-vertical-nav-end-items > *:not(button)) {
260
+ color: var(--bs-white);
261
+ padding-bottom: 0.5rem;
262
+ padding-left: 0.75rem;
263
+ padding-right: 0.75rem;
264
+ padding-top: 0.5rem;
212
265
  }
213
266
 
214
267
  @media (min-width: 1166px) {
215
- .bs-vertical-nav :where(.bs-vertical-nav-external-links .bs-vertical-nav-external-link-icon) {
216
- height: 0.875rem;
217
- width: 0.875rem;
268
+ .bs-vertical-nav :where(.bs-vertical-nav-end-items > *:not(button)) {
269
+ font-size: 0.875rem;
218
270
  }
219
271
  }
220
272
 
221
- /* ===== Slotted Items ===== */
222
- .bs-vertical-nav :where(.bs-vertical-nav-slotted-items) {
223
- margin-top: auto;
224
- }
225
-
226
- .bs-vertical-nav :where(.bs-vertical-nav-external-links ~ .bs-vertical-nav-slotted-items) {
227
- margin-top: 1rem;
273
+ .bs-vertical-nav :where(.bs-vertical-nav-end-items > button) {
274
+ margin-bottom: 0.5rem;
275
+ margin-left: 0.75rem;
276
+ margin-right: 0.75rem;
277
+ margin-top: 0.5rem;
228
278
  }
229
279
 
230
- .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-slotted-items) {
280
+ .bs-vertical-nav:where([data-narrow="true"]) :where(.bs-vertical-nav-end-items) {
231
281
  display: none;
232
282
  }
@@ -245,7 +245,7 @@ html:where(:focus-within) {
245
245
 
246
246
  body {
247
247
  line-height: 1.5;
248
- min-height: 100vh;
248
+ min-height: 100dvh;
249
249
  text-rendering: optimizeSpeed;
250
250
  }
251
251