baseline-foundry 0.1.3 → 0.1.4

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.
Files changed (43) hide show
  1. package/README.md +568 -552
  2. package/config/experiments/ibm-plex-engine-smoke.json +115 -115
  3. package/config/experiments/ubuntu-engine-smoke.json +115 -115
  4. package/config/foundation-theme.json +110 -110
  5. package/config/tiers/app.json +116 -116
  6. package/config/tiers/documentation.json +116 -116
  7. package/config/tiers/editorial.json +116 -116
  8. package/config/tiers/os.json +116 -116
  9. package/dist/baseline-grid-overlay.js +43 -43
  10. package/dist/css-app-tier.js +73 -73
  11. package/dist/css-components/article-pagination.js +140 -140
  12. package/dist/css-components/button-actions.js +161 -161
  13. package/dist/css-components/cards-options.js +176 -176
  14. package/dist/css-components/chip-badge-status.js +158 -158
  15. package/dist/css-components/content-card.js +490 -490
  16. package/dist/css-components/control-row.js +14 -14
  17. package/dist/css-components/cta-figure-aspect.js +120 -120
  18. package/dist/css-components/document-navigation.js +390 -390
  19. package/dist/css-components/editorial-content.js +42 -42
  20. package/dist/css-components/icon.js +72 -72
  21. package/dist/css-components/interactive-feedback.js +217 -217
  22. package/dist/css-components/interactive-tables.js +155 -155
  23. package/dist/css-components/legacy-navigation.d.ts +9 -0
  24. package/dist/css-components/legacy-navigation.js +763 -0
  25. package/dist/css-components/linked-logo-site-layout.js +177 -177
  26. package/dist/css-components/list-tree.js +94 -94
  27. package/dist/css-components/logo-media.js +201 -201
  28. package/dist/css-components/navigation-layout.js +144 -144
  29. package/dist/css-components/panel.js +144 -144
  30. package/dist/css-components/search-box-and-filter.js +263 -263
  31. package/dist/css-components/sites-editorial-ports.js +243 -243
  32. package/dist/css-components/sites-foundation.js +146 -146
  33. package/dist/css-components/sites-rich-lists.js +344 -344
  34. package/dist/css-components/static-content-ports.js +182 -182
  35. package/dist/css-components/tab-section.js +82 -82
  36. package/dist/css-components/table.js +75 -75
  37. package/dist/css-components/tabs-choice-breadcrumbs.js +303 -303
  38. package/dist/css-components/tiered-list-equal-height-row.js +271 -271
  39. package/dist/css-components.js +1791 -2542
  40. package/dist/css-grid.js +172 -172
  41. package/dist/css.js +240 -240
  42. package/docs/publishing.md +30 -13
  43. package/package.json +119 -108
