baseline-foundry 0.1.3

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 (145) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +588 -0
  3. package/config/experiments/ibm-plex-engine-smoke.json +115 -0
  4. package/config/experiments/ubuntu-engine-smoke.json +115 -0
  5. package/config/foundation-theme.json +117 -0
  6. package/config/tiers/app.json +120 -0
  7. package/config/tiers/documentation.json +120 -0
  8. package/config/tiers/editorial.json +120 -0
  9. package/config/tiers/os.json +120 -0
  10. package/dist/accordion.d.ts +5 -0
  11. package/dist/accordion.js +32 -0
  12. package/dist/application-layout.d.ts +4 -0
  13. package/dist/application-layout.js +181 -0
  14. package/dist/baseline-grid-overlay.d.ts +5 -0
  15. package/dist/baseline-grid-overlay.js +50 -0
  16. package/dist/baseline-grid-theme.d.ts +3 -0
  17. package/dist/baseline-grid-theme.js +3 -0
  18. package/dist/baseline-grid.d.ts +7 -0
  19. package/dist/baseline-grid.js +35 -0
  20. package/dist/build.d.ts +21 -0
  21. package/dist/build.js +440 -0
  22. package/dist/code-snippet.d.ts +6 -0
  23. package/dist/code-snippet.js +95 -0
  24. package/dist/contextual-menu.d.ts +4 -0
  25. package/dist/contextual-menu.js +156 -0
  26. package/dist/css-app-tier.d.ts +1 -0
  27. package/dist/css-app-tier.js +77 -0
  28. package/dist/css-components/article-pagination.d.ts +13 -0
  29. package/dist/css-components/article-pagination.js +151 -0
  30. package/dist/css-components/button-actions.d.ts +7 -0
  31. package/dist/css-components/button-actions.js +165 -0
  32. package/dist/css-components/cards-options.d.ts +6 -0
  33. package/dist/css-components/cards-options.js +180 -0
  34. package/dist/css-components/chip-badge-status.d.ts +10 -0
  35. package/dist/css-components/chip-badge-status.js +162 -0
  36. package/dist/css-components/content-card.d.ts +25 -0
  37. package/dist/css-components/content-card.js +517 -0
  38. package/dist/css-components/control-row.d.ts +2 -0
  39. package/dist/css-components/control-row.js +18 -0
  40. package/dist/css-components/cta-figure-aspect.d.ts +1 -0
  41. package/dist/css-components/cta-figure-aspect.js +123 -0
  42. package/dist/css-components/document-navigation.d.ts +13 -0
  43. package/dist/css-components/document-navigation.js +400 -0
  44. package/dist/css-components/editorial-content.d.ts +6 -0
  45. package/dist/css-components/editorial-content.js +52 -0
  46. package/dist/css-components/icon.d.ts +1 -0
  47. package/dist/css-components/icon.js +75 -0
  48. package/dist/css-components/interactive-feedback.d.ts +2 -0
  49. package/dist/css-components/interactive-feedback.js +230 -0
  50. package/dist/css-components/interactive-tables.d.ts +7 -0
  51. package/dist/css-components/interactive-tables.js +164 -0
  52. package/dist/css-components/linked-logo-site-layout.d.ts +21 -0
  53. package/dist/css-components/linked-logo-site-layout.js +214 -0
  54. package/dist/css-components/list-tree.d.ts +5 -0
  55. package/dist/css-components/list-tree.js +98 -0
  56. package/dist/css-components/list.d.ts +3 -0
  57. package/dist/css-components/list.js +119 -0
  58. package/dist/css-components/logo-media.d.ts +16 -0
  59. package/dist/css-components/logo-media.js +219 -0
  60. package/dist/css-components/navigation-layout.d.ts +5 -0
  61. package/dist/css-components/navigation-layout.js +151 -0
  62. package/dist/css-components/panel.d.ts +6 -0
  63. package/dist/css-components/panel.js +148 -0
  64. package/dist/css-components/search-box-and-filter.d.ts +9 -0
  65. package/dist/css-components/search-box-and-filter.js +267 -0
  66. package/dist/css-components/sites-editorial-ports.d.ts +19 -0
  67. package/dist/css-components/sites-editorial-ports.js +264 -0
  68. package/dist/css-components/sites-foundation.d.ts +17 -0
  69. package/dist/css-components/sites-foundation.js +173 -0
  70. package/dist/css-components/sites-rich-lists.d.ts +18 -0
  71. package/dist/css-components/sites-rich-lists.js +364 -0
  72. package/dist/css-components/static-content-ports.d.ts +14 -0
  73. package/dist/css-components/static-content-ports.js +206 -0
  74. package/dist/css-components/tab-section.d.ts +19 -0
  75. package/dist/css-components/tab-section.js +103 -0
  76. package/dist/css-components/table.d.ts +7 -0
  77. package/dist/css-components/table.js +79 -0
  78. package/dist/css-components/tabs-choice-breadcrumbs.d.ts +9 -0
  79. package/dist/css-components/tabs-choice-breadcrumbs.js +307 -0
  80. package/dist/css-components/tiered-list-equal-height-row.d.ts +1 -0
  81. package/dist/css-components/tiered-list-equal-height-row.js +286 -0
  82. package/dist/css-components.d.ts +2 -0
  83. package/dist/css-components.js +2701 -0
  84. package/dist/css-grid.d.ts +1 -0
  85. package/dist/css-grid.js +179 -0
  86. package/dist/css.d.ts +6 -0
  87. package/dist/css.js +431 -0
  88. package/dist/experiments/ibm-plex-engine-smoke/styles.css +8969 -0
  89. package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +604 -0
  90. package/dist/experiments/ibm-plex-engine-smoke/tokens.json +217 -0
  91. package/dist/in-page-navigation.d.ts +7 -0
  92. package/dist/in-page-navigation.js +136 -0
  93. package/dist/index.d.ts +37 -0
  94. package/dist/index.js +18 -0
  95. package/dist/interactive-feedback.d.ts +14 -0
  96. package/dist/interactive-feedback.js +96 -0
  97. package/dist/interactive-tables.d.ts +28 -0
  98. package/dist/interactive-tables.js +184 -0
  99. package/dist/list-tree.d.ts +4 -0
  100. package/dist/list-tree.js +44 -0
  101. package/dist/panel-drawer.d.ts +4 -0
  102. package/dist/panel-drawer.js +171 -0
  103. package/dist/presets/app-tier/styles.css +9459 -0
  104. package/dist/presets/app-tier/surfaces.json +1225 -0
  105. package/dist/presets/app-tier/tokens.json +221 -0
  106. package/dist/presets/prose/styles.css +9442 -0
  107. package/dist/presets/prose/surfaces.json +1225 -0
  108. package/dist/presets/prose/tokens.json +221 -0
  109. package/dist/presets.d.ts +6 -0
  110. package/dist/presets.js +27 -0
  111. package/dist/range-controls.d.ts +9 -0
  112. package/dist/range-controls.js +73 -0
  113. package/dist/resizable-aside.d.ts +4 -0
  114. package/dist/resizable-aside.js +328 -0
  115. package/dist/side-navigation.d.ts +4 -0
  116. package/dist/side-navigation.js +219 -0
  117. package/dist/styles.css +9442 -0
  118. package/dist/surfaces.json +1225 -0
  119. package/dist/tabs.d.ts +4 -0
  120. package/dist/tabs.js +88 -0
  121. package/dist/tier-registry.d.ts +10 -0
  122. package/dist/tier-registry.js +25 -0
  123. package/dist/tiers/app/styles.css +9459 -0
  124. package/dist/tiers/app/surfaces.json +1225 -0
  125. package/dist/tiers/app/tokens.json +221 -0
  126. package/dist/tiers/documentation/styles.css +9442 -0
  127. package/dist/tiers/documentation/surfaces.json +1225 -0
  128. package/dist/tiers/documentation/tokens.json +221 -0
  129. package/dist/tiers/editorial/styles.css +9442 -0
  130. package/dist/tiers/editorial/surfaces.json +1225 -0
  131. package/dist/tiers/editorial/tokens.json +221 -0
  132. package/dist/tiers/os/styles.css +9442 -0
  133. package/dist/tiers/os/surfaces.json +1225 -0
  134. package/dist/tiers/os/tokens.json +221 -0
  135. package/dist/tokens.json +221 -0
  136. package/dist/tooltip.d.ts +4 -0
  137. package/dist/tooltip.js +70 -0
  138. package/dist/top-navigation.d.ts +4 -0
  139. package/dist/top-navigation.js +354 -0
  140. package/dist/types.d.ts +155 -0
  141. package/dist/types.js +1 -0
  142. package/dist/vanilla-theme-colors.d.ts +5 -0
  143. package/dist/vanilla-theme-colors.js +208 -0
  144. package/docs/publishing.md +66 -0
  145. package/package.json +108 -0
@@ -0,0 +1,2701 @@
1
+ import { buttonActionsCss } from "./css-components/button-actions.js";
2
+ import { articlePaginationCss } from "./css-components/article-pagination.js";
3
+ import { cardsOptionsCss } from "./css-components/cards-options.js";
4
+ import { chipBadgeStatusCss } from "./css-components/chip-badge-status.js";
5
+ import { ctaFigureAspectCss } from "./css-components/cta-figure-aspect.js";
6
+ import { controlRowCss } from "./css-components/control-row.js";
7
+ import { contentCardCss } from "./css-components/content-card.js";
8
+ import { documentNavigationCss } from "./css-components/document-navigation.js";
9
+ import { editorialContentCss } from "./css-components/editorial-content.js";
10
+ import { iconCss } from "./css-components/icon.js";
11
+ import { interactiveFeedbackCss } from "./css-components/interactive-feedback.js";
12
+ import { interactiveTablesCss } from "./css-components/interactive-tables.js";
13
+ import { listCss } from "./css-components/list.js";
14
+ import { listTreeCss } from "./css-components/list-tree.js";
15
+ import { linkedLogoSiteLayoutCss } from "./css-components/linked-logo-site-layout.js";
16
+ import { logoMediaCss } from "./css-components/logo-media.js";
17
+ import { navigationLayoutCss } from "./css-components/navigation-layout.js";
18
+ import { panelCss } from "./css-components/panel.js";
19
+ import { searchBoxAndFilterCss } from "./css-components/search-box-and-filter.js";
20
+ import { sitesFoundationCss } from "./css-components/sites-foundation.js";
21
+ import { sitesEditorialPortsCss } from "./css-components/sites-editorial-ports.js";
22
+ import { sitesRichListsCss } from "./css-components/sites-rich-lists.js";
23
+ import { staticContentPortsCss } from "./css-components/static-content-ports.js";
24
+ import { tableCss } from "./css-components/table.js";
25
+ import { tabSectionCss } from "./css-components/tab-section.js";
26
+ import { tabsChoiceBreadcrumbsCss } from "./css-components/tabs-choice-breadcrumbs.js";
27
+ import { tieredListEqualHeightRowCss } from "./css-components/tiered-list-equal-height-row.js";
28
+ import { foundryComponentColorVars } from "./vanilla-theme-colors.js";
29
+ function parseRemValue(rem) {
30
+ return Number.parseFloat(rem.replace("rem", ""));
31
+ }
32
+ function roleFontFamilyVar(roleName, fallback) {
33
+ return fallback ? `var(--bf-${roleName}-font-family, ${fallback})` : `var(--bf-${roleName}-font-family)`;
34
+ }
35
+ function roleFontSizeVar(roleName, fallback) {
36
+ return fallback ? `var(--bf-${roleName}-font-size, ${fallback})` : `var(--bf-${roleName}-font-size)`;
37
+ }
38
+ function roleFontStyleVar(roleName, fallback) {
39
+ return fallback ? `var(--bf-${roleName}-font-style, ${fallback})` : `var(--bf-${roleName}-font-style)`;
40
+ }
41
+ function roleFontWeightVar(roleName, fallback) {
42
+ return fallback !== undefined ? `var(--bf-${roleName}-font-weight, ${fallback})` : `var(--bf-${roleName}-font-weight)`;
43
+ }
44
+ function typeStyles(token, options = {}) {
45
+ const roleName = token.identifier;
46
+ const fontVariantCaps = options.includeCase !== false && token.fontVariantCaps
47
+ ? ` font-variant-caps: ${token.fontVariantCaps};\n`
48
+ : "";
49
+ const letterSpacing = options.includeCase !== false && token.letterSpacing
50
+ ? ` letter-spacing: ${token.letterSpacing};\n`
51
+ : "";
52
+ const textTransform = options.includeCase !== false && token.textTransform
53
+ ? ` text-transform: ${token.textTransform};\n`
54
+ : "";
55
+ if (!roleName) {
56
+ return ` font-family: ${token.fontStack};\n font-size: ${token.fontSize};\n font-style: ${token.fontStyle ?? "normal"};\n font-weight: ${options.fontWeight ?? token.fontWeight ?? 400};\n${fontVariantCaps}${letterSpacing}${textTransform} line-height: ${token.lineHeight};\n`;
57
+ }
58
+ return ` font-family: ${roleFontFamilyVar(roleName, token.fontStack)};\n font-size: ${roleFontSizeVar(roleName, token.fontSize)};\n font-style: ${roleFontStyleVar(roleName, token.fontStyle ?? "normal")};\n font-weight: ${options.fontWeight ?? roleFontWeightVar(roleName, token.fontWeight ?? 400)};\n${fontVariantCaps}${letterSpacing}${textTransform} line-height: ${roleLineHeightVar(roleName, token.lineHeight)};\n`;
59
+ }
60
+ function roleLineHeightVar(roleName, fallback) {
61
+ return fallback ? `var(--bf-${roleName}-line-height, ${fallback})` : `var(--bf-${roleName}-line-height)`;
62
+ }
63
+ function roleSelectedStartNudgeVar(roleName, fallback) {
64
+ return fallback ? `var(--bf-${roleName}-nudge-start, ${fallback})` : `var(--bf-${roleName}-nudge-start)`;
65
+ }
66
+ function roleSelectedEndNudgeVar(roleName, fallback) {
67
+ return fallback ? `var(--bf-${roleName}-nudge-end, ${fallback})` : `var(--bf-${roleName}-nudge-end)`;
68
+ }
69
+ function controlPadding(blockPaddingVar, borderWidthVar = "var(--bf-border-width)") {
70
+ return ` padding-block: max(0rem, calc(${blockPaddingVar} - ${borderWidthVar}));\n`;
71
+ }
72
+ function controlMarginBottomExpression(lineHeightVar, blockPaddingVar, spaceAfter) {
73
+ return `calc(${spaceAfter} + mod(calc(var(--bf-baseline) - mod(calc(${lineHeightVar} + (${blockPaddingVar} * 2)), var(--bf-baseline))), var(--bf-baseline)))`;
74
+ }
75
+ function componentAlignmentVars(components) {
76
+ return ` --bf-border-width: ${components.borderWidth};\n --bf-bar-thickness: ${components.barThickness};\n --bf-radius: ${components.radius};\n --bf-control-block-padding: ${components.controlBlockPadding};\n --bf-control-block-padding-compact: ${components.controlCompactBlockPadding};\n --bf-control-box-size: calc(var(--bf-body-line-height) + (var(--bf-control-block-padding) * 2));\n --bf-control-box-size-compact: calc(var(--bf-body-line-height) + (var(--bf-control-block-padding-compact) * 2));\n --bf-control-inline-padding: ${components.controlInlinePadding};\n --bf-control-inline-padding-action: ${components.controlInlinePaddingAction};\n --bf-control-inline-padding-field: ${components.controlInlinePaddingField};\n --bf-control-visual-size: ${components.controlVisualSize};\n --bf-field-gap: ${components.fieldGap};\n --bf-panel-padding-inline: ${components.panelPaddingInline};\n --bf-panel-padding-block: ${components.panelPaddingBlock};\n --bf-accordion-indent: ${components.accordionIndent};\n`;
77
+ }
78
+ function alignedVisualStart(lineHeightVar, visualSize, startVar, offset = "0rem") {
79
+ if (offset === "0rem") {
80
+ return `calc(${startVar} + ((${lineHeightVar} - ${visualSize}) / 2))`;
81
+ }
82
+ return `calc(${startVar} + ((${lineHeightVar} - ${visualSize}) / 2) + ${offset})`;
83
+ }
84
+ export function componentsCss(tokens, themeSurfaces) {
85
+ const body = tokens.roles.body;
86
+ const h4 = tokens.roles.h4 ?? body;
87
+ const h5 = tokens.roles.h5 ?? body;
88
+ const h6 = tokens.roles.h6 ?? body;
89
+ const baselineUnit = tokens.baselineUnit;
90
+ const components = tokens.components;
91
+ const controlBlockPaddingVar = "var(--bf-control-block-padding)";
92
+ const controlCompactBlockPaddingVar = "var(--bf-control-block-padding-compact)";
93
+ const inputBlockPaddingVar = "var(--bf-input-block-padding)";
94
+ const buttonBlockPaddingVar = "var(--bf-button-block-padding)";
95
+ const bodyLineHeight = roleLineHeightVar("body", body.lineHeight);
96
+ const inputMarginBottom = controlMarginBottomExpression(bodyLineHeight, inputBlockPaddingVar, "0rem");
97
+ const buttonMarginBottom = controlMarginBottomExpression(bodyLineHeight, buttonBlockPaddingVar, "0rem");
98
+ const bodySelectedStartNudge = roleSelectedStartNudgeVar("body", body.nudgeTop);
99
+ const bodySelectedEndNudge = roleSelectedEndNudgeVar("body");
100
+ const h4LineHeight = roleLineHeightVar("h4", h4.lineHeight);
101
+ const h5LineHeight = roleLineHeightVar("h5", h5.lineHeight);
102
+ const h5SelectedStartNudge = roleSelectedStartNudgeVar("h5", h5.nudgeTop);
103
+ const h5SelectedEndNudge = roleSelectedEndNudgeVar("h5");
104
+ const h6LineHeight = roleLineHeightVar("h6", h6.lineHeight);
105
+ const bodyTypeStyles = typeStyles(body, { includeCase: false });
106
+ const h6TypeStyles = typeStyles(h6, { includeCase: false });
107
+ const buttonPadding = controlPadding(buttonBlockPaddingVar);
108
+ return `:where(.bf-theme) {
109
+ ${componentAlignmentVars(components)} /* Action surfaces keep comfortable command targets; field surfaces can tighten independently. */
110
+ --bf-disclosure-gap: 1rem;
111
+ --bf-disclosure-icon-inline-size: 1rem;
112
+ --bf-input-block-padding: ${bodySelectedStartNudge};
113
+ --bf-button-block-padding: ${bodySelectedStartNudge};
114
+ --bf-slider-track-size: calc(var(--bf-baseline) * 0.25);
115
+ --bf-slider-row-block-size: max(var(--bf-control-box-size-compact), calc(${bodySelectedStartNudge} + ${bodyLineHeight} + ${bodySelectedEndNudge}));
116
+ --bf-slider-track-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-slider-track-size)", bodySelectedStartNudge)};
117
+ --bf-table-row-border-size: var(--bf-border-width);
118
+ --bf-table-row-padding: ${bodySelectedStartNudge};
119
+ --bf-table-row-content-size: calc(${bodyLineHeight} + (var(--bf-table-row-padding) * 2) + var(--bf-table-row-border-size));
120
+ --bf-table-row-block-size: calc(var(--bf-table-row-content-size) + mod(calc(var(--bf-baseline) - mod(var(--bf-table-row-content-size), var(--bf-baseline))), var(--bf-baseline)));
121
+ --bf-table-row-line-height: calc(var(--bf-table-row-block-size) - (var(--bf-table-row-padding) * 2) - var(--bf-table-row-border-size));
122
+ --bf-switch-row-block-size: calc(${bodySelectedStartNudge} + ${bodyLineHeight} + ${bodySelectedEndNudge});
123
+ --bf-switch-track-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-control-visual-size)", bodySelectedStartNudge)};
124
+ --bf-tick-row-block-size: max(var(--bf-control-box-size-compact), calc(${bodySelectedStartNudge} + ${bodyLineHeight} + ${bodySelectedEndNudge}));
125
+ --bf-tick-box-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-control-visual-size)", bodySelectedStartNudge)};
126
+ --bf-tick-label-offset: calc(var(--bf-control-visual-size) + var(--bf-control-inline-padding-field));
127
+ --bf-radio-dot-size: calc(var(--bf-control-visual-size) * 0.375);
128
+ --bf-app-drawer-width-icon: 2rem;
129
+ --bf-app-drawer-width-small: 15rem;
130
+ --bf-app-drawer-width-small-max: 20rem;
131
+ --bf-app-drawer-width-medium: 29.0625rem;
132
+ --bf-app-drawer-width-medium-max: 40rem;
133
+ --bf-app-drawer-width-large: min(100vw, max(40rem, 50vw));
134
+ --bf-app-aside-width: var(--bf-app-drawer-width-medium);
135
+ --bf-app-aside-width-min: var(--bf-app-drawer-width-small);
136
+ --bf-app-aside-width-max: var(--bf-app-drawer-width-medium-max);
137
+ --bf-app-navigation-width: 15rem;
138
+ --bf-app-navigation-width-collapsed: 3rem;
139
+ --bf-side-navigation-icon-optical-offset-block: 0.1875rem;
140
+ --bf-side-navigation-icon-gap: 0.625rem;
141
+ --bf-navigation-bar-min-block-size: calc(var(--bf-baseline) * 6);
142
+ --bf-authoring-accent: #f6b73c;
143
+ --bf-authoring-accent-hover: #e0a030;
144
+ --bf-authoring-accent-line: rgba(246, 183, 60, 0.9);
145
+ --bf-authoring-accent-strong: rgba(246, 183, 60, 0.95);
146
+ --bf-authoring-accent-outline: rgba(246, 183, 60, 0.4);
147
+ --bf-authoring-accent-outline-strong: rgba(246, 183, 60, 0.8);
148
+ --bf-authoring-accent-shadow: rgba(246, 183, 60, 0.22);
149
+ --bf-authoring-accent-focus-ring: rgba(246, 183, 60, 0.55);
150
+ --bf-application-resize-handle-active: var(--bf-authoring-accent-strong);
151
+ --bf-application-resize-handle-focus-ring: var(--bf-authoring-accent-focus-ring);
152
+ --bf-top-navigation-link-padding-inline: var(--bf-control-inline-padding-action);
153
+ --bf-top-navigation-end-slot-inline-size: calc(1rem + var(--bf-control-inline-padding-field));
154
+ --bf-top-navigation-search-toggle-inline-size: calc(1rem + (var(--bf-control-inline-padding-field) * 2));
155
+ --bf-top-navigation-link-padding-block: max(var(--bf-body-nudge-start), calc(var(--bf-baseline) * 1.5));
156
+ --bf-top-navigation-search-max-inline-size: 20rem;
157
+ --bf-top-navigation-logo-tag-inline-size: 1.375rem;
158
+ --bf-top-navigation-logo-tag-block-size: 2.375rem;
159
+ --bf-top-navigation-logo-icon-size: 1rem;
160
+ --bf-top-navigation-logo-tag-gap: 0.25rem;
161
+ --bf-top-navigation-logo-icon-bottom-offset: 0.375rem;
162
+ --bf-top-navigation-logo-icon-optical-offset-inline: -0.0125rem;
163
+ --bf-navigation-brand-title-optical-offset-block: 0rem;
164
+ --bf-icon-size-default: 1rem;
165
+ --bf-icon-size-medium: 2.5rem;
166
+ --bf-icon-size-large: 4rem;
167
+ --bf-icon-size-x-large: 4.5rem;
168
+ --bf-icon-size-xx-large: 6rem;
169
+ --bf-leading-icon-size: calc(var(--bf-baseline) * 2);
170
+ --bf-leading-icon-gap: calc(var(--bf-baseline) * 1);
171
+ --bf-leading-icon-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-leading-icon-size)", bodySelectedStartNudge)};
172
+ --bf-ui-chip-padding-inline: calc(${bodyLineHeight} * 0.4);
173
+ --bf-ui-chip-padding-block: max(0rem, calc((var(--bf-control-inline-padding-action) * 0.25) - var(--bf-border-width)));
174
+ --bf-ui-chip-block-size: calc(${bodyLineHeight} + (var(--bf-ui-chip-padding-block) * 2) + (var(--bf-border-width) * 2));
175
+ --bf-ui-badge-padding-inline: calc(${bodyLineHeight} * 0.25);
176
+ --bf-ui-badge-overhang: calc(var(--bf-ui-badge-padding-inline) * -0.75);
177
+ --bf-grid-max-inline-size: var(--bf-content-max-width);
178
+ --bf-application-drawer-width-icon: var(--bf-app-drawer-width-icon);
179
+ --bf-application-drawer-width-small: var(--bf-app-drawer-width-small);
180
+ --bf-application-drawer-width-small-max: var(--bf-app-drawer-width-small-max);
181
+ --bf-application-drawer-width-medium: var(--bf-app-drawer-width-medium);
182
+ --bf-application-drawer-width-medium-max: var(--bf-app-drawer-width-medium-max);
183
+ --bf-application-drawer-width-large: var(--bf-app-drawer-width-large);
184
+ --bf-application-aside-width: var(--bf-app-aside-width);
185
+ --bf-application-aside-width-min: var(--bf-app-aside-width-min);
186
+ --bf-application-aside-width-max: var(--bf-app-aside-width-max);
187
+ --bf-application-navigation-width: var(--bf-app-navigation-width);
188
+ --bf-application-navigation-width-collapsed: var(--bf-app-navigation-width-collapsed);
189
+ ${foundryComponentColorVars("light")}
190
+ --bf-ui-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 6.25 8 10l3.75-3.75'/%3E%3C/svg%3E");
191
+ --bf-ui-icon-close: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.25 4.25 11.75 11.75M11.75 4.25 4.25 11.75' fill='none' stroke='%23111' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
192
+ --bf-ui-icon-error-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1.52588e-05C12.4183 1.52588e-05 16 3.58174 16 8.00002C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8.00002C0 3.58174 3.58172 1.52588e-05 8 1.52588e-05ZM10.2821 4.63808L11.3427 5.69874L9.05007 7.99008L11.3427 10.2821L10.2821 11.3427L7.99007 9.05008L5.69873 11.3427L4.63807 10.2821L6.92907 7.99008L4.63807 5.69874L5.69873 4.63808L7.99007 6.92908L10.2821 4.63808ZM1.5 8.00002C1.5 4.41016 4.41015 1.50002 8 1.50002C11.5899 1.50002 14.5 4.41016 14.5 8.00002C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00002Z' fill='%23111' fill-rule='evenodd'/%3E%3C/svg%3E");
193
+ --bf-ui-icon-search: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.964 1a5.964 5.964 0 014.709 9.623l4.303 4.305-1.06 1.06-4.306-4.305A5.964 5.964 0 116.963 1zm0 1.5a4.464 4.464 0 100 8.927 4.464 4.464 0 000-8.927z' fill='%23111' fill-rule='nonzero'/%3E%3C/svg%3E");
194
+ --bf-ui-icon-success-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0a8 8 0 110 16A8 8 0 018 0zm0 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zm2.814 2.45l1.203.897-5.537 7.43-3.485-3.694 1.09-1.03 2.259 2.394 4.47-5.997z' fill='%23111' fill-rule='nonzero'/%3E%3C/svg%3E");
195
+ color: var(--bf-color-text-default);
196
+ }
197
+
198
+ /* DEMO ONLY — Cap-derived component nudges are unreliable (ascender ≠ cap height). */
199
+ :where(.bf-theme.bf-engine-cap) {
200
+ --bf-body-nudge-start: calc(var(--bf-baseline) - mod(calc((${bodyLineHeight} + 1cap) / 2), var(--bf-baseline)));
201
+ --bf-body-nudge-end: calc(var(--bf-baseline) - var(--bf-body-nudge-start));
202
+ --bf-h4-nudge-start: calc(var(--bf-baseline) - mod(calc((${h4LineHeight} + 1cap) / 2), var(--bf-baseline)));
203
+ --bf-h4-nudge-end: calc(var(--bf-baseline) - var(--bf-h4-nudge-start));
204
+ --bf-h5-nudge-start: calc(var(--bf-baseline) - mod(calc((${h5LineHeight} + 1cap) / 2), var(--bf-baseline)));
205
+ --bf-h5-nudge-end: calc(var(--bf-baseline) - var(--bf-h5-nudge-start));
206
+ --bf-h6-nudge-start: calc(var(--bf-baseline) - mod(calc((${h6LineHeight} + 1cap) / 2), var(--bf-baseline)));
207
+ --bf-h6-nudge-end: calc(var(--bf-baseline) - var(--bf-h6-nudge-start));
208
+ }
209
+
210
+ :where(.bf-theme.bf-engine-cap) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select) {
211
+ margin-bottom: ${inputMarginBottom};
212
+ }
213
+
214
+ ${(themeSurfaces ?? []).map(surface => {
215
+ if (!surface.className) {
216
+ return "";
217
+ }
218
+ const surfaceTokens = surface.tokens;
219
+ const bodySurface = surfaceTokens.roles.body;
220
+ const surfaceComponents = surfaceTokens.components;
221
+ const inputBlockPadding = bodySurface && parseRemValue(bodySurface.nudgeTop) > 0
222
+ ? bodySurface.nudgeTop
223
+ : surfaceComponents.controlBlockPadding;
224
+ const tableRowPadding = bodySurface && parseRemValue(bodySurface.nudgeTop) > 0
225
+ ? bodySurface.nudgeTop
226
+ : surfaceComponents.controlCompactBlockPadding;
227
+ return `:where(.bf-theme.${surface.className}) {\n --bf-control-baseline-reserve: 0rem;\n --bf-input-block-padding: ${inputBlockPadding};\n --bf-button-block-padding: ${inputBlockPadding};\n --bf-table-row-padding: ${tableRowPadding};\n${componentAlignmentVars(surfaceComponents)}\n}\n`;
228
+ }).join("\n")}
229
+
230
+ :where(.bf-theme.is-dark),
231
+ :where(.bf-theme.is-dark) {
232
+ ${foundryComponentColorVars("dark")}
233
+ --bf-ui-icon-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.25 6.25 8 10l3.75-3.75'/%3E%3C/svg%3E");
234
+ --bf-ui-icon-close: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4.25 4.25 11.75 11.75M11.75 4.25 4.25 11.75' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
235
+ --bf-ui-icon-error-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 1.52588e-05C12.4183 1.52588e-05 16 3.58174 16 8.00002C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8.00002C0 3.58174 3.58172 1.52588e-05 8 1.52588e-05ZM10.2821 4.63808L11.3427 5.69874L9.05007 7.99008L11.3427 10.2821L10.2821 11.3427L7.99007 9.05008L5.69873 11.3427L4.63807 10.2821L6.92907 7.99008L4.63807 5.69874L5.69873 4.63808L7.99007 6.92908L10.2821 4.63808ZM1.5 8.00002C1.5 4.41016 4.41015 1.50002 8 1.50002C11.5899 1.50002 14.5 4.41016 14.5 8.00002C14.5 11.5899 11.5899 14.5 8 14.5C4.41015 14.5 1.5 11.5899 1.5 8.00002Z' fill='%23fff' fill-rule='evenodd'/%3E%3C/svg%3E");
236
+ --bf-ui-icon-search: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.964 1a5.964 5.964 0 014.709 9.623l4.303 4.305-1.06 1.06-4.306-4.305A5.964 5.964 0 116.963 1zm0 1.5a4.464 4.464 0 100 8.927 4.464 4.464 0 000-8.927z' fill='%23fff' fill-rule='nonzero'/%3E%3C/svg%3E");
237
+ --bf-ui-icon-success-grey: url("data:image/svg+xml,%3Csvg width='16' height='16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8 0a8 8 0 110 16A8 8 0 018 0zm0 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zm2.814 2.45l1.203.897-5.537 7.43-3.485-3.694 1.09-1.03 2.259 2.394 4.47-5.997z' fill='%23fff' fill-rule='nonzero'/%3E%3C/svg%3E");
238
+ color-scheme: dark;
239
+ }
240
+
241
+ :where(.bf-theme.is-light) {
242
+ color-scheme: light;
243
+ }
244
+
245
+ :where(.bf-theme) :where(.bf-tabs-link, .bf-button, .bf-button.is-base, .bf-accordion-tab) {
246
+ margin: 0;
247
+ }
248
+
249
+ .bf-theme button {
250
+ font: inherit;
251
+ }
252
+
253
+
254
+
255
+ :where(.bf-theme) :where(.bf-form-label) {
256
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
257
+ display: block;
258
+ margin: 0 0 var(--bf-body-margin-bottom);
259
+ overflow-wrap: anywhere;
260
+ padding-block-end: 0;
261
+ padding-block-start: ${bodySelectedStartNudge};
262
+ text-align: start;
263
+ }
264
+
265
+ :where(.bf-theme) :where(.bf-form-help) {
266
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-muted);
267
+ display: block;
268
+ margin: 0 0 var(--bf-body-margin-bottom);
269
+ max-inline-size: 42ch;
270
+ overflow-wrap: anywhere;
271
+ padding-block-end: 0;
272
+ padding-block-start: ${bodySelectedStartNudge};
273
+ }
274
+
275
+ :where(.bf-theme) :where(.bf-form-help.is-tight) {
276
+ margin-top: calc(var(--bf-baseline) * -1);
277
+ }
278
+
279
+ :where(.bf-theme) :where(.bf-field) {
280
+ display: grid;
281
+ gap: var(--bf-field-gap);
282
+ margin: 0;
283
+ min-inline-size: 0;
284
+ }
285
+
286
+ :where(.bf-theme) :where(.bf-control) {
287
+ display: grid;
288
+ gap: var(--bf-field-gap);
289
+ min-inline-size: 0;
290
+ }
291
+
292
+ :where(.bf-theme) :where(.bf-field.is-range) {
293
+ align-items: start;
294
+ column-gap: calc(var(--bf-baseline) * 2);
295
+ display: grid;
296
+ grid-template-columns: max-content minmax(0, 1fr);
297
+ row-gap: var(--bf-field-gap);
298
+ }
299
+
300
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-form-label) {
301
+ grid-column: 1;
302
+ }
303
+
304
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-control) {
305
+ grid-column: 2;
306
+ min-inline-size: 0;
307
+ }
308
+
309
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-form-help) {
310
+ grid-column: 2;
311
+ }
312
+
313
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) {
314
+ grid-template-columns: minmax(0, 1fr);
315
+ }
316
+
317
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) > :where(.bf-control) {
318
+ min-inline-size: 0;
319
+ }
320
+
321
+ :where(.bf-theme) :where(.bf-field.is-checkbox) {
322
+ gap: 0;
323
+ }
324
+
325
+ :where(.bf-theme) :where(.bf-field.is-checkbox) :where(.bf-control) {
326
+ gap: 0;
327
+ }
328
+
329
+ :where(.bf-theme) :where(fieldset, .bf-fieldset) {
330
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
331
+ margin: 0;
332
+ min-inline-size: 0;
333
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
334
+ padding-inline: var(--bf-panel-padding-inline);
335
+ padding-block-start: var(--bf-panel-padding-block);
336
+ }
337
+
338
+ :where(.bf-theme) :where(fieldset, .bf-fieldset) > :where(legend, .bf-legend) {
339
+ margin-bottom: 0;
340
+ padding-inline: calc(var(--bf-baseline) * 0.5);
341
+ }
342
+
343
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select) {
344
+ ${typeStyles(body, { includeCase: false })} appearance: none;
345
+ background-color: var(--bf-color-background-inputs);
346
+ border: 0 solid transparent;
347
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
348
+ border-top: var(--bf-border-width) solid transparent;
349
+ border-radius: var(--bf-radius);
350
+ color: var(--bf-color-text-default);
351
+ inline-size: 100%;
352
+ max-inline-size: 100%;
353
+ min-inline-size: 0;
354
+ margin-bottom: ${inputMarginBottom};
355
+ ${controlPadding(inputBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-field);
356
+ }
357
+
358
+ :where(.bf-theme) :where(input[type='color'].bf-color-input) {
359
+ inline-size: 4rem;
360
+ min-block-size: var(--bf-control-box-size);
361
+ padding: calc(var(--bf-baseline) * 0.5);
362
+ }
363
+
364
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):hover {
365
+ background-color: var(--bf-color-background-hover);
366
+ }
367
+
368
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus:not(:focus-visible) {
369
+ outline: none;
370
+ }
371
+
372
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus-visible {
373
+ background-color: var(--bf-color-background-active);
374
+ outline: 2px solid var(--bf-color-focus);
375
+ outline-offset: 2px;
376
+ }
377
+
378
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):disabled {
379
+ cursor: not-allowed;
380
+ opacity: 0.5;
381
+ }
382
+
383
+ :where(.bf-theme) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select)[readonly] {
384
+ background-color: var(--bf-color-background-alt);
385
+ color: var(--bf-color-text-muted);
386
+ }
387
+
388
+ :where(.bf-theme) :where(textarea) {
389
+ block-size: auto;
390
+ min-block-size: calc(var(--bf-control-box-size) * 2);
391
+ resize: vertical;
392
+ }
393
+
394
+ :where(.bf-theme) :where(input[type='file']) {
395
+ ${typeStyles(body, { includeCase: false })} background: transparent;
396
+ border: 0 solid transparent;
397
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
398
+ border-top: var(--bf-border-width) solid transparent;
399
+ color: var(--bf-color-text-default);
400
+ margin-bottom: ${inputMarginBottom};
401
+ max-inline-size: 100%;
402
+ min-inline-size: 0;
403
+ ${controlPadding(inputBlockPaddingVar)} padding-inline: 0;
404
+ width: 100%;
405
+ }
406
+
407
+ :where(.bf-theme) :where(input[type='file'])::file-selector-button {
408
+ ${typeStyles(body, { includeCase: false })} appearance: none;
409
+ background: var(--bf-color-background-alt);
410
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
411
+ border-radius: var(--bf-radius);
412
+ color: var(--bf-color-text-default);
413
+ cursor: pointer;
414
+ margin-inline-end: var(--bf-field-gap);
415
+ min-block-size: var(--bf-control-box-size-compact);
416
+ ${controlPadding(controlCompactBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-action);
417
+ }
418
+
419
+ :where(.bf-theme) :where(input[type='file'])::file-selector-button:hover {
420
+ background: var(--bf-color-background-hover);
421
+ }
422
+
423
+ :where(.bf-theme) :where(select) {
424
+ background-image: var(--bf-ui-icon-chevron-down);
425
+ background-position: right var(--bf-control-inline-padding-field) center;
426
+ background-repeat: no-repeat;
427
+ background-size: 1rem 1rem;
428
+ padding-inline-end: calc(var(--bf-control-inline-padding-field) * 2.5);
429
+ }
430
+
431
+ :where(.bf-theme) :where(input[type='number'], .bf-slider-input) {
432
+ font-variant-numeric: tabular-nums;
433
+ }
434
+
435
+ :where(.bf-theme) :where(.bf-slider-input) {
436
+ flex: 0 1 5rem;
437
+ inline-size: min(100%, 5rem);
438
+ justify-self: end;
439
+ max-inline-size: 100%;
440
+ min-inline-size: 0;
441
+ text-align: right;
442
+ }
443
+
444
+ :where(.bf-theme) :where(input[type='number'])::-webkit-inner-spin-button,
445
+ :where(.bf-theme) :where(input[type='number'])::-webkit-outer-spin-button {
446
+ margin: 0;
447
+ }
448
+
449
+ :where(.bf-theme) :where(.bf-checkbox, .bf-radio) {
450
+ margin: 0;
451
+ min-block-size: var(--bf-tick-row-block-size);
452
+ position: relative;
453
+ }
454
+
455
+ :where(.bf-theme) :where(.bf-checkbox-input, .bf-radio-input) {
456
+ block-size: var(--bf-control-visual-size);
457
+ inline-size: var(--bf-control-visual-size);
458
+ left: 0;
459
+ margin: 0;
460
+ opacity: 0;
461
+ position: absolute;
462
+ top: var(--bf-tick-box-offset);
463
+ }
464
+
465
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label) {
466
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
467
+ cursor: pointer;
468
+ display: block;
469
+ margin-bottom: 0;
470
+ min-block-size: var(--bf-tick-row-block-size);
471
+ padding-block-end: ${bodySelectedEndNudge};
472
+ padding-block-start: ${bodySelectedStartNudge};
473
+ padding-inline-start: var(--bf-tick-label-offset);
474
+ position: relative;
475
+ }
476
+
477
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::before,
478
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::after {
479
+ box-sizing: border-box;
480
+ content: "";
481
+ position: absolute;
482
+ }
483
+
484
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::before {
485
+ background: var(--bf-color-background-default);
486
+ block-size: var(--bf-control-visual-size);
487
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
488
+ inline-size: var(--bf-control-visual-size);
489
+ inset-inline-start: 0;
490
+ inset-block-start: var(--bf-tick-box-offset);
491
+ }
492
+
493
+ :where(.bf-theme) :where(.bf-checkbox-label:hover, .bf-radio-label:hover)::before {
494
+ background: var(--bf-color-background-hover);
495
+ }
496
+
497
+ :where(.bf-theme) :where(.bf-checkbox-label)::after {
498
+ block-size: calc(var(--bf-control-visual-size) * 0.35);
499
+ border-bottom: calc(var(--bf-border-width) * 2) solid var(--bf-color-background-default);
500
+ border-left: calc(var(--bf-border-width) * 2) solid var(--bf-color-background-default);
501
+ inline-size: calc(var(--bf-control-visual-size) * 0.6);
502
+ inset-inline-start: calc(var(--bf-control-visual-size) * 0.2);
503
+ inset-block-start: calc(var(--bf-tick-box-offset) + (var(--bf-control-visual-size) * 0.18));
504
+ opacity: 0;
505
+ transform: rotate(-45deg);
506
+ }
507
+
508
+ :where(.bf-theme) :where(.bf-radio-label)::before {
509
+ border-radius: 50%;
510
+ }
511
+
512
+ :where(.bf-theme) :where(.bf-radio-label)::after {
513
+ background: var(--bf-color-background-default);
514
+ block-size: var(--bf-radio-dot-size);
515
+ border-radius: 50%;
516
+ inline-size: var(--bf-radio-dot-size);
517
+ inset-inline-start: calc((var(--bf-control-visual-size) - var(--bf-radio-dot-size)) * 0.5);
518
+ inset-block-start: calc(var(--bf-tick-box-offset) + ((var(--bf-control-visual-size) - var(--bf-radio-dot-size)) * 0.5));
519
+ opacity: 0;
520
+ }
521
+
522
+ :where(.bf-theme) :where(.bf-checkbox-input:checked + .bf-checkbox-label)::before {
523
+ background: var(--bf-color-link-default);
524
+ border-color: var(--bf-color-link-default);
525
+ }
526
+
527
+ :where(.bf-theme) :where(.bf-checkbox-input:checked + .bf-checkbox-label)::after {
528
+ opacity: 1;
529
+ }
530
+
531
+ :where(.bf-theme) :where(.bf-radio-input:checked + .bf-radio-label)::before {
532
+ background: var(--bf-color-link-default);
533
+ border-color: var(--bf-color-link-default);
534
+ }
535
+
536
+ :where(.bf-theme) :where(.bf-radio-input:checked + .bf-radio-label)::after {
537
+ opacity: 1;
538
+ }
539
+
540
+ :where(.bf-theme) :where(.bf-checkbox-input:focus-visible + .bf-checkbox-label)::before {
541
+ outline: 2px solid var(--bf-color-focus);
542
+ outline-offset: 2px;
543
+ }
544
+
545
+ :where(.bf-theme) :where(.bf-radio-input:focus-visible + .bf-radio-label)::before {
546
+ outline: 2px solid var(--bf-color-focus);
547
+ outline-offset: 2px;
548
+ }
549
+
550
+ :where(.bf-theme) :where(.bf-switch) {
551
+ align-items: flex-start;
552
+ display: inline-flex;
553
+ gap: var(--bf-field-gap);
554
+ min-block-size: var(--bf-switch-row-block-size);
555
+ position: relative;
556
+ }
557
+
558
+ :where(.bf-theme) :where(.bf-switch-input) {
559
+ block-size: var(--bf-control-visual-size);
560
+ inline-size: calc(var(--bf-control-visual-size) * 2);
561
+ inset-block-start: var(--bf-switch-track-offset);
562
+ inset-inline-start: 0;
563
+ margin: 0;
564
+ opacity: 0;
565
+ position: absolute;
566
+ }
567
+
568
+ :where(.bf-theme) :where(.bf-switch-slider) {
569
+ background: var(--bf-color-border-high-contrast);
570
+ block-size: var(--bf-control-visual-size);
571
+ border-radius: var(--bf-control-visual-size);
572
+ display: inline-block;
573
+ flex: none;
574
+ inline-size: calc(var(--bf-control-visual-size) * 2);
575
+ margin-block-start: var(--bf-switch-track-offset);
576
+ position: relative;
577
+ }
578
+
579
+ :where(.bf-theme) :where(.bf-switch-slider)::before {
580
+ background: var(--bf-color-background-default);
581
+ block-size: var(--bf-control-visual-size);
582
+ box-sizing: border-box;
583
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
584
+ border-radius: 50%;
585
+ content: "";
586
+ inline-size: var(--bf-control-visual-size);
587
+ inset-block-start: 0;
588
+ inset-inline-start: 0;
589
+ position: absolute;
590
+ transition: transform 160ms ease;
591
+ }
592
+
593
+ :where(.bf-theme) :where(.bf-switch-input:checked + .bf-switch-slider) {
594
+ background: var(--bf-color-link-default);
595
+ }
596
+
597
+ :where(.bf-theme) :where(.bf-switch-input:checked + .bf-switch-slider)::before {
598
+ border-color: var(--bf-color-link-default);
599
+ transform: translateX(100%);
600
+ }
601
+
602
+ :where(.bf-theme) :where(.bf-switch-input:focus-visible + .bf-switch-slider) {
603
+ outline: 2px solid var(--bf-color-focus);
604
+ outline-offset: 2px;
605
+ }
606
+
607
+ :where(.bf-theme) :where(.bf-switch-input:disabled + .bf-switch-slider) {
608
+ opacity: 0.6;
609
+ }
610
+
611
+ :where(.bf-theme) :where(.bf-switch-label) {
612
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
613
+ cursor: pointer;
614
+ display: inline-block;
615
+ margin: 0 0 var(--bf-body-margin-bottom);
616
+ padding-block-end: 0;
617
+ padding-block-start: ${bodySelectedStartNudge};
618
+ }
619
+
620
+ :where(.bf-theme) :where(.bf-validation-message) {
621
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-muted);
622
+ margin: 0 0 var(--bf-body-margin-bottom);
623
+ padding-block-end: 0;
624
+ padding-block-start: ${bodySelectedStartNudge};
625
+ padding-inline-start: calc(var(--bf-control-visual-size) + var(--bf-field-gap));
626
+ position: relative;
627
+ }
628
+
629
+ :where(.bf-theme) :where(.bf-validation-message)::before {
630
+ background: var(--bf-color-border-information);
631
+ block-size: calc(var(--bf-control-visual-size) * 0.5);
632
+ border-radius: 50%;
633
+ content: "";
634
+ inline-size: calc(var(--bf-control-visual-size) * 0.5);
635
+ inset-block-start: ${alignedVisualStart(bodyLineHeight, "(var(--bf-control-visual-size) * 0.5)", bodySelectedStartNudge)};
636
+ inset-inline-start: 0;
637
+ position: absolute;
638
+ }
639
+
640
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select) {
641
+ background-color: var(--bf-color-background-caution-default);
642
+ border-bottom-color: var(--bf-color-border-caution);
643
+ }
644
+
645
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):hover {
646
+ background-color: var(--bf-color-background-caution-hover);
647
+ }
648
+
649
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus-visible {
650
+ background-color: var(--bf-color-background-caution-active);
651
+ }
652
+
653
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-validation-message) {
654
+ color: var(--bf-color-border-caution);
655
+ }
656
+
657
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-validation-message)::before {
658
+ background: var(--bf-color-border-caution);
659
+ }
660
+
661
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select) {
662
+ background-color: var(--bf-color-background-negative-default);
663
+ border-bottom-color: var(--bf-color-border-negative);
664
+ }
665
+
666
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):hover {
667
+ background-color: var(--bf-color-background-negative-hover);
668
+ }
669
+
670
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus-visible {
671
+ background-color: var(--bf-color-background-negative-active);
672
+ }
673
+
674
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-validation-message) {
675
+ color: var(--bf-color-border-negative);
676
+ }
677
+
678
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-validation-message)::before {
679
+ background: var(--bf-color-border-negative);
680
+ }
681
+
682
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select) {
683
+ background-color: var(--bf-color-background-positive-default);
684
+ border-bottom-color: var(--bf-color-border-positive);
685
+ }
686
+
687
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):hover {
688
+ background-color: var(--bf-color-background-positive-hover);
689
+ }
690
+
691
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-input, input[type='text'], input[type='number'], input[type='search'], input[type='password'], input[type='email'], input[type='url'], textarea, select):focus-visible {
692
+ background-color: var(--bf-color-background-positive-active);
693
+ }
694
+
695
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-validation-message) {
696
+ color: var(--bf-color-border-positive);
697
+ }
698
+
699
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-validation-message)::before {
700
+ background: var(--bf-color-border-positive);
701
+ }
702
+
703
+ :where(.bf-theme) :where(.bf-slider) {
704
+ align-items: flex-start;
705
+ display: inline-flex;
706
+ flex-wrap: nowrap;
707
+ gap: var(--bf-field-gap);
708
+ inline-size: 100%;
709
+ max-inline-size: 100%;
710
+ min-inline-size: 0;
711
+ }
712
+
713
+ :where(.bf-theme) :where(.bf-slider.is-stacked),
714
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) :where(.bf-slider) {
715
+ align-items: stretch;
716
+ display: grid;
717
+ gap: var(--bf-field-gap);
718
+ grid-template-columns: minmax(0, 1fr);
719
+ }
720
+
721
+ :where(.bf-theme) :where(.bf-slider) :where(input[type='range']) {
722
+ align-self: flex-start;
723
+ flex: 1 1 8rem;
724
+ inline-size: 100%;
725
+ min-inline-size: 0;
726
+ }
727
+
728
+ :where(.bf-theme) :where(input[type='range']) {
729
+ appearance: none;
730
+ background: linear-gradient(
731
+ to right,
732
+ var(--bf-color-link-default) 0,
733
+ var(--bf-color-link-default) var(--bf-slider-fill-percent, 0%),
734
+ var(--bf-color-border-default) var(--bf-slider-fill-percent, 0%),
735
+ var(--bf-color-border-default) 100%
736
+ );
737
+ block-size: var(--bf-slider-track-size);
738
+ border: 0;
739
+ border-radius: var(--bf-baseline);
740
+ margin: var(--bf-slider-track-offset) 0 calc(var(--bf-slider-row-block-size) - var(--bf-slider-track-offset) - var(--bf-slider-track-size));
741
+ padding: 0;
742
+ }
743
+
744
+ :where(.bf-theme) :where(input[type='range']):focus:not(:focus-visible) {
745
+ outline: none;
746
+ }
747
+
748
+ :where(.bf-theme) :where(input[type='range'])::-webkit-slider-runnable-track {
749
+ background: transparent;
750
+ block-size: var(--bf-slider-track-size);
751
+ border-radius: var(--bf-baseline);
752
+ }
753
+
754
+ :where(.bf-theme) :where(input[type='range'])::-webkit-slider-thumb {
755
+ appearance: none;
756
+ background: var(--bf-color-background-default);
757
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
758
+ block-size: var(--bf-control-visual-size);
759
+ border-radius: 50%;
760
+ box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 1px rgba(0, 0, 0, 0.2);
761
+ inline-size: var(--bf-control-visual-size);
762
+ margin-top: calc((var(--bf-slider-track-size) - var(--bf-control-visual-size)) / 2);
763
+ }
764
+
765
+ :where(.bf-theme) :where(input[type='range']):focus-visible::-webkit-slider-thumb {
766
+ outline: calc(var(--bf-baseline) * 0.25) solid var(--bf-color-focus);
767
+ }
768
+
769
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-track {
770
+ background: var(--bf-color-border-default);
771
+ block-size: var(--bf-slider-track-size);
772
+ border-radius: var(--bf-baseline);
773
+ }
774
+
775
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-progress {
776
+ background: var(--bf-color-link-default);
777
+ block-size: var(--bf-slider-track-size);
778
+ border-radius: var(--bf-baseline);
779
+ }
780
+
781
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-thumb {
782
+ background: var(--bf-color-background-default);
783
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
784
+ block-size: var(--bf-control-visual-size);
785
+ border-radius: 50%;
786
+ box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 1px rgba(0, 0, 0, 0.2);
787
+ inline-size: var(--bf-control-visual-size);
788
+ }
789
+
790
+ :where(.bf-theme) :where(input[type='range'])::-moz-focus-outer {
791
+ border: 0;
792
+ }
793
+
794
+ :where(.bf-theme) :where(input[type='range']):focus-visible::-moz-range-thumb {
795
+ outline: calc(var(--bf-baseline) * 0.25) solid var(--bf-color-focus);
796
+ }
797
+
798
+ ${iconCss()}
799
+
800
+ ${buttonActionsCss({ bodyTypeStyles, buttonMarginBottom, buttonPadding })}
801
+
802
+ ${ctaFigureAspectCss()}
803
+
804
+ ${editorialContentCss({ noticeTitleTypeStyles: typeStyles(h4, { includeCase: false }) })}
805
+
806
+ ${staticContentPortsCss()}
807
+
808
+ ${interactiveFeedbackCss()}
809
+
810
+ ${interactiveTablesCss()}
811
+
812
+ ${logoMediaCss()}
813
+
814
+ ${linkedLogoSiteLayoutCss()}
815
+
816
+ ${sitesFoundationCss()}
817
+
818
+ ${sitesEditorialPortsCss()}
819
+
820
+ ${sitesRichListsCss()}
821
+
822
+ ${panelCss({
823
+ bodyTypeStyles,
824
+ h4TypeStyles: typeStyles(h4, { includeCase: false })
825
+ })}
826
+
827
+ ${cardsOptionsCss({
828
+ bodyStrongTypeStyles: typeStyles(body, { fontWeight: 600, includeCase: false }),
829
+ bodyTypeStyles
830
+ })}
831
+
832
+ ${contentCardCss()}
833
+
834
+ ${tabsChoiceBreadcrumbsCss({
835
+ bodyCaseTypeStyles: typeStyles(body),
836
+ bodyStrongTypeStyles: typeStyles(body, { fontWeight: 600, includeCase: false }),
837
+ bodyTypeStyles,
838
+ buttonMarginBottom,
839
+ buttonPadding,
840
+ })}
841
+
842
+ ${tabSectionCss()}
843
+
844
+ ${articlePaginationCss({
845
+ bodyCaseTypeStyles: typeStyles(body),
846
+ titleTypeStyles: typeStyles(h5, { includeCase: false })
847
+ })}
848
+
849
+ ${listCss({ bodyTypeStyles })}
850
+
851
+ :where(.bf-theme) :where(.bf-skip-link) {
852
+ ${typeStyles(body, { includeCase: false })} background: var(--bf-color-background-alt);
853
+ color: var(--bf-color-link-default);
854
+ display: block;
855
+ left: -999px;
856
+ max-inline-size: calc(100vw - var(--bf-baseline));
857
+ position: absolute;
858
+ text-decoration: none;
859
+ top: -999px;
860
+ }
861
+
862
+ :where(.bf-theme) :where(.bf-skip-link:hover) {
863
+ text-decoration: underline;
864
+ }
865
+
866
+ :where(.bf-theme) :where(.bf-skip-link:focus, .bf-skip-link:focus-visible) {
867
+ left: calc(var(--bf-baseline) * 0.5);
868
+ outline: 2px solid var(--bf-color-focus);
869
+ outline-offset: 0;
870
+ padding-block: calc(var(--bf-baseline) * 1.5);
871
+ padding-inline: calc(var(--bf-baseline) * 1.5);
872
+ position: fixed;
873
+ top: calc(var(--bf-baseline) * 0.5);
874
+ z-index: 999999;
875
+ }
876
+
877
+ ${tableCss({
878
+ bodyLineHeight,
879
+ bodyMediumTypeStyles: typeStyles(body, { fontWeight: 500, includeCase: false }),
880
+ bodyTypeStyles,
881
+ })}
882
+
883
+ ${chipBadgeStatusCss({
884
+ bodyCaseTypeStyles: typeStyles(body),
885
+ bodyLineHeight,
886
+ bodySelectedStartNudge,
887
+ h5SelectedEndNudge,
888
+ h5SelectedStartNudge,
889
+ bodyTypeStyles,
890
+ })}
891
+
892
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear) {
893
+ appearance: none;
894
+ background: transparent;
895
+ border: 0;
896
+ color: var(--bf-color-text-default);
897
+ cursor: pointer;
898
+ flex: 0 0 auto;
899
+ margin: 0;
900
+ padding: 0;
901
+ position: relative;
902
+ text-indent: -9999px;
903
+ }
904
+
905
+ :where(.bf-theme) :where(.bf-chip-dismiss) {
906
+ block-size: 1rem;
907
+ inline-size: 1rem;
908
+ margin-inline-start: var(--bf-ui-badge-padding-inline);
909
+ }
910
+
911
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::before,
912
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::after {
913
+ background: currentColor;
914
+ block-size: 2px;
915
+ content: "";
916
+ inline-size: 0.75rem;
917
+ left: 50%;
918
+ position: absolute;
919
+ top: 50%;
920
+ }
921
+
922
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::before {
923
+ transform: translate(-50%, -50%) rotate(45deg);
924
+ }
925
+
926
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::after {
927
+ transform: translate(-50%, -50%) rotate(-45deg);
928
+ }
929
+
930
+
931
+ ${searchBoxAndFilterCss({
932
+ bodySelectedStartNudge,
933
+ bodyTypeStyles,
934
+ buttonBlockPaddingVar,
935
+ h6TypeStyles,
936
+ inputMarginBottom,
937
+ })}
938
+
939
+ ${controlRowCss()}
940
+
941
+ ${listTreeCss({ bodyTypeStyles })}
942
+
943
+ :where(.bf-theme) :where(.bf-side-navigation, .bf-side-navigation.is-icons, .bf-side-navigation.is-accordion, .bf-side-navigation.is-raw-html) {
944
+ color: var(--bf-color-text-inactive);
945
+ display: block;
946
+ inline-size: 100%;
947
+ }
948
+
949
+ :where(.bf-theme) :where(.bf-side-navigation-drawer) {
950
+ background: var(--bf-color-background-default);
951
+ bottom: 0;
952
+ color: var(--bf-color-text-default);
953
+ inline-size: 100%;
954
+ left: 0;
955
+ overflow: auto;
956
+ position: fixed;
957
+ top: 0;
958
+ transform: translateX(-100%);
959
+ transition: transform 160ms ease, visibility 160ms ease, box-shadow 160ms ease;
960
+ visibility: visible;
961
+ z-index: 102;
962
+ }
963
+
964
+ :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) {
965
+ box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
966
+ transform: translateX(0);
967
+ }
968
+
969
+ :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) {
970
+ display: none;
971
+ }
972
+
973
+ :where(.bf-theme) :where(.bf-side-navigation-overlay) {
974
+ background: var(--bf-color-background-overlay);
975
+ inset: 0;
976
+ opacity: 0;
977
+ pointer-events: none;
978
+ position: fixed;
979
+ transition: opacity 160ms ease, visibility 160ms ease;
980
+ visibility: hidden;
981
+ z-index: 101;
982
+ }
983
+
984
+ :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) {
985
+ opacity: 1;
986
+ pointer-events: auto;
987
+ visibility: visible;
988
+ }
989
+
990
+ :where(.bf-theme) :where(.bf-side-navigation-drawer-header) {
991
+ background: var(--bf-color-background-default);
992
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
993
+ margin-bottom: calc(var(--bf-baseline) * 2);
994
+ padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
995
+ padding-inline: var(--bf-panel-padding-inline);
996
+ padding-top: var(--bf-panel-padding-block);
997
+ position: sticky;
998
+ top: 0;
999
+ z-index: 1;
1000
+ }
1001
+
1002
+ :where(.bf-theme) :where(.bf-side-navigation-toggle, .bf-side-navigation-toggle.is-in-drawer) {
1003
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1004
+ appearance: none;
1005
+ background: var(--bf-color-background-default);
1006
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
1007
+ border-radius: var(--bf-radius);
1008
+ color: var(--bf-color-text-default);
1009
+ cursor: pointer;
1010
+ display: inline-flex;
1011
+ gap: calc(var(--bf-baseline) * 0.5);
1012
+ justify-content: center;
1013
+ margin: 0 0 ${buttonMarginBottom};
1014
+ ${controlPadding(buttonBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-action);
1015
+ text-decoration: none;
1016
+ }
1017
+
1018
+ :where(.bf-theme) :where(.bf-side-navigation-toggle)::before {
1019
+ background-image: var(--bf-ui-icon-chevron-down);
1020
+ background-position: center;
1021
+ background-repeat: no-repeat;
1022
+ background-size: 1rem 1rem;
1023
+ block-size: 1rem;
1024
+ content: "";
1025
+ inline-size: 1rem;
1026
+ transform: rotate(-90deg);
1027
+ }
1028
+
1029
+ :where(.bf-theme) :where(.bf-side-navigation-toggle.is-in-drawer)::before {
1030
+ background-image: var(--bf-ui-icon-chevron-down);
1031
+ background-position: center;
1032
+ background-repeat: no-repeat;
1033
+ background-size: 1rem 1rem;
1034
+ block-size: 1rem;
1035
+ content: "";
1036
+ inline-size: 1rem;
1037
+ transform: rotate(90deg);
1038
+ }
1039
+
1040
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:hover) {
1041
+ background: var(--bf-color-background-hover);
1042
+ }
1043
+
1044
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:focus:not(:focus-visible)) {
1045
+ outline: none;
1046
+ }
1047
+
1048
+ :where(.bf-theme) :where(.bf-side-navigation-toggle:focus-visible) {
1049
+ outline: 2px solid var(--bf-color-focus);
1050
+ outline-offset: -2px;
1051
+ }
1052
+
1053
+ :where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked) {
1054
+ ${typeStyles(body, { fontWeight: 600, includeCase: false })} display: block;
1055
+ margin: 0 0 var(--bf-body-margin-bottom);
1056
+ padding-block: var(--bf-body-nudge-start) 0;
1057
+ }
1058
+
1059
+ :where(.bf-theme) :where(.bf-side-navigation-list) {
1060
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1061
+ list-style: none;
1062
+ margin: 0 0 calc(var(--bf-baseline) * 2);
1063
+ padding: 0 0 calc((var(--bf-baseline) * 2) - var(--bf-border-width));
1064
+ }
1065
+
1066
+ :where(.bf-theme) :where(.bf-side-navigation-list:last-of-type) {
1067
+ border-bottom: 0;
1068
+ margin-bottom: 0;
1069
+ padding-bottom: 0;
1070
+ }
1071
+
1072
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title) {
1073
+ margin: 0;
1074
+ position: relative;
1075
+ }
1076
+
1077
+ :where(.bf-theme) :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
1078
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1079
+ background: transparent;
1080
+ border: 0;
1081
+ color: var(--bf-color-text-inactive);
1082
+ display: flex;
1083
+ gap: calc(var(--bf-baseline) * 0.5);
1084
+ inline-size: 100%;
1085
+ justify-content: flex-start;
1086
+ margin: 0;
1087
+ min-block-size: var(--bf-control-box-size-compact);
1088
+ ${controlPadding(controlCompactBlockPaddingVar, "0rem")} padding-inline: var(--bf-panel-padding-inline);
1089
+ position: relative;
1090
+ text-align: left;
1091
+ text-decoration: none;
1092
+ }
1093
+
1094
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button) {
1095
+ gap: var(--bf-disclosure-gap);
1096
+ }
1097
+
1098
+ :where(.bf-theme) :where(.bf-side-navigation-item.is-title) > :where(.bf-side-navigation-link, .bf-side-navigation-text) {
1099
+ color: var(--bf-color-text-default);
1100
+ font-weight: 600;
1101
+ }
1102
+
1103
+ :where(.bf-theme) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked),
1104
+ :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) {
1105
+ padding-inline-start: var(--bf-panel-padding-inline);
1106
+ }
1107
+
1108
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1109
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1110
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
1111
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 2));
1112
+ }
1113
+
1114
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1115
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1116
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1117
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
1118
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 4));
1119
+ }
1120
+
1121
+ :where(.bf-theme) :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1122
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1123
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1124
+ :where(.bf-side-navigation-item, .bf-side-navigation-item.is-title)
1125
+ > :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
1126
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 6));
1127
+ }
1128
+
1129
+ :where(.bf-theme) :where(.bf-side-navigation-link:hover, .bf-side-navigation-accordion-button:hover) {
1130
+ background: var(--bf-color-background-hover);
1131
+ color: var(--bf-color-text-default);
1132
+ text-decoration: none;
1133
+ }
1134
+
1135
+ :where(.bf-theme) :where(.bf-side-navigation-link:focus:not(:focus-visible), .bf-side-navigation-accordion-button:focus:not(:focus-visible)) {
1136
+ outline: none;
1137
+ }
1138
+
1139
+ :where(.bf-theme) :where(.bf-side-navigation-link:focus-visible, .bf-side-navigation-accordion-button:focus-visible) {
1140
+ outline: 2px solid var(--bf-color-focus);
1141
+ outline-offset: -2px;
1142
+ }
1143
+
1144
+ :where(.bf-theme) :where(.bf-side-navigation-link.is-active, .bf-side-navigation-link[aria-current='page'], .bf-side-navigation-link[aria-current='true']) {
1145
+ background: var(--bf-color-background-active);
1146
+ box-shadow: inset var(--bf-bar-thickness) 0 0 var(--bf-color-text-default);
1147
+ color: var(--bf-color-text-default);
1148
+ cursor: default;
1149
+ }
1150
+
1151
+ :where(.bf-theme) :where(.bf-top-navigation) {
1152
+ background: var(--bf-color-background-default);
1153
+ box-shadow: inset 0 calc(var(--bf-border-width) * -1) 0 var(--bf-color-border-low-contrast);
1154
+ color: var(--bf-color-text-default);
1155
+ isolation: isolate;
1156
+ position: relative;
1157
+ z-index: 50;
1158
+ }
1159
+
1160
+ :where(.bf-theme) :where(.bf-top-navigation.is-sticky) {
1161
+ position: sticky;
1162
+ top: 0;
1163
+ z-index: 98;
1164
+ }
1165
+
1166
+ :where(.bf-theme) :where(.bf-top-navigation-row) {
1167
+ display: flex;
1168
+ flex-direction: column;
1169
+ min-block-size: var(--bf-navigation-bar-min-block-size);
1170
+ min-inline-size: 0;
1171
+ padding-block: calc(var(--bf-baseline) / 2);
1172
+ padding-inline: var(--bf-panel-padding-inline);
1173
+ position: relative;
1174
+ z-index: 1;
1175
+ }
1176
+
1177
+ :where(.bf-theme) :where(.bf-top-navigation) :where(.bf-fixed-width) > :where(.bf-top-navigation-row) {
1178
+ padding-inline: 0;
1179
+ }
1180
+
1181
+ :where(.bf-theme) :where(.bf-top-navigation-banner) {
1182
+ align-items: stretch;
1183
+ display: flex;
1184
+ justify-content: space-between;
1185
+ min-inline-size: 0;
1186
+ }
1187
+
1188
+ :where(.bf-theme) :where(.bf-top-navigation-logo) {
1189
+ align-items: stretch;
1190
+ display: flex;
1191
+ min-inline-size: 0;
1192
+ }
1193
+
1194
+ :where(.bf-theme) :where(.bf-top-navigation-logo) > :where(.bf-top-navigation-link) {
1195
+ ${typeStyles(body, { fontWeight: 500, includeCase: false })} align-items: center;
1196
+ color: var(--bf-color-text-default);
1197
+ column-gap: calc(var(--bf-baseline) * 1.5);
1198
+ display: inline-flex;
1199
+ inline-size: auto;
1200
+ justify-content: flex-start;
1201
+ margin: 0;
1202
+ min-inline-size: 0;
1203
+ padding-block: var(--bf-top-navigation-link-padding-block);
1204
+ padding-inline: 0;
1205
+ text-decoration: none;
1206
+ }
1207
+
1208
+ :where(.bf-theme) :where(.bf-top-navigation-logo) > :where(.bf-top-navigation-link:hover) {
1209
+ background: transparent;
1210
+ text-decoration: none;
1211
+ }
1212
+
1213
+ :where(.bf-theme) :where(.bf-top-navigation-logo-tag) {
1214
+ align-items: center;
1215
+ background: var(--bf-color-accent);
1216
+ block-size: var(--bf-top-navigation-logo-tag-block-size);
1217
+ color: #ffffff;
1218
+ display: inline-flex;
1219
+ flex: 0 0 auto;
1220
+ inline-size: var(--bf-top-navigation-logo-tag-inline-size);
1221
+ justify-content: center;
1222
+ }
1223
+
1224
+ :where(.bf-theme) :where(.bf-top-navigation-logo-icon) {
1225
+ block-size: var(--bf-top-navigation-logo-icon-size);
1226
+ inline-size: var(--bf-top-navigation-logo-icon-size);
1227
+ }
1228
+
1229
+ :where(.bf-theme) :where(.bf-top-navigation-logo-title) {
1230
+ min-inline-size: 0;
1231
+ overflow: hidden;
1232
+ text-overflow: ellipsis;
1233
+ white-space: nowrap;
1234
+ }
1235
+
1236
+ :where(.bf-theme) :where(.bf-top-navigation-nav) {
1237
+ display: none;
1238
+ flex-direction: column;
1239
+ min-inline-size: 0;
1240
+ }
1241
+
1242
+ :where(.bf-theme) :where(.bf-top-navigation-nav[aria-hidden='false']) {
1243
+ display: flex;
1244
+ }
1245
+
1246
+ :where(.bf-theme) :where(.bf-top-navigation-list) {
1247
+ display: flex;
1248
+ flex-direction: column;
1249
+ list-style: none;
1250
+ margin: 0;
1251
+ min-inline-size: 0;
1252
+ padding: 0;
1253
+ }
1254
+
1255
+ :where(.bf-theme) :where(.bf-top-navigation-list.is-banner-actions) {
1256
+ align-items: stretch;
1257
+ display: flex;
1258
+ flex: 0 0 auto;
1259
+ flex-direction: row;
1260
+ }
1261
+
1262
+ :where(.bf-theme) :where(.bf-top-navigation-item) {
1263
+ margin: 0;
1264
+ min-inline-size: 0;
1265
+ position: relative;
1266
+ }
1267
+
1268
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-item) {
1269
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1270
+ }
1271
+
1272
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-right-shifted) {
1273
+ margin-inline-start: auto;
1274
+ }
1275
+
1276
+ :where(.bf-theme) :where(.bf-top-navigation-link, .bf-top-navigation-menu-toggle, .bf-top-navigation-search-toggle) {
1277
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1278
+ appearance: none;
1279
+ background: transparent;
1280
+ border: 0;
1281
+ color: var(--bf-color-text-default);
1282
+ cursor: pointer;
1283
+ display: inline-flex;
1284
+ gap: calc(var(--bf-baseline) * 1);
1285
+ inline-size: 100%;
1286
+ justify-content: flex-start;
1287
+ margin: 0;
1288
+ min-inline-size: 0;
1289
+ padding-block: var(--bf-top-navigation-link-padding-block);
1290
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
1291
+ position: relative;
1292
+ text-align: left;
1293
+ text-decoration: none;
1294
+ white-space: nowrap;
1295
+ }
1296
+
1297
+ :where(.bf-theme) :where(.bf-top-navigation-link:hover, .bf-top-navigation-menu-toggle:hover, .bf-top-navigation-search-toggle:hover) {
1298
+ background: var(--bf-color-background-hover);
1299
+ text-decoration: none;
1300
+ }
1301
+
1302
+ :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)) {
1303
+ outline: none;
1304
+ }
1305
+
1306
+ :where(.bf-theme) :where(.bf-top-navigation-link:focus-visible, .bf-top-navigation-menu-toggle:focus-visible, .bf-top-navigation-search-toggle:focus-visible) {
1307
+ outline: 2px solid var(--bf-color-focus);
1308
+ outline-offset: -2px;
1309
+ }
1310
+
1311
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-selected) > :where(.bf-top-navigation-link),
1312
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-link),
1313
+ :where(.bf-theme) :where(.bf-top-navigation-link[aria-current='page']) {
1314
+ background: var(--bf-color-background-hover);
1315
+ box-shadow: inset var(--bf-bar-thickness) 0 0 var(--bf-color-text-default);
1316
+ color: var(--bf-color-text-default);
1317
+ }
1318
+
1319
+ :where(.bf-theme) :where(.bf-top-navigation-menu-toggle) {
1320
+ display: inline-flex;
1321
+ }
1322
+
1323
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle) {
1324
+ justify-content: center;
1325
+ min-inline-size: var(--bf-top-navigation-search-toggle-inline-size);
1326
+ }
1327
+
1328
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-toggle) {
1329
+ padding-inline-end: calc(var(--bf-top-navigation-link-padding-inline) + var(--bf-top-navigation-end-slot-inline-size));
1330
+ }
1331
+
1332
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-toggle)::after {
1333
+ background-image: var(--bf-ui-icon-chevron-down);
1334
+ background-position: center;
1335
+ background-repeat: no-repeat;
1336
+ background-size: 1rem 1rem;
1337
+ block-size: 1rem;
1338
+ bottom: 0;
1339
+ content: "";
1340
+ inline-size: 1rem;
1341
+ margin-block: auto;
1342
+ pointer-events: none;
1343
+ position: absolute;
1344
+ right: var(--bf-top-navigation-link-padding-inline);
1345
+ top: 0;
1346
+ transform: rotate(0deg);
1347
+ transition: transform 160ms ease;
1348
+ }
1349
+
1350
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-dropdown-toggle)::after {
1351
+ transform: rotate(180deg);
1352
+ }
1353
+
1354
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown) {
1355
+ background: var(--bf-color-background-default);
1356
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1357
+ display: none;
1358
+ list-style: none;
1359
+ margin: 0;
1360
+ min-inline-size: 100%;
1361
+ padding: 0;
1362
+ }
1363
+
1364
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-dropdown) {
1365
+ display: block;
1366
+ }
1367
+
1368
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item) {
1369
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1370
+ color: var(--bf-color-text-default);
1371
+ display: flex;
1372
+ gap: calc(var(--bf-baseline) * 2);
1373
+ inline-size: 100%;
1374
+ justify-content: space-between;
1375
+ min-inline-size: 0;
1376
+ padding-block: var(--bf-top-navigation-link-padding-block);
1377
+ padding-inline: calc(var(--bf-top-navigation-link-padding-inline) + (var(--bf-baseline) * 2)) var(--bf-top-navigation-link-padding-inline);
1378
+ text-align: left;
1379
+ text-decoration: none;
1380
+ white-space: nowrap;
1381
+ }
1382
+
1383
+ :where(.bf-theme) :where(button.bf-top-navigation-dropdown-item) {
1384
+ appearance: none;
1385
+ background: transparent;
1386
+ border: 0;
1387
+ cursor: pointer;
1388
+ font: inherit;
1389
+ }
1390
+
1391
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item-label) {
1392
+ min-inline-size: 0;
1393
+ overflow: hidden;
1394
+ text-overflow: ellipsis;
1395
+ }
1396
+
1397
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item-shortcut) {
1398
+ color: var(--bf-color-text-muted);
1399
+ flex: 0 0 auto;
1400
+ white-space: nowrap;
1401
+ }
1402
+
1403
+ :where(.bf-theme) :where(button.bf-top-navigation-dropdown-item:disabled) {
1404
+ color: var(--bf-color-text-muted);
1405
+ cursor: default;
1406
+ }
1407
+
1408
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown > li.is-divider) {
1409
+ border-top: var(--bf-border-width) solid var(--bf-color-border-default);
1410
+ margin-block: calc(var(--bf-baseline) * 0.5);
1411
+ }
1412
+
1413
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown > li + li) > :where(.bf-top-navigation-dropdown-item) {
1414
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1415
+ }
1416
+
1417
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:hover) {
1418
+ background: var(--bf-color-background-hover);
1419
+ text-decoration: none;
1420
+ }
1421
+
1422
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:focus:not(:focus-visible)) {
1423
+ outline: none;
1424
+ }
1425
+
1426
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item:focus-visible) {
1427
+ outline: 2px solid var(--bf-color-focus);
1428
+ outline-offset: -2px;
1429
+ }
1430
+
1431
+ :where(.bf-theme) :where(.bf-top-navigation-search-label) {
1432
+ display: none;
1433
+ }
1434
+
1435
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle)::after {
1436
+ background-image: var(--bf-ui-icon-search);
1437
+ background-position: center;
1438
+ background-repeat: no-repeat;
1439
+ background-size: 1rem 1rem;
1440
+ block-size: 1rem;
1441
+ content: "";
1442
+ flex: 0 0 1rem;
1443
+ inline-size: 1rem;
1444
+ }
1445
+
1446
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle[aria-pressed='true'])::after {
1447
+ background-image: var(--bf-ui-icon-close);
1448
+ }
1449
+
1450
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-search-toggle) {
1451
+ display: none;
1452
+ }
1453
+
1454
+ :where(.bf-theme) :where(.bf-top-navigation-search) {
1455
+ border-top: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1456
+ display: none;
1457
+ min-inline-size: 0;
1458
+ padding-block: var(--bf-top-navigation-link-padding-block);
1459
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
1460
+ }
1461
+
1462
+ :where(.bf-theme) :where(.bf-top-navigation-search[aria-hidden='false']) {
1463
+ display: block;
1464
+ }
1465
+
1466
+ :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) {
1467
+ display: none;
1468
+ }
1469
+
1470
+ :where(.bf-theme) :where(.bf-top-navigation-search) :where(.bf-search-box) {
1471
+ margin-bottom: 0;
1472
+ }
1473
+
1474
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay) {
1475
+ display: none;
1476
+ }
1477
+
1478
+ @media (min-width: 64.75rem) {
1479
+ :where(.bf-theme) :where(.bf-top-navigation-row) {
1480
+ align-items: stretch;
1481
+ flex-direction: row;
1482
+ gap: calc(var(--bf-baseline) * 2);
1483
+ }
1484
+
1485
+ :where(.bf-theme) :where(.bf-top-navigation-banner) {
1486
+ flex: 0 0 auto;
1487
+ }
1488
+
1489
+ :where(.bf-theme) :where(.bf-top-navigation-nav) {
1490
+ align-items: stretch;
1491
+ display: flex;
1492
+ flex: 1 1 auto;
1493
+ flex-direction: row;
1494
+ justify-content: space-between;
1495
+ }
1496
+
1497
+ :where(.bf-theme) :where(.bf-top-navigation-list) {
1498
+ align-items: stretch;
1499
+ flex-direction: row;
1500
+ flex-wrap: wrap;
1501
+ }
1502
+
1503
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-item) {
1504
+ border-top: 0;
1505
+ }
1506
+
1507
+ :where(.bf-theme) :where(.bf-top-navigation-link, .bf-top-navigation-search-toggle) {
1508
+ inline-size: auto;
1509
+ }
1510
+
1511
+ :where(.bf-theme) :where(.bf-top-navigation-list.is-banner-actions) {
1512
+ display: none;
1513
+ }
1514
+
1515
+ :where(.bf-theme) :where(.bf-top-navigation-nav) :where(.bf-top-navigation-search-toggle) {
1516
+ display: inline-flex;
1517
+ }
1518
+
1519
+ :where(.bf-theme) :where(.bf-top-navigation-search-toggle) {
1520
+ justify-content: flex-start;
1521
+ min-inline-size: 0;
1522
+ }
1523
+
1524
+ :where(.bf-theme) :where(.bf-top-navigation-search-label) {
1525
+ display: inline;
1526
+ }
1527
+
1528
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-selected) > :where(.bf-top-navigation-link),
1529
+ :where(.bf-theme) :where(.bf-top-navigation-item.is-dropdown-toggle.is-active) > :where(.bf-top-navigation-link),
1530
+ :where(.bf-theme) :where(.bf-top-navigation-link[aria-current='page']) {
1531
+ box-shadow: inset 0 calc(var(--bf-bar-thickness) * -1) 0 var(--bf-color-text-default);
1532
+ }
1533
+
1534
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown) {
1535
+ border-top: 0;
1536
+ 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);
1537
+ left: 0;
1538
+ min-inline-size: max(100%, 12rem);
1539
+ position: absolute;
1540
+ top: calc((var(--bf-top-navigation-link-padding-block) * 2) + var(--bf-body-line-height));
1541
+ z-index: 5;
1542
+ }
1543
+
1544
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown.is-right) {
1545
+ left: auto;
1546
+ right: 0;
1547
+ }
1548
+
1549
+ :where(.bf-theme) :where(.bf-top-navigation-dropdown-item) {
1550
+ padding-inline: var(--bf-top-navigation-link-padding-inline);
1551
+ }
1552
+
1553
+ :where(.bf-theme) :where(.bf-top-navigation-search) {
1554
+ align-items: center;
1555
+ border-top: 0;
1556
+ flex: 1 1 auto;
1557
+ justify-content: flex-end;
1558
+ padding-block: var(--bf-top-navigation-link-padding-block);
1559
+ padding-inline: 0;
1560
+ }
1561
+
1562
+ :where(.bf-theme) :where(.bf-top-navigation-search) :where(.bf-search-box) {
1563
+ inline-size: min(100%, var(--bf-top-navigation-search-max-inline-size));
1564
+ }
1565
+
1566
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay) {
1567
+ background: var(--bf-color-background-overlay);
1568
+ display: block;
1569
+ inset: 0;
1570
+ opacity: 0;
1571
+ pointer-events: none;
1572
+ position: fixed;
1573
+ transition: opacity 160ms ease, visibility 160ms ease;
1574
+ visibility: hidden;
1575
+ z-index: 0;
1576
+ }
1577
+
1578
+ :where(.bf-theme) :where(.bf-top-navigation-search-overlay[aria-hidden='false']) {
1579
+ opacity: 0.5;
1580
+ pointer-events: auto;
1581
+ visibility: visible;
1582
+ }
1583
+ }
1584
+
1585
+ :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) {
1586
+ color: var(--bf-color-text-default);
1587
+ }
1588
+
1589
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button)::before,
1590
+ :where(.bf-theme) :where(.bf-side-navigation-expand)::before {
1591
+ background-image: var(--bf-ui-icon-chevron-down);
1592
+ background-position: center;
1593
+ background-repeat: no-repeat;
1594
+ background-size: var(--bf-disclosure-icon-inline-size) var(--bf-disclosure-icon-inline-size);
1595
+ block-size: var(--bf-disclosure-icon-inline-size);
1596
+ content: "";
1597
+ flex: 0 0 var(--bf-disclosure-icon-inline-size);
1598
+ inline-size: var(--bf-disclosure-icon-inline-size);
1599
+ transition: transform 120ms ease;
1600
+ }
1601
+
1602
+ :where(.bf-theme) :where(.bf-side-navigation-accordion-button[aria-expanded='false'], .bf-side-navigation-expand[aria-expanded='false'])::before {
1603
+ transform: rotate(-90deg);
1604
+ }
1605
+
1606
+ :where(.bf-theme) :where(.bf-side-navigation-expand) {
1607
+ ${typeStyles(body, { includeCase: false })} background: transparent;
1608
+ border: 0;
1609
+ color: inherit;
1610
+ cursor: pointer;
1611
+ inset-block-start: 0;
1612
+ margin: 0;
1613
+ min-block-size: var(--bf-control-box-size-compact);
1614
+ padding-inline: calc(var(--bf-baseline) * 0.5);
1615
+ position: absolute;
1616
+ right: 0;
1617
+ }
1618
+
1619
+ :where(.bf-theme) :where(.bf-side-navigation-list[aria-expanded='false']) {
1620
+ block-size: 0;
1621
+ margin-bottom: 0;
1622
+ opacity: 0;
1623
+ overflow: hidden;
1624
+ padding-bottom: 0;
1625
+ transform: translate3d(0, calc(var(--bf-baseline) * -0.5), 0);
1626
+ visibility: hidden;
1627
+ }
1628
+
1629
+ :where(.bf-theme) :where(.bf-side-navigation-list[aria-expanded='true']) {
1630
+ block-size: auto;
1631
+ opacity: 1;
1632
+ transform: translate3d(0, 0, 0);
1633
+ visibility: visible;
1634
+ }
1635
+
1636
+ :where(.bf-theme) :where(.bf-side-navigation-label) {
1637
+ display: block;
1638
+ min-inline-size: 0;
1639
+ overflow: hidden;
1640
+ text-overflow: ellipsis;
1641
+ }
1642
+
1643
+ :where(.bf-theme) :where(.bf-side-navigation-status) {
1644
+ align-items: center;
1645
+ display: inline-flex;
1646
+ margin-inline-start: auto;
1647
+ }
1648
+
1649
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-icon) {
1650
+ align-items: center;
1651
+ display: inline-flex;
1652
+ flex: 0 0 1rem;
1653
+ inline-size: 1rem;
1654
+ justify-content: center;
1655
+ transform: translateY(var(--bf-side-navigation-icon-optical-offset-block));
1656
+ }
1657
+
1658
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-icon) {
1659
+ transform: none;
1660
+ }
1661
+
1662
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-link, .bf-side-navigation-text, .bf-side-navigation-accordion-button) {
1663
+ align-items: baseline;
1664
+ column-gap: var(--bf-side-navigation-icon-gap);
1665
+ }
1666
+
1667
+ /* Icon-navigation headings share the label edge, not the icon edge. This
1668
+ keeps section names aligned with both the menu copy and a tagged wordmark. */
1669
+ :where(.bf-theme) :where(.bf-side-navigation.is-icons) :where(.bf-side-navigation-heading, .bf-side-navigation-heading.is-linked) {
1670
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + 1rem + var(--bf-side-navigation-icon-gap));
1671
+ }
1672
+
1673
+ :where(.bf-theme) :where(.bf-side-navigation-icon) > svg {
1674
+ block-size: 1rem;
1675
+ display: block;
1676
+ inline-size: 1rem;
1677
+ }
1678
+
1679
+ @media (min-width: 64.75rem) {
1680
+ :where(.bf-theme) :where(.bf-side-navigation-toggle),
1681
+ :where(.bf-theme) :where(.bf-side-navigation-drawer-header),
1682
+ :where(.bf-theme) :where(.bf-side-navigation-overlay) {
1683
+ display: none;
1684
+ }
1685
+
1686
+ :where(.bf-theme) :where(.bf-side-navigation-drawer),
1687
+ :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) {
1688
+ box-shadow: none;
1689
+ display: block;
1690
+ max-inline-size: none;
1691
+ overflow: visible;
1692
+ position: static;
1693
+ transform: translateX(0);
1694
+ }
1695
+
1696
+ :where(.bf-theme) :where(.bf-side-navigation.is-sticky) {
1697
+ max-block-size: 100dvh;
1698
+ overflow-y: auto;
1699
+ position: sticky;
1700
+ top: 0;
1701
+ }
1702
+ }
1703
+
1704
+ :where(.bf-theme) :where(.bf-contextual-menu, .bf-contextual-menu.is-left, .bf-contextual-menu.is-center) {
1705
+ display: inline-block;
1706
+ margin: 0;
1707
+ position: relative;
1708
+ vertical-align: top;
1709
+ }
1710
+
1711
+ :where(.bf-theme) :where(.bf-contextual-menu-dropdown) {
1712
+ background: var(--bf-color-background-default);
1713
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
1714
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
1715
+ display: none;
1716
+ list-style: none;
1717
+ margin: 0;
1718
+ max-inline-size: 21rem;
1719
+ min-inline-size: 10rem;
1720
+ padding: 0;
1721
+ position: absolute;
1722
+ right: 0;
1723
+ top: calc(100% - var(--bf-border-width));
1724
+ width: fit-content;
1725
+ z-index: 9;
1726
+ }
1727
+
1728
+ :where(.bf-theme) :where(.bf-contextual-menu-dropdown[aria-hidden='false']) {
1729
+ display: block;
1730
+ }
1731
+
1732
+ :where(.bf-theme) :where(.bf-contextual-menu.is-left) :where(.bf-contextual-menu-dropdown) {
1733
+ left: 0;
1734
+ right: auto;
1735
+ }
1736
+
1737
+ :where(.bf-theme) :where(.bf-contextual-menu.is-center) :where(.bf-contextual-menu-dropdown) {
1738
+ left: 50%;
1739
+ right: auto;
1740
+ transform: translateX(-50%);
1741
+ }
1742
+
1743
+ :where(.bf-theme) :where(.bf-contextual-menu-group) {
1744
+ display: block;
1745
+ }
1746
+
1747
+ :where(.bf-theme) :where(.bf-contextual-menu-group) + :where(.bf-contextual-menu-group) {
1748
+ box-shadow: inset 0 1px 0 var(--bf-color-border-default);
1749
+ }
1750
+
1751
+ :where(.bf-theme) :where(.bf-contextual-menu-link) {
1752
+ ${typeStyles(body, { includeCase: false })} background: transparent;
1753
+ border: 0;
1754
+ clear: both;
1755
+ color: var(--bf-color-text-default);
1756
+ cursor: pointer;
1757
+ display: block;
1758
+ margin: 0;
1759
+ overflow: hidden;
1760
+ padding-block: var(--bf-control-block-padding-compact);
1761
+ padding-inline: var(--bf-panel-padding-inline);
1762
+ text-align: left;
1763
+ text-decoration: none;
1764
+ text-overflow: ellipsis;
1765
+ white-space: nowrap;
1766
+ width: 100%;
1767
+ }
1768
+
1769
+ :where(.bf-theme) :where(.bf-contextual-menu-link):visited {
1770
+ color: var(--bf-color-text-default);
1771
+ }
1772
+
1773
+ :where(.bf-theme) :where(.bf-contextual-menu-link):hover {
1774
+ background: var(--bf-color-background-hover);
1775
+ text-decoration: none;
1776
+ }
1777
+
1778
+ :where(.bf-theme) :where(.bf-contextual-menu-link):active {
1779
+ background: var(--bf-color-background-active);
1780
+ }
1781
+
1782
+ :where(.bf-theme) :where(.bf-contextual-menu-link):focus:not(:focus-visible) {
1783
+ outline: none;
1784
+ }
1785
+
1786
+ :where(.bf-theme) :where(.bf-contextual-menu-link):focus-visible {
1787
+ outline: 2px solid var(--bf-color-focus);
1788
+ outline-offset: -2px;
1789
+ }
1790
+
1791
+ :where(.bf-theme) :where(.bf-contextual-menu-link.is-disabled, .bf-contextual-menu-link[disabled]) {
1792
+ color: var(--bf-color-text-muted);
1793
+ cursor: default;
1794
+ pointer-events: none;
1795
+ }
1796
+
1797
+ :where(.bf-theme) :where(.bf-tooltip) {
1798
+ display: inline-flex;
1799
+ position: relative;
1800
+ text-decoration: inherit;
1801
+ }
1802
+
1803
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) {
1804
+ display: inline-grid;
1805
+ gap: var(--bf-field-gap);
1806
+ position: relative;
1807
+ }
1808
+
1809
+ :where(.bf-theme) :where(.bf-tooltip-message) {
1810
+ ${typeStyles(body, { includeCase: false })} background-color: var(--bf-color-background-alt);
1811
+ box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default), 0 12px 32px rgba(0, 0, 0, 0.24);
1812
+ color: var(--bf-color-text-default);
1813
+ inline-size: max-content;
1814
+ left: 0;
1815
+ margin: 0;
1816
+ max-inline-size: min(20rem, calc(100vw - (var(--bf-baseline) * 4)));
1817
+ opacity: 0;
1818
+ padding-block-end: ${bodySelectedEndNudge};
1819
+ padding-block-start: ${bodySelectedStartNudge};
1820
+ padding-inline: var(--bf-panel-padding-inline);
1821
+ pointer-events: none;
1822
+ position: absolute;
1823
+ top: 100%;
1824
+ transform: translateY(calc(var(--bf-baseline) - var(--bf-border-width)));
1825
+ visibility: hidden;
1826
+ white-space: normal;
1827
+ z-index: 12;
1828
+ }
1829
+
1830
+ :where(.bf-theme) :where(.bf-tooltip):is(:hover, :focus-within) > :where(.bf-tooltip-message),
1831
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message) {
1832
+ opacity: 1;
1833
+ visibility: visible;
1834
+ }
1835
+
1836
+ :where(.bf-theme) :where(.bf-tooltip-message)::before {
1837
+ block-size: 0;
1838
+ border-bottom: calc(var(--bf-baseline) * 0.5) solid var(--bf-color-background-alt);
1839
+ border-inline: calc(var(--bf-baseline) * 0.5) solid transparent;
1840
+ bottom: 100%;
1841
+ content: "";
1842
+ inline-size: 0;
1843
+ left: calc(var(--bf-baseline) * 0.75);
1844
+ position: absolute;
1845
+ }
1846
+
1847
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message) {
1848
+ left: auto;
1849
+ pointer-events: auto;
1850
+ position: static;
1851
+ top: auto;
1852
+ transform: none;
1853
+ }
1854
+
1855
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message)::before {
1856
+ content: none;
1857
+ }
1858
+
1859
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-center) > :where(.bf-tooltip-message) {
1860
+ left: 50%;
1861
+ transform: translate(-50%, calc(var(--bf-baseline) - var(--bf-border-width)));
1862
+ }
1863
+
1864
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-center) > :where(.bf-tooltip-message)::before {
1865
+ left: 50%;
1866
+ transform: translateX(-50%);
1867
+ }
1868
+
1869
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-right) > :where(.bf-tooltip-message) {
1870
+ left: auto;
1871
+ right: 0;
1872
+ }
1873
+
1874
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-right) > :where(.bf-tooltip-message)::before {
1875
+ left: auto;
1876
+ right: calc(var(--bf-baseline) * 0.75);
1877
+ }
1878
+
1879
+ :where(.bf-theme) :where(.bf-tooltip.is-top-left, .bf-tooltip.is-top-center, .bf-tooltip.is-top-right) > :where(.bf-tooltip-message) {
1880
+ bottom: 100%;
1881
+ top: auto;
1882
+ transform: translateY(calc(var(--bf-baseline) * -1));
1883
+ }
1884
+
1885
+ :where(.bf-theme) :where(.bf-tooltip.is-top-left, .bf-tooltip.is-top-center, .bf-tooltip.is-top-right) > :where(.bf-tooltip-message)::before {
1886
+ border-bottom: 0;
1887
+ border-inline: calc(var(--bf-baseline) * 0.5) solid transparent;
1888
+ border-top: calc(var(--bf-baseline) * 0.5) solid var(--bf-color-background-alt);
1889
+ bottom: auto;
1890
+ top: 100%;
1891
+ }
1892
+
1893
+ :where(.bf-theme) :where(.bf-tooltip.is-top-center) > :where(.bf-tooltip-message) {
1894
+ left: 50%;
1895
+ transform: translate(-50%, calc(var(--bf-baseline) * -1));
1896
+ }
1897
+
1898
+ :where(.bf-theme) :where(.bf-tooltip.is-top-center) > :where(.bf-tooltip-message)::before {
1899
+ left: 50%;
1900
+ transform: translateX(-50%);
1901
+ }
1902
+
1903
+ :where(.bf-theme) :where(.bf-tooltip.is-top-right) > :where(.bf-tooltip-message) {
1904
+ left: auto;
1905
+ right: 0;
1906
+ }
1907
+
1908
+ :where(.bf-theme) :where(.bf-tooltip.is-top-right) > :where(.bf-tooltip-message)::before {
1909
+ left: auto;
1910
+ right: calc(var(--bf-baseline) * 0.75);
1911
+ }
1912
+
1913
+ :where(.bf-theme) :where(nav.bf-pagination) {
1914
+ display: block;
1915
+ }
1916
+
1917
+ :where(.bf-theme) :where(.bf-pagination-items) {
1918
+ align-items: flex-start;
1919
+ display: flex;
1920
+ flex-direction: row;
1921
+ flex-wrap: wrap;
1922
+ gap: var(--bf-field-gap);
1923
+ list-style: none;
1924
+ margin: 0;
1925
+ min-inline-size: 0;
1926
+ padding: 0;
1927
+ }
1928
+
1929
+ :where(.bf-theme) :where(.bf-pagination-item) {
1930
+ align-items: flex-start;
1931
+ display: flex;
1932
+ margin: 0;
1933
+ min-inline-size: 0;
1934
+ padding: 0;
1935
+ }
1936
+
1937
+ :where(.bf-theme) :where(.bf-pagination-item.is-truncation) {
1938
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-muted);
1939
+ min-block-size: var(--bf-control-box-size);
1940
+ padding-block: var(--bf-control-block-padding);
1941
+ padding-inline: calc(var(--bf-baseline) * 0.5);
1942
+ }
1943
+
1944
+ :where(.bf-theme) :where(.bf-pagination-link, .bf-pagination-link.is-previous, .bf-pagination-link.is-next) {
1945
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1946
+ background-color: var(--bf-color-background-default);
1947
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
1948
+ border-radius: var(--bf-radius);
1949
+ color: var(--bf-color-text-default);
1950
+ cursor: pointer;
1951
+ display: inline-flex;
1952
+ gap: calc(var(--bf-baseline) * 0.5);
1953
+ justify-content: center;
1954
+ margin-bottom: ${buttonMarginBottom};
1955
+ min-inline-size: var(--bf-control-box-size);
1956
+ ${controlPadding(buttonBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-action);
1957
+ text-align: center;
1958
+ text-decoration: none;
1959
+ }
1960
+
1961
+ :where(.bf-theme) :where(.bf-pagination-link:hover, .bf-pagination-link.is-previous:hover, .bf-pagination-link.is-next:hover) {
1962
+ background-color: var(--bf-color-background-hover);
1963
+ }
1964
+
1965
+ :where(.bf-theme) :where(.bf-pagination-link:focus:not(:focus-visible), .bf-pagination-link.is-previous:focus:not(:focus-visible), .bf-pagination-link.is-next:focus:not(:focus-visible)) {
1966
+ outline: none;
1967
+ }
1968
+
1969
+ :where(.bf-theme) :where(.bf-pagination-link:focus-visible, .bf-pagination-link.is-previous:focus-visible, .bf-pagination-link.is-next:focus-visible) {
1970
+ outline: 2px solid var(--bf-color-focus);
1971
+ outline-offset: 2px;
1972
+ }
1973
+
1974
+ :where(.bf-theme) :where(.bf-pagination-link.is-active, .bf-pagination-link[aria-current='page'], .bf-pagination-link[aria-current='true']) {
1975
+ background-color: var(--bf-color-background-active);
1976
+ }
1977
+
1978
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous, .bf-pagination-link.is-next)::before,
1979
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous, .bf-pagination-link.is-next)::after {
1980
+ background-image: var(--bf-ui-icon-chevron-down);
1981
+ background-position: center;
1982
+ background-repeat: no-repeat;
1983
+ background-size: 1rem 1rem;
1984
+ block-size: 1rem;
1985
+ content: "";
1986
+ display: inline-block;
1987
+ inline-size: 1rem;
1988
+ }
1989
+
1990
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous)::before {
1991
+ transform: rotate(90deg);
1992
+ }
1993
+
1994
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous)::after {
1995
+ display: none;
1996
+ }
1997
+
1998
+ :where(.bf-theme) :where(.bf-pagination-link.is-next)::after {
1999
+ transform: rotate(-90deg);
2000
+ }
2001
+
2002
+ :where(.bf-theme) :where(.bf-pagination-link.is-next)::before {
2003
+ display: none;
2004
+ }
2005
+
2006
+ :where(.bf-theme) :where(.bf-pagination-link.is-disabled, .bf-pagination-link.is-previous.is-disabled, .bf-pagination-link.is-next.is-disabled, .bf-pagination-link[aria-disabled='true'], .bf-pagination-link.is-previous[aria-disabled='true'], .bf-pagination-link.is-next[aria-disabled='true']) {
2007
+ cursor: not-allowed;
2008
+ opacity: 0.5;
2009
+ pointer-events: none;
2010
+ }
2011
+
2012
+ :where(.bf-theme) :where(.bf-accordion) {
2013
+ display: grid;
2014
+ min-inline-size: 0;
2015
+ }
2016
+
2017
+ :where(.bf-theme) :where(.bf-accordion-list) {
2018
+ list-style: none;
2019
+ margin: 0;
2020
+ padding: 0;
2021
+ }
2022
+
2023
+ :where(.bf-theme) :where(.bf-accordion-group) {
2024
+ position: relative;
2025
+ }
2026
+
2027
+ :where(.bf-theme) :where(.bf-accordion-group) + :where(.bf-accordion-group)::after {
2028
+ background-color: var(--bf-color-border-default);
2029
+ block-size: var(--bf-border-width);
2030
+ content: "";
2031
+ inset-inline: 0;
2032
+ position: absolute;
2033
+ top: 0;
2034
+ }
2035
+
2036
+ :where(.bf-theme) :where(.bf-accordion-heading) {
2037
+ margin-bottom: 0;
2038
+ }
2039
+
2040
+ :where(.bf-theme) :where(.bf-accordion-tab) {
2041
+ ${typeStyles(body, { includeCase: false })} align-items: center;
2042
+ appearance: none;
2043
+ background: transparent;
2044
+ border: 0;
2045
+ color: var(--bf-color-text-default);
2046
+ cursor: pointer;
2047
+ display: flex;
2048
+ gap: var(--bf-disclosure-gap);
2049
+ inline-size: 100%;
2050
+ justify-content: flex-start;
2051
+ min-block-size: var(--bf-control-box-size);
2052
+ padding-block: var(--bf-control-block-padding);
2053
+ padding-inline: 0;
2054
+ text-align: left;
2055
+ }
2056
+
2057
+ :where(.bf-theme) :where(.bf-accordion-tab):focus:not(:focus-visible) {
2058
+ outline: none;
2059
+ }
2060
+
2061
+ :where(.bf-theme) :where(.bf-accordion-tab):focus-visible {
2062
+ outline: 2px solid var(--bf-color-focus);
2063
+ outline-offset: 2px;
2064
+ }
2065
+
2066
+ :where(.bf-theme) :where(.bf-accordion-tab)::before {
2067
+ background-image: var(--bf-ui-icon-chevron-down);
2068
+ background-position: center;
2069
+ background-repeat: no-repeat;
2070
+ background-size: var(--bf-disclosure-icon-inline-size) var(--bf-disclosure-icon-inline-size);
2071
+ block-size: var(--bf-disclosure-icon-inline-size);
2072
+ content: "";
2073
+ display: inline-block;
2074
+ flex: none;
2075
+ inline-size: var(--bf-disclosure-icon-inline-size);
2076
+ transition: transform 120ms ease;
2077
+ }
2078
+
2079
+ :where(.bf-theme) :where(.bf-accordion-tab[aria-expanded='false'])::before {
2080
+ transform: rotate(-90deg);
2081
+ }
2082
+
2083
+ :where(.bf-theme) :where(.bf-accordion-panel) {
2084
+ margin: 0;
2085
+ overflow: hidden;
2086
+ padding-block-start: var(--bf-baseline);
2087
+ padding-inline-start: calc(var(--bf-accordion-indent) + ${roleFontSizeVar("body", body.fontSize)} + var(--bf-baseline));
2088
+ }
2089
+
2090
+ :where(.bf-theme) :where(.bf-accordion-panel[aria-hidden='true']) {
2091
+ block-size: 0;
2092
+ opacity: 0;
2093
+ padding-block-start: 0;
2094
+ visibility: hidden;
2095
+ }
2096
+
2097
+ :where(.bf-theme) :where(.bf-accordion-panel[aria-hidden='false']) {
2098
+ block-size: auto;
2099
+ opacity: 1;
2100
+ visibility: visible;
2101
+ }
2102
+
2103
+ :where(.bf-theme) :where(.bf-modal) {
2104
+ background: transparent;
2105
+ border: 0;
2106
+ inset: 0;
2107
+ margin: auto;
2108
+ max-inline-size: min(100vw - (var(--bf-baseline) * 8), 36rem);
2109
+ padding: 0;
2110
+ }
2111
+
2112
+ :where(.bf-theme) :where(.bf-modal.is-workflow) {
2113
+ --bf-modal-workflow-viewport-gap: calc(var(--bf-baseline) * 4);
2114
+ --bf-modal-workflow-max-inline-size: 42rem;
2115
+ --bf-modal-workflow-min-inline-size: 32rem;
2116
+ --bf-modal-workflow-max-block-size: 40rem;
2117
+ --bf-modal-workflow-min-block-size: 24rem;
2118
+ block-size: min(calc(100dvh - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-max-block-size));
2119
+ inline-size: min(calc(100vw - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-max-inline-size));
2120
+ max-block-size: calc(100dvh - var(--bf-modal-workflow-viewport-gap));
2121
+ max-inline-size: calc(100vw - var(--bf-modal-workflow-viewport-gap));
2122
+ min-block-size: min(calc(100dvh - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-min-block-size));
2123
+ min-inline-size: min(calc(100vw - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-min-inline-size));
2124
+ overflow: hidden;
2125
+ }
2126
+
2127
+ :where(.bf-theme) :where(.bf-modal.is-workflow.is-resizable) {
2128
+ resize: both;
2129
+ }
2130
+
2131
+ :where(.bf-theme) :where(.bf-modal)::backdrop {
2132
+ background: var(--bf-color-background-overlay);
2133
+ }
2134
+
2135
+ :where(.bf-theme) :where(.bf-modal-dialog) {
2136
+ background: var(--bf-color-background-default);
2137
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
2138
+ display: grid;
2139
+ gap: 0;
2140
+ }
2141
+
2142
+ :where(.bf-theme) :where(.bf-modal.is-workflow > .bf-modal-dialog) {
2143
+ block-size: 100%;
2144
+ grid-template-rows: auto minmax(0, 1fr) auto;
2145
+ inline-size: 100%;
2146
+ min-block-size: 0;
2147
+ overflow: hidden;
2148
+ }
2149
+
2150
+ :where(.bf-theme) :where(.bf-modal-header, .bf-modal-body, .bf-modal-footer) {
2151
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
2152
+ padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
2153
+ padding-inline: var(--bf-panel-padding-inline);
2154
+ }
2155
+
2156
+ :where(.bf-theme) :where(.bf-modal-header) {
2157
+ align-items: start;
2158
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
2159
+ display: flex;
2160
+ gap: var(--bf-field-gap);
2161
+ justify-content: space-between;
2162
+ }
2163
+
2164
+ :where(.bf-theme) :where(.bf-modal-body) {
2165
+ padding-block-end: var(--bf-panel-padding-block);
2166
+ padding-block-start: var(--bf-panel-padding-block);
2167
+ }
2168
+
2169
+ :where(.bf-theme) :where(.bf-modal.is-workflow) :where(.bf-modal-header, .bf-modal-footer) {
2170
+ background: var(--bf-color-background-default);
2171
+ }
2172
+
2173
+ :where(.bf-theme) :where(.bf-modal.is-workflow) :where(.bf-modal-body) {
2174
+ min-block-size: 0;
2175
+ overflow: auto;
2176
+ overscroll-behavior: contain;
2177
+ }
2178
+
2179
+ :where(.bf-theme) :where(.bf-modal-title) {
2180
+ ${typeStyles(h4, { includeCase: false })} margin: 0 0 var(--bf-h4-margin-bottom);
2181
+ padding-block-end: 0;
2182
+ padding-block-start: var(--bf-h4-nudge-start);
2183
+ }
2184
+
2185
+ :where(.bf-theme) :where(.bf-modal-footer) {
2186
+ align-items: start;
2187
+ border-top: var(--bf-border-width) solid var(--bf-color-border-default);
2188
+ display: flex;
2189
+ flex-wrap: wrap;
2190
+ gap: var(--bf-field-gap);
2191
+ justify-content: flex-end;
2192
+ }
2193
+
2194
+ :where(.bf-theme) :where(.bf-modal-close) {
2195
+ ${typeStyles(body, { includeCase: false })} appearance: none;
2196
+ background: transparent;
2197
+ border: 0;
2198
+ color: var(--bf-color-text-default);
2199
+ cursor: pointer;
2200
+ padding: 0;
2201
+ }
2202
+
2203
+ :where(.bf-theme) :where(.bf-code-snippet) {
2204
+ display: grid;
2205
+ gap: 0;
2206
+ margin: 0;
2207
+ min-inline-size: 0;
2208
+ }
2209
+
2210
+ :where(.bf-theme) :where(.bf-code-snippet.is-bordered) {
2211
+ box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default);
2212
+ }
2213
+
2214
+ :where(.bf-theme) :where(.bf-code-snippet-header) {
2215
+ align-items: start;
2216
+ background: var(--bf-color-background-active);
2217
+ box-shadow: inset 0 -1px 0 var(--bf-color-border-default);
2218
+ display: flex;
2219
+ flex-wrap: wrap;
2220
+ justify-content: space-between;
2221
+ min-inline-size: 0;
2222
+ }
2223
+
2224
+ :where(.bf-theme) :where(.bf-code-snippet-header.is-stacked) {
2225
+ flex-direction: column;
2226
+ }
2227
+
2228
+ :where(.bf-theme) :where(.bf-code-snippet-title) {
2229
+ ${typeStyles(h6, { includeCase: false })} color: var(--bf-color-text-default);
2230
+ flex: 1 1 14rem;
2231
+ margin: 0;
2232
+ overflow-wrap: anywhere;
2233
+ padding-block: var(--bf-panel-padding-block);
2234
+ padding-inline: var(--bf-panel-padding-inline);
2235
+ }
2236
+
2237
+ :where(.bf-theme) :where(.bf-code-snippet-dropdowns) {
2238
+ display: flex;
2239
+ flex: 1 0 auto;
2240
+ flex-wrap: wrap;
2241
+ justify-content: flex-end;
2242
+ margin-inline-start: auto;
2243
+ min-inline-size: 0;
2244
+ }
2245
+
2246
+ :where(.bf-theme) :where(.bf-code-snippet-header.is-stacked) :where(.bf-code-snippet-dropdowns) {
2247
+ justify-content: stretch;
2248
+ margin-inline-start: 0;
2249
+ box-shadow: inset 0 1px 0 var(--bf-color-border-default);
2250
+ width: 100%;
2251
+ }
2252
+
2253
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown) {
2254
+ ${typeStyles(body, { includeCase: false })} appearance: none;
2255
+ background: transparent;
2256
+ border: 0;
2257
+ color: var(--bf-color-text-default);
2258
+ cursor: pointer;
2259
+ margin: 0;
2260
+ min-block-size: calc(${bodyLineHeight} + (var(--bf-panel-padding-block) * 2));
2261
+ min-inline-size: 0;
2262
+ padding-block: var(--bf-panel-padding-block);
2263
+ padding-inline: var(--bf-panel-padding-inline);
2264
+ text-align: start;
2265
+ }
2266
+
2267
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown) + :where(.bf-code-snippet-dropdown) {
2268
+ box-shadow: inset 1px 0 0 var(--bf-color-border-default);
2269
+ }
2270
+
2271
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown):focus:not(:focus-visible) {
2272
+ outline: none;
2273
+ }
2274
+
2275
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown):focus-visible {
2276
+ outline: 2px solid var(--bf-color-focus);
2277
+ outline-offset: -2px;
2278
+ }
2279
+
2280
+ :where(.bf-theme) :where(.bf-code-snippet-block, .bf-code-snippet-block.is-icon, .bf-code-snippet-block.is-numbered) {
2281
+ background: var(--bf-color-background-alt);
2282
+ color: var(--bf-color-text-default);
2283
+ display: block;
2284
+ font-family: "Ubuntu Sans Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
2285
+ font-size: ${roleFontSizeVar("body", body.fontSize)};
2286
+ line-height: ${bodyLineHeight};
2287
+ margin: 0;
2288
+ max-inline-size: 100%;
2289
+ min-inline-size: 0;
2290
+ overflow-x: auto;
2291
+ padding-block: var(--bf-panel-padding-block);
2292
+ padding-inline: var(--bf-panel-padding-inline);
2293
+ tab-size: 2;
2294
+ white-space: pre;
2295
+ }
2296
+
2297
+ :where(.bf-theme) :where(.bf-code-snippet-block, .bf-code-snippet-block.is-icon, .bf-code-snippet-block.is-numbered) > :where(code) {
2298
+ display: block;
2299
+ font: inherit;
2300
+ }
2301
+
2302
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-wrapped, .bf-code-snippet-block.is-icon.is-wrapped) {
2303
+ white-space: pre-wrap;
2304
+ }
2305
+
2306
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon) {
2307
+ cursor: copy;
2308
+ padding-inline-start: calc(var(--bf-panel-padding-inline) + (var(--bf-baseline) * 3));
2309
+ position: relative;
2310
+ }
2311
+
2312
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon)::before {
2313
+ ${typeStyles(h6, { includeCase: false })} color: var(--bf-color-text-muted);
2314
+ content: "$";
2315
+ inset-inline-start: var(--bf-panel-padding-inline);
2316
+ inset-block-start: var(--bf-panel-padding-block);
2317
+ position: absolute;
2318
+ }
2319
+
2320
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-windows-prompt)::before {
2321
+ content: ">";
2322
+ }
2323
+
2324
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-url)::before {
2325
+ content: "\\1F517";
2326
+ }
2327
+
2328
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-copied) {
2329
+ background: color-mix(in srgb, var(--bf-color-background-alt) 78%, var(--bf-color-background-information-default));
2330
+ box-shadow: inset 0 0 0 1px var(--bf-color-border-information);
2331
+ }
2332
+
2333
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus:not(:focus-visible) {
2334
+ outline: none;
2335
+ }
2336
+
2337
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus-visible {
2338
+ outline: 2px solid var(--bf-color-focus);
2339
+ outline-offset: -2px;
2340
+ }
2341
+
2342
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-numbered) {
2343
+ counter-reset: code-line;
2344
+ }
2345
+
2346
+ :where(.bf-theme) :where(.bf-code-snippet-line) {
2347
+ counter-increment: code-line;
2348
+ display: block;
2349
+ min-block-size: ${bodyLineHeight};
2350
+ }
2351
+
2352
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-numbered) :where(.bf-code-snippet-line)::before {
2353
+ color: var(--bf-color-text-muted);
2354
+ content: counter(code-line);
2355
+ display: inline-block;
2356
+ font-variant-numeric: tabular-nums;
2357
+ min-inline-size: calc(var(--bf-baseline) * 5);
2358
+ padding-inline-end: var(--bf-panel-padding-inline);
2359
+ text-align: right;
2360
+ user-select: none;
2361
+ }
2362
+
2363
+ :where(.bf-theme) :where(.bf-application) {
2364
+ background: var(--bf-color-background-default);
2365
+ display: grid;
2366
+ grid-template-areas:
2367
+ "main"
2368
+ "aside";
2369
+ grid-template-columns: minmax(0, 1fr);
2370
+ grid-template-rows: minmax(0, 1fr) min-content;
2371
+ min-block-size: 100%;
2372
+ overflow: hidden;
2373
+ position: relative;
2374
+ width: 100%;
2375
+ }
2376
+
2377
+ :where(.bf-theme) :where(.bf-application.is-fill) {
2378
+ block-size: 100dvb;
2379
+ max-block-size: 100dvb;
2380
+ min-block-size: 100dvb;
2381
+ }
2382
+
2383
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)) {
2384
+ grid-template-areas:
2385
+ "navigation-bar"
2386
+ "main"
2387
+ "aside";
2388
+ grid-template-rows: min-content minmax(0, 1fr) min-content;
2389
+ }
2390
+
2391
+ :where(.bf-theme) :where(.bf-navigation-bar) {
2392
+ background: var(--bf-color-background-alt);
2393
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
2394
+ grid-area: navigation-bar;
2395
+ min-block-size: var(--bf-navigation-bar-min-block-size);
2396
+ min-inline-size: 0;
2397
+ position: relative;
2398
+ z-index: 40;
2399
+ }
2400
+
2401
+ :where(.bf-theme) :where(.bf-navigation) {
2402
+ grid-column: 1 / -1;
2403
+ grid-row: 1 / -1;
2404
+ min-block-size: 0;
2405
+ min-inline-size: 0;
2406
+ pointer-events: none;
2407
+ position: relative;
2408
+ z-index: 41;
2409
+ }
2410
+
2411
+ :where(.bf-theme) :where(.bf-navigation-overlay) {
2412
+ background: var(--bf-color-background-overlay);
2413
+ inset: 0;
2414
+ opacity: 0;
2415
+ pointer-events: none;
2416
+ position: fixed;
2417
+ transition: opacity 160ms ease, visibility 160ms ease;
2418
+ visibility: hidden;
2419
+ z-index: 41;
2420
+ }
2421
+
2422
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-overlay) {
2423
+ opacity: 1;
2424
+ pointer-events: auto;
2425
+ visibility: visible;
2426
+ }
2427
+
2428
+ :where(.bf-theme) :where(.bf-navigation-drawer) {
2429
+ background: var(--bf-color-background-alt);
2430
+ block-size: 100dvh;
2431
+ border-inline-end: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
2432
+ bottom: 0;
2433
+ inline-size: min(100%, var(--bf-application-navigation-width));
2434
+ left: 0;
2435
+ max-inline-size: 100%;
2436
+ overflow: auto;
2437
+ pointer-events: auto;
2438
+ position: fixed;
2439
+ top: 0;
2440
+ transform: translateX(-100%);
2441
+ transition: transform 160ms ease, box-shadow 160ms ease, visibility 160ms ease;
2442
+ visibility: hidden;
2443
+ z-index: 42;
2444
+ }
2445
+
2446
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-drawer) {
2447
+ box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
2448
+ transform: translateX(0);
2449
+ visibility: visible;
2450
+ }
2451
+
2452
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.is-fading-when-collapsed, .bf-side-navigation-heading, .bf-side-navigation-status) {
2453
+ display: none;
2454
+ }
2455
+
2456
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-label) {
2457
+ block-size: 1px;
2458
+ clip-path: inset(50%);
2459
+ inline-size: 1px;
2460
+ max-inline-size: 1px;
2461
+ opacity: 0;
2462
+ overflow: hidden;
2463
+ pointer-events: none;
2464
+ position: absolute;
2465
+ white-space: nowrap;
2466
+ }
2467
+
2468
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list .bf-side-navigation-list) {
2469
+ display: none;
2470
+ }
2471
+
2472
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-link, .bf-side-navigation-text) {
2473
+ align-items: center;
2474
+ justify-content: center;
2475
+ padding-inline: calc(var(--bf-baseline) * 1.25);
2476
+ }
2477
+
2478
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list) {
2479
+ border-bottom-color: transparent;
2480
+ }
2481
+
2482
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-item.is-title > .bf-side-navigation-link, .bf-side-navigation-item.is-title > .bf-side-navigation-text) {
2483
+ padding-inline: calc(var(--bf-baseline) * 1.25);
2484
+ }
2485
+
2486
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned:not(.is-collapsed))) {
2487
+ grid-template-areas: "main aside";
2488
+ grid-template-columns: minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
2489
+ grid-template-rows: minmax(0, 1fr);
2490
+ }
2491
+
2492
+ :where(.bf-theme) :where(.bf-main) {
2493
+ grid-area: main;
2494
+ min-block-size: 0;
2495
+ min-inline-size: 0;
2496
+ overflow: auto;
2497
+ }
2498
+
2499
+ :where(.bf-theme) :where(.bf-application-overlay) {
2500
+ background: var(--bf-color-background-overlay);
2501
+ inset: 0;
2502
+ opacity: 0;
2503
+ pointer-events: none;
2504
+ position: absolute;
2505
+ transition: opacity 160ms ease, visibility 160ms ease;
2506
+ visibility: hidden;
2507
+ z-index: 20;
2508
+ }
2509
+
2510
+ :where(.bf-theme) :where(.bf-application.is-drawer-expanded) > :where(.bf-application-overlay) {
2511
+ opacity: 1;
2512
+ pointer-events: auto;
2513
+ visibility: visible;
2514
+ }
2515
+
2516
+ :where(.bf-theme) :where(.bf-aside) {
2517
+ background: var(--bf-color-background-default);
2518
+ border-inline-start: var(--bf-border-width) solid var(--bf-color-border-default);
2519
+ grid-area: aside;
2520
+ inline-size: 100%;
2521
+ min-block-size: 0;
2522
+ min-inline-size: 0;
2523
+ overflow: auto;
2524
+ position: relative;
2525
+ }
2526
+
2527
+ :where(.bf-theme) :where(.bf-aside.is-overlay, .bf-aside.is-drawer) {
2528
+ align-self: stretch;
2529
+ block-size: auto;
2530
+ box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
2531
+ bottom: 0;
2532
+ grid-column: 1 / -1;
2533
+ grid-row: 1 / -1;
2534
+ inline-size: min(100%, var(--bf-application-aside-width));
2535
+ justify-self: end;
2536
+ left: auto;
2537
+ max-inline-size: 100%;
2538
+ min-block-size: 100%;
2539
+ pointer-events: none;
2540
+ position: absolute;
2541
+ right: 0;
2542
+ top: 0;
2543
+ transform: translateX(100%);
2544
+ transition: transform 160ms ease, visibility 160ms ease, box-shadow 160ms ease;
2545
+ visibility: hidden;
2546
+ z-index: 30;
2547
+ }
2548
+
2549
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-icon, .bf-aside.is-drawer.is-icon) {
2550
+ inline-size: min(100%, var(--bf-application-drawer-width-icon));
2551
+ }
2552
+
2553
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-small, .bf-aside.is-drawer.is-small) {
2554
+ inline-size: min(100%, var(--bf-application-drawer-width-small-max));
2555
+ }
2556
+
2557
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-medium, .bf-aside.is-drawer.is-medium) {
2558
+ inline-size: min(100%, var(--bf-application-drawer-width-medium-max));
2559
+ }
2560
+
2561
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-large, .bf-aside.is-drawer.is-large) {
2562
+ inline-size: min(100%, var(--bf-application-drawer-width-large));
2563
+ }
2564
+
2565
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-small)) {
2566
+ --bf-application-aside-width: var(--bf-application-drawer-width-small-max);
2567
+ }
2568
+
2569
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-medium)) {
2570
+ --bf-application-aside-width: var(--bf-application-drawer-width-medium);
2571
+ }
2572
+
2573
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-large)) {
2574
+ --bf-application-aside-width: min(var(--bf-application-drawer-width-large), var(--bf-application-drawer-width-medium-max));
2575
+ }
2576
+
2577
+ :where(.bf-theme) :where(.bf-application.is-drawer-expanded) > :where(.bf-aside.is-overlay, .bf-aside.is-drawer),
2578
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-open, .bf-aside.is-drawer.is-open) {
2579
+ pointer-events: auto;
2580
+ transform: translateX(0);
2581
+ visibility: visible;
2582
+ }
2583
+
2584
+ :where(.bf-theme) :where(.bf-aside.is-collapsed) {
2585
+ display: none;
2586
+ }
2587
+
2588
+ :where(.bf-theme) :where(.bf-aside.is-pinned) {
2589
+ display: block;
2590
+ }
2591
+
2592
+ :where(.bf-theme) :where(.bf-aside.is-overlay, .bf-aside.is-drawer) :where(.bf-application-aside-resize-handle) {
2593
+ display: none;
2594
+ }
2595
+
2596
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle) {
2597
+ background: transparent;
2598
+ border: 0;
2599
+ cursor: ew-resize;
2600
+ display: none;
2601
+ inset-block: 0;
2602
+ inset-inline-start: calc(var(--bf-baseline) * -3);
2603
+ outline: none;
2604
+ position: absolute;
2605
+ touch-action: none;
2606
+ user-select: none;
2607
+ -webkit-user-select: none;
2608
+ width: calc(var(--bf-baseline) * 6);
2609
+ z-index: 3;
2610
+ }
2611
+
2612
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned:not(.is-collapsed)))
2613
+ :where(.bf-aside.is-pinned:not(.is-collapsed))
2614
+ > :where(.bf-application-aside-resize-handle) {
2615
+ display: block;
2616
+ }
2617
+
2618
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle)::after {
2619
+ background: var(--bf-color-border-default);
2620
+ border-radius: 999px;
2621
+ content: "";
2622
+ inset-block: var(--bf-panel-padding-block);
2623
+ inset-inline-start: calc(50% - 1px);
2624
+ opacity: 0.95;
2625
+ position: absolute;
2626
+ transition: background-color 120ms ease, opacity 120ms ease;
2627
+ width: 2px;
2628
+ }
2629
+
2630
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):hover::after,
2631
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):focus-visible::after,
2632
+ :where(.bf-theme) :where(.bf-application.is-resizing-aside) :where(.bf-application-aside-resize-handle)::after {
2633
+ background: var(--bf-application-resize-handle-active);
2634
+ }
2635
+
2636
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):focus-visible {
2637
+ outline: 2px solid var(--bf-application-resize-handle-focus-ring);
2638
+ outline-offset: -2px;
2639
+ }
2640
+
2641
+ @media (min-width: 64.75rem) {
2642
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)) {
2643
+ grid-template-areas:
2644
+ "navigation-bar navigation-bar"
2645
+ "navigation main";
2646
+ grid-template-columns: minmax(0, var(--bf-application-navigation-width)) minmax(0, 1fr);
2647
+ grid-template-rows: min-content minmax(0, 1fr);
2648
+ }
2649
+
2650
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)):has(> .bf-aside.is-pinned:not(.is-collapsed)) {
2651
+ grid-template-areas:
2652
+ "navigation-bar navigation-bar navigation-bar"
2653
+ "navigation main aside";
2654
+ grid-template-columns: minmax(0, var(--bf-application-navigation-width)) minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
2655
+ }
2656
+
2657
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation.is-collapsed)) {
2658
+ --bf-application-navigation-width: var(--bf-application-navigation-width-collapsed);
2659
+ }
2660
+
2661
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-navigation-drawer > .bf-panel > .bf-panel-header) {
2662
+ display: none;
2663
+ }
2664
+
2665
+ :where(.bf-theme) :where(.bf-navigation) {
2666
+ grid-area: navigation;
2667
+ pointer-events: auto;
2668
+ }
2669
+
2670
+ :where(.bf-theme) :where(.bf-navigation-overlay) {
2671
+ display: none;
2672
+ }
2673
+
2674
+ :where(.bf-theme) :where(.bf-navigation-drawer),
2675
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-drawer) {
2676
+ block-size: 100%;
2677
+ box-shadow: none;
2678
+ inline-size: 100%;
2679
+ min-block-size: 0;
2680
+ position: static;
2681
+ transform: translateX(0);
2682
+ visibility: visible;
2683
+ }
2684
+
2685
+ :where(.bf-theme) :where(.bf-navigation.is-pinned) {
2686
+ position: sticky;
2687
+ top: 0;
2688
+ }
2689
+ }
2690
+
2691
+ ${navigationLayoutCss()}
2692
+
2693
+ ${documentNavigationCss({
2694
+ bodyCaseTypeStyles: typeStyles(body),
2695
+ bodyTypeStyles,
2696
+ headingTypeStyles: typeStyles(h6, { includeCase: false })
2697
+ })}
2698
+
2699
+ ${tieredListEqualHeightRowCss()}
2700
+ `;
2701
+ }