@@ -0,0 +1,763 @@
1
+ export function legacyNavigationCss(options) {
2
+ const { bodyMediumTypeStyles, bodySemiboldTypeStyles, bodyTypeStyles, buttonMarginBottom, buttonPadding, compactButtonPadding } = options;
3
+ return `:where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html) {
4
+ color: var(--bf-color-text-inactive);
5
+ display: block;
6
+ inline-size: 100%;
7
+ }
8
+
9
+ :where(.bf-theme) :where(.bf-side-navigation-drawer) {
10
+ background: var(--bf-color-background-default);
11
+ bottom: 0;
12
+ color: var(--bf-color-text-default);
13
+ inline-size: 100%;
14
+ left: 0;
15
+ overflow: auto;
16
+ position: fixed;
17
+ top: 0;
18
+ transform: translateX(-100%);
19
+ transition: transform 160ms ease, visibility 160ms ease, box-shadow 160ms ease;
20
+ visibility: visible;
21
+ z-index: 102;
22
+ }
23
+
24
+ :where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html):where(.is-drawer-expanded) :where(.bf-side-navigation-drawer) {
25
+ box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
26
+ transform: translateX(0);
27
+ }
28
+
29
+ :where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html):where(.is-drawer-hidden) :where(.bf-side-navigation-drawer) {
30
+ display: none;
31
+ }
32
+
33
+ :where(.bf-theme) :where(.bf-side-navigation-overlay) {
34
+ background: var(--bf-color-background-overlay);
35
+ inset: 0;
36
+ opacity: 0;
37
+ pointer-events: none;
38
+ position: fixed;
39
+ transition: opacity 160ms ease, visibility 160ms ease;
40
+ visibility: hidden;
41
+ z-index: 101;
42
+ }
43
+
44
+ :where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html):where(.is-drawer-expanded) :where(.bf-side-navigation-overlay) {
45
+ opacity: 1;
46
+ pointer-events: auto;
47
+ visibility: visible;
48
+ }
49
+
50
+ :where(.bf-theme) :where(.bf-side-navigation-drawer-header) {
51
+ background: var(--bf-color-background-default);
52
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
53
+ margin-bottom: calc(var(--bf-baseline) * 2);
54
+ padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
55
+ padding-inline: var(--bf-panel-padding-inline);
56
+ padding-top: var(--bf-panel-padding-block);
57
+ position: sticky;
58
+ top: 0;
59
+ z-index: 1;
60
+ }
61
+
62
+ :where(.bf-theme) :where(.bf-side-navigation-toggle, .bf-side-navigation-toggle.is-in-drawer) {
63
+ ${bodyTypeStyles} align-items: center;
64
+ appearance: none;
65
+ background: var(--bf-color-background-default);
66
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
67
+ border-radius: var(--bf-radius);
68
+ color: var(--bf-color-text-default);
69
+ cursor: pointer;
70
+ display: inline-flex;
71
+ gap: calc(var(--bf-baseline) * 0.5);
72
+ justify-content: center;
73
+ margin: 0 0 ${buttonMarginBottom};
74
+ ${buttonPadding} padding-inline: var(--bf-control-inline-padding-action);
75
+ text-decoration: none;
76
+ }
77
+
78
+ :where(.bf-theme) :where(.bf-side-navigation-toggle)::before {
79
+ background-image: var(--bf-ui-icon-chevron-down);
80
+ background-position: center;
81
+ background-repeat: no-repeat;
82
+ background-size: 1rem 1rem;
83
+ block-size: 1rem;
84
+ content: "";
85
+ inline-size: 1rem;
86
+ transform: rotate(-90deg);
87
+ }
88
+
89
+ :where(.bf-theme) :where(.bf-side-navigation-toggle.is-in-drawer)::before {
90
+ background-image: var(--bf-ui-icon-chevron-down);
91
+ background-position: center;
92
+ background-repeat: no-repeat;
93
+ background-size: 1rem 1rem;
94
+ block-size: 1rem;
95
+ content: "";
96
+ inline-size: 1rem;
97
+ transform: rotate(90deg);
98
+ }
99
+
100
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:hover) {
101
+ background: var(--bf-color-background-hover);
102
+ }
103
+
104
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:focus:not(:focus-visible)) {
105
+ outline: none;
106
+ }
107
+
108
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:focus-visible) {
109
+ outline: 2px solid var(--bf-color-focus);
110
+ outline-offset: -2px;
111
+ }
112
+
113
+ :where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked) {
114
+ ${bodySemiboldTypeStyles} display: block;
115
+ margin: 0 0 var(--bf-body-margin-bottom);
116
+ padding-block: var(--bf-body-nudge-start) 0;
117
+ }
118
+
119
+ :where(.bf-theme) :where(.bf-side-navigation-list) {
120
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
121
+ list-style: none;
122
+ margin: 0 0 calc(var(--bf-baseline) * 2);
123
+ padding: 0 0 calc((var(--bf-baseline) * 2) - var(--bf-border-width));
124
+ }
125
+
126
+ :where(.bf-theme) :where(.bf-side-navigation-list:last-of-type) {
127
+ border-bottom: 0;
128
+ margin-bottom: 0;
129
+ padding-bottom: 0;
130
+ }
131
+
132
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title) {
133
+ margin: 0;
134
+ position: relative;
135
+ }
136
+
137
+ :where(.bf-theme) :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
138
+ ${bodyTypeStyles} align-items: center;
139
+ background: transparent;
140
+ border: 0;
141
+ color: var(--bf-color-text-inactive);
142
+ display: flex;
143
+ gap: calc(var(--bf-baseline) * 0.5);
144
+ inline-size: 100%;
145
+ justify-content: flex-start;
146
+ margin: 0;
147
+ min-block-size: var(--bf-control-box-size-compact);
148
+ ${compactButtonPadding} padding-inline: var(--bf-panel-padding-inline);
149
+ position: relative;
150
+ text-align: left;
151
+ text-decoration: none;
152
+ }
153
+
154
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button) {
155
+ gap: var(--bf-disclosure-gap);
156
+ }
157
+
158
+ :where(.bf-theme) :where(.bf-side-navigation-item.is-title) > :where(.bf-side-navigation-link, .bf-side-navigation-text) {
159
+ color: var(--bf-color-text-default);
160
+ font-weight: 600;
161
+ }
162
+
163
+ :where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked),
164
+ :where(.bf-theme) :where(.bf-side-navigation-list) > :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title) > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
165
+ padding-inline-start: var(--bf-panel-padding-inline);
166
+ }
167
+
168
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
169
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
170
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
171
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 2));
172
+ }
173
+
174
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
175
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
176
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
177
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
178
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 4));
179
+ }
180
+
181
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
182
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
183
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
184
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
185
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
186
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 6));
187
+ }
188
+
189
+ :where(.bf-theme) :where(.bf-side-navigation-link:hover, .bf-side-navigation-accordion-button:hover) {
190
+ background: var(--bf-color-background-hover);
191
+ color: var(--bf-color-text-default);
192
+ text-decoration: none;
193
+ }
194
+
195
+ :where(.bf-theme) :where(.bf-side-navigation-link:focus:not(:focus-visible), .bf-side-navigation-accordion-button:focus:not(:focus-visible)) {
196
+ outline: none;
197
+ }
198
+
199
+ :where(.bf-theme) :where(.bf-side-navigation-link:focus-visible, .bf-side-navigation-accordion-button:focus-visible) {
200
+ outline: 2px solid var(--bf-color-focus);
201
+ outline-offset: -2px;
202
+ }
203
+
204
+ :where(.bf-theme) :where(.bf-side-navigation-link.is-active, .bf-side-navigation-link[aria-current='page'], .bf-side-navigation-link[aria-current='true']) {
205
+ background: var(--bf-color-background-active);
206
+ box-shadow: inset var(--bf-bar-thickness) 0 0 var(--bf-color-text-default);
207
+ color: var(--bf-color-text-default);
208
+ cursor: default;
209
+ }
210
+
211
+ :where(.bf-theme) :where(.bf-top-navigation) {
212
+ background: var(--bf-color-background-default);
213
+ box-shadow: inset 0 calc(var(--bf-border-width) * -1) 0 var(--bf-color-border-low-contrast);
214
+ color: var(--bf-color-text-default);
215
+ isolation: isolate;
216
+ position: relative;
217
+ z-index: 50;
218
+ }
219
+
220
+ :where(.bf-theme) :where(.bf-top-navigation.is-sticky) {
221
+ position: sticky;
222
+ top: 0;
223
+ z-index: 98;
224
+ }
225
+
226
+ :where(.bf-theme) :where(.bf-top-navigation-row) {
227
+ display: flex;
228
+ flex-direction: column;
229
+ min-block-size: var(--bf-navigation-bar-min-block-size);
230
+ min-inline-size: 0;
231
+ padding-block: calc(var(--bf-baseline) / 2);
232
+ padding-inline: var(--bf-panel-padding-inline);
233
+ position: relative;
234
+ z-index: 1;
235
+ }
236
+
237
+ :where(.bf-theme) :where(.bf-top-navigation) :where(.bf-fixed-width) > :where(.bf-top-navigation-row) {
238
+ padding-inline: 0;
239
+ }
240
+
241
+ :where(.bf-theme) :where(.bf-top-navigation-banner) {
242
+ align-items: stretch;
243
+ display: flex;
244
+ justify-content: space-between;
245
+ min-inline-size: 0;
246
+ }
247
+
248
+ :where(.bf-theme) :where(.bf-top-navigation-logo) {
249
+ align-items: stretch;
250
+ display: flex;
251
+ min-inline-size: 0;
252
+ }
253
+
254
+ :where(.bf-theme) :where(.bf-top-navigation-logo) > :where(.bf-top-navigation-link) {
255
+ ${bodyMediumTypeStyles} align-items: center;
256
+ color: var(--bf-color-text-default);
257
+ column-gap: calc(var(--bf-baseline) * 1.5);
258
+ display: inline-flex;
259
+ inline-size: auto;
260
+ justify-content: flex-start;
261
+ margin: 0;
262
+ min-inline-size: 0;
263
+ padding-block: var(--bf-top-navigation-link-padding-block);
264
+ padding-inline: 0;
265
+ text-decoration: none;
266
+ }
267
+
268
+ :where(.bf-theme) :where(.bf-top-navigation-logo) > :where(.bf-top-navigation-link:hover) {
269
+ background: transparent;
270
+ text-decoration: none;
271
+ }
272
+
273
+ :where(.bf-theme) :where(.bf-top-navigation-logo-tag) {
274
+ align-items: center;
275
+ background: var(--bf-color-accent);
276
+ block-size: var(--bf-top-navigation-logo-tag-block-size);
277
+ color: #ffffff;
278
+ display: inline-flex;
279
+ flex: 0 0 auto;
280
+ inline-size: var(--bf-top-navigation-logo-tag-inline-size);
281
+ justify-content: center;
282
+ }
283
+
284
+ :where(.bf-theme) :where(.bf-top-navigation-logo-icon) {
285
+ block-size: var(--bf-top-navigation-logo-icon-size);
286
+ inline-size: var(--bf-top-navigation-logo-icon-size);
287
+ }
288
+
289
+ :where(.bf-theme) :where(.bf-top-navigation-logo-title) {
290
+ min-inline-size: 0;
291
+ overflow: hidden;
292
+ text-overflow: ellipsis;
293
+ white-space: nowrap;
294
+ }
295
+
296
+ :where(.bf-theme) :where(.bf-top-navigation-nav) {
297
+ display: none;
298
+ flex-direction: column;
299
+ min-inline-size: 0;
300
+ }
301
+
302
+ :where(.bf-theme) :where(.bf-top-navigation-nav[aria-hidden='false']) {
303
+ display: flex;
304
+ }
305
+
306
+ :where(.bf-theme) :where(.bf-top-navigation-list) {
307
+ display: flex;
308
+ flex-direction: column;
309
+ list-style: none;
310
+ margin: 0;
311
+ min-inline-size: 0;
312
+ padding: 0;
313
+ }
314
+
315
+ :where(.bf-theme) :where(.bf-top-navigation-list.is-banner-actions) {
316
+ align-items: stretch;
317
+ display: flex;
318
+ flex: 0 0 auto;
319
+ flex-direction: row;
320
+ }
321
+
322
+ :where(.bf-theme) :where(.bf-top-navigation-item) {
323
+ margin: 0;
324
+ min-inline-size: 0;
325
+ position: relative;
326
+ }
327
+
328
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-item) {
329
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
330
+ }
331
+
332
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-right-shifted) {
333
+ margin-inline-start: auto;
334
+ }
335
+
336
+ :where(.bf-theme) :where(.bf-top-navigation-link, .bf-top-navigation-menu-toggle, .bf-top-navigation-search-toggle) {
337
+ ${bodyTypeStyles} align-items: center;
338
+ appearance: none;
339
+ background: transparent;
340
+ border: 0;
341
+ color: var(--bf-color-text-default);
342
+ cursor: pointer;
343
+ display: inline-flex;
344
+ gap: calc(var(--bf-baseline) * 1);
345
+ inline-size: 100%;
346
+ justify-content: flex-start;
347
+ margin: 0;
348
+ min-inline-size: 0;
349
+ padding-block: var(--bf-top-navigation-link-padding-block);
350
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
351
+ position: relative;
352
+ text-align: left;
353
+ text-decoration: none;
354
+ white-space: nowrap;
355
+ }
356
+
357
+ :where(.bf-theme) :where(.bf-top-navigation-link:hover, .bf-top-navigation-menu-toggle:hover, .bf-top-navigation-search-toggle:hover) {
358
+ background: var(--bf-color-background-hover);
359
+ text-decoration: none;
360
+ }
361
+
362
+ :where(.bf-theme) :where(.bf-top-navigation-link:focus:not(:focus-visible), .bf-top-navigation-menu-toggle:focus:not(:focus-visible), .bf-top-navigation-search-toggle:focus:not(:focus-visible)) {
363
+ outline: none;
364
+ }
365
+
366
+ :where(.bf-theme) :where(.bf-top-navigation-link:focus-visible, .bf-top-navigation-menu-toggle:focus-visible, .bf-top-navigation-search-toggle:focus-visible) {
367
+ outline: 2px solid var(--bf-color-focus);
368
+ outline-offset: -2px;
369
+ }
370
+
371
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-selected) > :where(.bf-top-navigation-link),
372
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-link),
373
+ :where(.bf-theme) :where(.bf-top-navigation-link[aria-current='page']) {
374
+ background: var(--bf-color-background-hover);
375
+ box-shadow: inset var(--bf-bar-thickness) 0 0 var(--bf-color-text-default);
376
+ color: var(--bf-color-text-default);
377
+ }
378
+
379
+ :where(.bf-theme) :where(.bf-top-navigation-menu-toggle) {
380
+ display: inline-flex;
381
+ }
382
+
383
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle) {
384
+ justify-content: center;
385
+ min-inline-size: var(--bf-top-navigation-search-toggle-inline-size);
386
+ }
387
+
388
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-toggle) {
389
+ padding-inline-end: calc(var(--bf-top-navigation-link-padding-inline) + var(--bf-top-navigation-end-slot-inline-size));
390
+ }
391
+
392
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-toggle)::after {
393
+ background-image: var(--bf-ui-icon-chevron-down);
394
+ background-position: center;
395
+ background-repeat: no-repeat;
396
+ background-size: 1rem 1rem;
397
+ block-size: 1rem;
398
+ bottom: 0;
399
+ content: "";
400
+ inline-size: 1rem;
401
+ margin-block: auto;
402
+ pointer-events: none;
403
+ position: absolute;
404
+ right: var(--bf-top-navigation-link-padding-inline);
405
+ top: 0;
406
+ transform: rotate(0deg);
407
+ transition: transform 160ms ease;
408
+ }
409
+
410
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-dropdown-toggle)::after {
411
+ transform: rotate(180deg);
412
+ }
413
+
414
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown) {
415
+ background: var(--bf-color-background-default);
416
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
417
+ display: none;
418
+ list-style: none;
419
+ margin: 0;
420
+ min-inline-size: 100%;
421
+ padding: 0;
422
+ }
423
+
424
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-dropdown) {
425
+ display: block;
426
+ }
427
+
428
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item) {
429
+ ${bodyTypeStyles} align-items: center;
430
+ color: var(--bf-color-text-default);
431
+ display: flex;
432
+ gap: calc(var(--bf-baseline) * 2);
433
+ inline-size: 100%;
434
+ justify-content: space-between;
435
+ min-inline-size: 0;
436
+ padding-block: var(--bf-top-navigation-link-padding-block);
437
+ padding-inline: calc(var(--bf-top-navigation-link-padding-inline) + (var(--bf-baseline) * 2)) var(--bf-top-navigation-link-padding-inline);
438
+ text-align: left;
439
+ text-decoration: none;
440
+ white-space: nowrap;
441
+ }
442
+
443
+ :where(.bf-theme) :where(button.bf-top-navigation-dropdown-item) {
444
+ appearance: none;
445
+ background: transparent;
446
+ border: 0;
447
+ cursor: pointer;
448
+ font: inherit;
449
+ }
450
+
451
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item-label) {
452
+ min-inline-size: 0;
453
+ overflow: hidden;
454
+ text-overflow: ellipsis;
455
+ }
456
+
457
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item-shortcut) {
458
+ color: var(--bf-color-text-muted);
459
+ flex: 0 0 auto;
460
+ white-space: nowrap;
461
+ }
462
+
463
+ :where(.bf-theme) :where(button.bf-top-navigation-dropdown-item:disabled) {
464
+ color: var(--bf-color-text-muted);
465
+ cursor: default;
466
+ }
467
+
468
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown > li.is-divider) {
469
+ border-top: var(--bf-border-width) solid var(--bf-color-border-default);
470
+ margin-block: calc(var(--bf-baseline) * 0.5);
471
+ }
472
+
473
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown > li + li) > :where(.bf-top-navigation-dropdown-item) {
474
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
475
+ }
476
+
477
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:hover) {
478
+ background: var(--bf-color-background-hover);
479
+ text-decoration: none;
480
+ }
481
+
482
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:focus:not(:focus-visible)) {
483
+ outline: none;
484
+ }
485
+
486
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:focus-visible) {
487
+ outline: 2px solid var(--bf-color-focus);
488
+ outline-offset: -2px;
489
+ }
490
+
491
+ :where(.bf-theme) :where(.bf-top-navigation-search-label) {
492
+ display: none;
493
+ }
494
+
495
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle)::after {
496
+ background-image: var(--bf-ui-icon-search);
497
+ background-position: center;
498
+ background-repeat: no-repeat;
499
+ background-size: 1rem 1rem;
500
+ block-size: 1rem;
501
+ content: "";
502
+ flex: 0 0 1rem;
503
+ inline-size: 1rem;
504
+ }
505
+
506
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle[aria-pressed='true'])::after {
507
+ background-image: var(--bf-ui-icon-close);
508
+ }
509
+
510
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-search-toggle) {
511
+ display: none;
512
+ }
513
+
514
+ :where(.bf-theme) :where(.bf-top-navigation-search) {
515
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
516
+ display: none;
517
+ min-inline-size: 0;
518
+ padding-block: var(--bf-top-navigation-link-padding-block);
519
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
520
+ }
521
+
522
+ :where(.bf-theme) :where(.bf-top-navigation-search[aria-hidden='false']) {
523
+ display: block;
524
+ }
525
+
526
+ :where(.bf-theme) :where(.bf-top-navigation:has(.bf-top-navigation-search[aria-hidden='false'])) :where(.bf-top-navigation-nav) > :where(.bf-top-navigation-list) {
527
+ display: none;
528
+ }
529
+
530
+ :where(.bf-theme) :where(.bf-top-navigation-search) :where(.bf-search-box) {
531
+ margin-bottom: 0;
532
+ }
533
+
534
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay) {
535
+ display: none;
536
+ }
537
+
538
+ @media (min-width: 64.75rem) {
539
+ :where(.bf-theme) :where(.bf-top-navigation-row) {
540
+ align-items: stretch;
541
+ flex-direction: row;
542
+ gap: calc(var(--bf-baseline) * 2);
543
+ }
544
+
545
+ :where(.bf-theme) :where(.bf-top-navigation-banner) {
546
+ flex: 0 0 auto;
547
+ }
548
+
549
+ :where(.bf-theme) :where(.bf-top-navigation-nav) {
550
+ align-items: stretch;
551
+ display: flex;
552
+ flex: 1 1 auto;
553
+ flex-direction: row;
554
+ justify-content: space-between;
555
+ }
556
+
557
+ :where(.bf-theme) :where(.bf-top-navigation-list) {
558
+ align-items: stretch;
559
+ flex-direction: row;
560
+ flex-wrap: wrap;
561
+ }
562
+
563
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-item) {
564
+ border-top: 0;
565
+ }
566
+
567
+ :where(.bf-theme) :where(.bf-top-navigation-link, .bf-top-navigation-search-toggle) {
568
+ inline-size: auto;
569
+ }
570
+
571
+ :where(.bf-theme) :where(.bf-top-navigation-list.is-banner-actions) {
572
+ display: none;
573
+ }
574
+
575
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-search-toggle) {
576
+ display: inline-flex;
577
+ }
578
+
579
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle) {
580
+ justify-content: flex-start;
581
+ min-inline-size: 0;
582
+ }
583
+
584
+ :where(.bf-theme) :where(.bf-top-navigation-search-label) {
585
+ display: inline;
586
+ }
587
+
588
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-selected) > :where(.bf-top-navigation-link),
589
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-link),
590
+ :where(.bf-theme) :where(.bf-top-navigation-link[aria-current='page']) {
591
+ box-shadow: inset 0 calc(var(--bf-bar-thickness) * -1) 0 var(--bf-color-text-default);
592
+ }
593
+
594
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown) {
595
+ border-top: 0;
596
+ box-shadow: 0 0 0 var(--bf-border-width) var(--bf-color-border-low-contrast), 0 calc(var(--bf-baseline) * 0.5) calc(var(--bf-baseline) * 2) rgba(0, 0, 0, 0.16);
597
+ left: 0;
598
+ min-inline-size: max(100%, 12rem);
599
+ position: absolute;
600
+ top: calc((var(--bf-top-navigation-link-padding-block) * 2) + var(--bf-body-line-height));
601
+ z-index: 5;
602
+ }
603
+
604
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown.is-right) {
605
+ left: auto;
606
+ right: 0;
607
+ }
608
+
609
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item) {
610
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
611
+ }
612
+
613
+ :where(.bf-theme) :where(.bf-top-navigation-search) {
614
+ align-items: center;
615
+ border-top: 0;
616
+ flex: 1 1 auto;
617
+ justify-content: flex-end;
618
+ padding-block: var(--bf-top-navigation-link-padding-block);
619
+ padding-inline: 0;
620
+ }
621
+
622
+ :where(.bf-theme) :where(.bf-top-navigation-search) :where(.bf-search-box) {
623
+ inline-size: min(100%, var(--bf-top-navigation-search-max-inline-size));
624
+ }
625
+
626
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay) {
627
+ background: var(--bf-color-background-overlay);
628
+ display: block;
629
+ inset: 0;
630
+ opacity: 0;
631
+ pointer-events: none;
632
+ position: fixed;
633
+ transition: opacity 160ms ease, visibility 160ms ease;
634
+ visibility: hidden;
635
+ z-index: 0;
636
+ }
637
+
638
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay[aria-hidden='false']) {
639
+ opacity: 0.5;
640
+ pointer-events: auto;
641
+ visibility: visible;
642
+ }
643
+ }
644
+
645
+ :where(.bf-theme) :where(.bf-side-navigation-item:has(> .bf-side-navigation-list [aria-current='page']), .bf-side-navigation-item:has(> .bf-side-navigation-list [aria-current='true'])) > :where(.bf-side-navigation-link, .bf-side-navigation-accordion-button) {
646
+ color: var(--bf-color-text-default);
647
+ }
648
+
649
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button)::before,
650
+ :where(.bf-theme) :where(.bf-side-navigation-expand)::before {
651
+ background-image: var(--bf-ui-icon-chevron-down);
652
+ background-position: center;
653
+ background-repeat: no-repeat;
654
+ background-size: var(--bf-disclosure-icon-inline-size) var(--bf-disclosure-icon-inline-size);
655
+ block-size: var(--bf-disclosure-icon-inline-size);
656
+ content: "";
657
+ flex: 0 0 var(--bf-disclosure-icon-inline-size);
658
+ inline-size: var(--bf-disclosure-icon-inline-size);
659
+ transition: transform 120ms ease;
660
+ }
661
+
662
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button[aria-expanded='false'], .bf-side-navigation-expand[aria-expanded='false'])::before {
663
+ transform: rotate(-90deg);
664
+ }
665
+
666
+ :where(.bf-theme) :where(.bf-side-navigation-expand) {
667
+ ${bodyTypeStyles} background: transparent;
668
+ border: 0;
669
+ color: inherit;
670
+ cursor: pointer;
671
+ inset-block-start: 0;
672
+ margin: 0;
673
+ min-block-size: var(--bf-control-box-size-compact);
674
+ padding-inline: calc(var(--bf-baseline) * 0.5);
675
+ position: absolute;
676
+ right: 0;
677
+ }
678
+
679
+ :where(.bf-theme) :where(.bf-side-navigation-list[aria-expanded='false']) {
680
+ block-size: 0;
681
+ margin-bottom: 0;
682
+ opacity: 0;
683
+ overflow: hidden;
684
+ padding-bottom: 0;
685
+ transform: translate3d(0, calc(var(--bf-baseline) * -0.5), 0);
686
+ visibility: hidden;
687
+ }
688
+
689
+ :where(.bf-theme) :where(.bf-side-navigation-list[aria-expanded='true']) {
690
+ block-size: auto;
691
+ opacity: 1;
692
+ transform: translate3d(0, 0, 0);
693
+ visibility: visible;
694
+ }
695
+
696
+ :where(.bf-theme) :where(.bf-side-navigation-label) {
697
+ display: block;
698
+ min-inline-size: 0;
699
+ overflow: hidden;
700
+ text-overflow: ellipsis;
701
+ }
702
+
703
+ :where(.bf-theme) :where(.bf-side-navigation-status) {
704
+ align-items: center;
705
+ display: inline-flex;
706
+ margin-inline-start: auto;
707
+ }
708
+
709
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-icon) {
710
+ align-items: center;
711
+ display: inline-flex;
712
+ flex: 0 0 1rem;
713
+ inline-size: 1rem;
714
+ justify-content: center;
715
+ transform: translateY(var(--bf-side-navigation-icon-optical-offset-block));
716
+ }
717
+
718
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-icon) {
719
+ transform: none;
720
+ }
721
+
722
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
723
+ align-items: baseline;
724
+ column-gap: var(--bf-side-navigation-icon-gap);
725
+ }
726
+
727
+ /* Icon-navigation headings share the label edge, not the icon edge. This
728
+ keeps section names aligned with both the menu copy and a tagged wordmark. */
729
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked) {
730
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + 1rem + var(--bf-side-navigation-icon-gap));
731
+ }
732
+
733
+ :where(.bf-theme) :where(.bf-side-navigation-icon) > svg {
734
+ block-size: 1rem;
735
+ display: block;
736
+ inline-size: 1rem;
737
+ }
738
+
739
+ @media (min-width: 64.75rem) {
740
+ :where(.bf-theme) :where(.bf-side-navigation-toggle),
741
+ :where(.bf-theme) :where(.bf-side-navigation-drawer-header),
742
+ :where(.bf-theme) :where(.bf-side-navigation-overlay) {
743
+ display: none;
744
+ }
745
+
746
+ :where(.bf-theme) :where(.bf-side-navigation-drawer),
747
+ :where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html):where(.is-drawer-expanded) :where(.bf-side-navigation-drawer) {
748
+ box-shadow: none;
749
+ display: block;
750
+ max-inline-size: none;
751
+ overflow: visible;
752
+ position: static;
753
+ transform: translateX(0);
754
+ }
755
+
756
+ :where(.bf-theme) :where(.bf-side-navigation.is-sticky) {
757
+ max-block-size: 100dvh;
758
+ overflow-y: auto;
759
+ position: sticky;
760
+ top: 0;
761
+ }
762
+ }`;
763
+ }