baseline-foundry 0.1.3 → 0.1.5

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 (84) hide show
  1. package/README.md +577 -553
  2. package/config/experiments/ibm-plex-engine-smoke.json +115 -115
  3. package/config/experiments/ubuntu-engine-smoke.json +115 -115
  4. package/config/foundation-theme.json +110 -110
  5. package/config/tiers/app.json +116 -116
  6. package/config/tiers/documentation.json +116 -116
  7. package/config/tiers/editorial.json +116 -116
  8. package/config/tiers/os.json +116 -116
  9. package/dist/baseline-grid-overlay.js +43 -43
  10. package/dist/build.js +4 -4
  11. package/dist/code-snippet.js +1 -1
  12. package/dist/css-app-tier.js +78 -73
  13. package/dist/css-components/article-pagination.js +141 -140
  14. package/dist/css-components/button-actions.js +181 -161
  15. package/dist/css-components/cards-options.js +176 -176
  16. package/dist/css-components/chip-badge-status.d.ts +0 -3
  17. package/dist/css-components/chip-badge-status.js +174 -159
  18. package/dist/css-components/content-card.d.ts +7 -7
  19. package/dist/css-components/content-card.js +498 -497
  20. package/dist/css-components/control-row.d.ts +1 -1
  21. package/dist/css-components/control-row.js +15 -15
  22. package/dist/css-components/cta-figure-aspect.js +120 -120
  23. package/dist/css-components/document-navigation.js +427 -390
  24. package/dist/css-components/editorial-content.js +42 -42
  25. package/dist/css-components/icon.js +72 -72
  26. package/dist/css-components/interactive-feedback.js +239 -217
  27. package/dist/css-components/interactive-tables.js +160 -155
  28. package/dist/css-components/legacy-navigation.d.ts +8 -0
  29. package/dist/css-components/legacy-navigation.js +816 -0
  30. package/dist/css-components/linked-logo-site-layout.d.ts +3 -3
  31. package/dist/css-components/linked-logo-site-layout.js +177 -180
  32. package/dist/css-components/list-tree.js +96 -94
  33. package/dist/css-components/list.js +9 -7
  34. package/dist/css-components/logo-media.d.ts +6 -6
  35. package/dist/css-components/logo-media.js +218 -207
  36. package/dist/css-components/navigation-layout.js +144 -144
  37. package/dist/css-components/panel.js +148 -144
  38. package/dist/css-components/search-box-and-filter.d.ts +0 -1
  39. package/dist/css-components/search-box-and-filter.js +263 -264
  40. package/dist/css-components/sites-editorial-ports.d.ts +3 -4
  41. package/dist/css-components/sites-editorial-ports.js +279 -247
  42. package/dist/css-components/sites-foundation.js +142 -146
  43. package/dist/css-components/sites-rich-lists.d.ts +5 -5
  44. package/dist/css-components/sites-rich-lists.js +339 -349
  45. package/dist/css-components/static-content-ports.d.ts +3 -3
  46. package/dist/css-components/static-content-ports.js +200 -186
  47. package/dist/css-components/tab-section.d.ts +3 -3
  48. package/dist/css-components/tab-section.js +93 -85
  49. package/dist/css-components/table.js +76 -75
  50. package/dist/css-components/tabs-choice-breadcrumbs.js +307 -303
  51. package/dist/css-components/tiered-list-equal-height-row.js +271 -271
  52. package/dist/css-components.js +1881 -2554
  53. package/dist/css-grid.d.ts +1 -1
  54. package/dist/css-grid.js +183 -173
  55. package/dist/css.js +317 -241
  56. package/dist/experiments/ibm-plex-engine-smoke/styles.css +894 -538
  57. package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +2 -2
  58. package/dist/experiments/ibm-plex-engine-smoke/tokens.json +1 -1
  59. package/dist/in-page-navigation.js +1 -1
  60. package/dist/presets/app-tier/styles.css +928 -568
  61. package/dist/presets/app-tier/surfaces.json +17 -17
  62. package/dist/presets/app-tier/tokens.json +7 -7
  63. package/dist/presets/prose/styles.css +919 -562
  64. package/dist/presets/prose/surfaces.json +17 -17
  65. package/dist/presets/prose/tokens.json +1 -1
  66. package/dist/resizable-aside.js +12 -4
  67. package/dist/styles.css +919 -562
  68. package/dist/surfaces.json +17 -17
  69. package/dist/tiers/app/styles.css +928 -568
  70. package/dist/tiers/app/surfaces.json +17 -17
  71. package/dist/tiers/app/tokens.json +7 -7
  72. package/dist/tiers/documentation/styles.css +920 -563
  73. package/dist/tiers/documentation/surfaces.json +17 -17
  74. package/dist/tiers/documentation/tokens.json +2 -2
  75. package/dist/tiers/editorial/styles.css +919 -562
  76. package/dist/tiers/editorial/surfaces.json +17 -17
  77. package/dist/tiers/editorial/tokens.json +1 -1
  78. package/dist/tiers/os/styles.css +925 -568
  79. package/dist/tiers/os/surfaces.json +17 -17
  80. package/dist/tiers/os/tokens.json +7 -7
  81. package/dist/tokens.json +1 -1
  82. package/dist/types.d.ts +1 -1
  83. package/docs/publishing.md +31 -14
  84. package/package.json +119 -108
@@ -12,6 +12,7 @@ import { interactiveFeedbackCss } from "./css-components/interactive-feedback.js
12
12
  import { interactiveTablesCss } from "./css-components/interactive-tables.js";
13
13
  import { listCss } from "./css-components/list.js";
14
14
  import { listTreeCss } from "./css-components/list-tree.js";
15
+ import { legacyNavigationCss } from "./css-components/legacy-navigation.js";
15
16
  import { linkedLogoSiteLayoutCss } from "./css-components/linked-logo-site-layout.js";
16
17
  import { logoMediaCss } from "./css-components/logo-media.js";
17
18
  import { navigationLayoutCss } from "./css-components/navigation-layout.js";
@@ -94,123 +95,143 @@ export function componentsCss(tokens, themeSurfaces) {
94
95
  const buttonBlockPaddingVar = "var(--bf-button-block-padding)";
95
96
  const bodyLineHeight = roleLineHeightVar("body", body.lineHeight);
96
97
  const inputMarginBottom = controlMarginBottomExpression(bodyLineHeight, inputBlockPaddingVar, "0rem");
97
- const buttonMarginBottom = controlMarginBottomExpression(bodyLineHeight, buttonBlockPaddingVar, "0rem");
98
+ const singleLineRowMarginBottom = controlMarginBottomExpression(bodyLineHeight, buttonBlockPaddingVar, "0rem");
99
+ const buttonMarginBottom = "var(--bf-single-line-row-margin-block-end)";
98
100
  const bodySelectedStartNudge = roleSelectedStartNudgeVar("body", body.nudgeTop);
99
101
  const bodySelectedEndNudge = roleSelectedEndNudgeVar("body");
100
102
  const h4LineHeight = roleLineHeightVar("h4", h4.lineHeight);
101
103
  const h5LineHeight = roleLineHeightVar("h5", h5.lineHeight);
102
- const h5SelectedStartNudge = roleSelectedStartNudgeVar("h5", h5.nudgeTop);
103
- const h5SelectedEndNudge = roleSelectedEndNudgeVar("h5");
104
104
  const h6LineHeight = roleLineHeightVar("h6", h6.lineHeight);
105
105
  const bodyTypeStyles = typeStyles(body, { includeCase: false });
106
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
-
107
+ const buttonPadding = " padding-block: var(--bf-single-line-row-padding-block);\n";
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-icon-label-inline-offset: calc(var(--bf-disclosure-icon-inline-size) + var(--bf-disclosure-gap));
113
+ --bf-disclosure-label-inline-offset: var(--bf-icon-label-inline-offset);
114
+ /* Every component-owned inline start resolves to one of these three rails.
115
+ Field and action values remain tier inputs; continuation is the shared
116
+ icon/mark-to-copy line. Structural page, grid and navigation-depth offsets
117
+ are deliberately outside this component inset contract. */
118
+ --bf-component-inline-inset-field: var(--bf-control-inline-padding-field);
119
+ --bf-component-inline-inset-action: var(--bf-control-inline-padding-action);
120
+ --bf-component-inline-inset-continuation: var(--bf-disclosure-label-inline-offset);
121
+ --bf-input-block-padding: ${bodySelectedStartNudge};
122
+ --bf-button-block-padding: ${bodySelectedStartNudge};
123
+ /* One border-aware occupied-block contract for body-sized, single-line UI.
124
+ Components may paint their block borders differently, but their text line,
125
+ padding and trailing baseline compensation must resolve through this pair. */
126
+ --bf-single-line-row-padding-block: max(0rem, calc(var(--bf-button-block-padding) - var(--bf-border-width)));
127
+ --bf-single-line-row-margin-block-end: ${singleLineRowMarginBottom};
128
+ --bf-single-line-row-visual-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-control-visual-size)", bodySelectedStartNudge)};
129
+ --bf-slider-track-size: calc(var(--bf-baseline) * 0.25);
130
+ --bf-slider-row-block-size: max(var(--bf-control-box-size-compact), calc(${bodySelectedStartNudge} + ${bodyLineHeight} + ${bodySelectedEndNudge}));
131
+ --bf-slider-track-offset: ${alignedVisualStart(bodyLineHeight, "var(--bf-slider-track-size)", bodySelectedStartNudge)};
132
+ --bf-table-row-border-size: var(--bf-border-width);
133
+ --bf-table-row-padding-block-start: ${bodySelectedStartNudge};
134
+ --bf-table-row-content-size: calc(${bodyLineHeight} + (var(--bf-table-row-padding-block-start) * 2) + var(--bf-table-row-border-size));
135
+ --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)));
136
+ --bf-table-row-padding-block-end: max(0rem, calc(var(--bf-table-row-block-size) - ${bodyLineHeight} - var(--bf-table-row-padding-block-start) - var(--bf-table-row-border-size)));
137
+ --bf-table-row-line-height: ${bodyLineHeight};
138
+ --bf-switch-track-offset: var(--bf-single-line-row-visual-offset);
139
+ --bf-tick-box-offset: var(--bf-single-line-row-visual-offset);
140
+ --bf-leading-mark-size: var(--bf-control-visual-size);
141
+ --bf-leading-mark-gap: var(--bf-component-inline-inset-field);
142
+ --bf-leading-mark-offset: calc(var(--bf-leading-mark-size) + var(--bf-leading-mark-gap));
143
+ --bf-leading-mark-group-inset: calc(var(--bf-component-inline-inset-continuation) - var(--bf-leading-mark-offset));
144
+ --bf-tick-label-offset: var(--bf-leading-mark-offset);
145
+ --bf-radio-dot-size: calc((var(--bf-control-visual-size) * 0.375) + var(--bf-border-width));
146
+ --bf-list-marker-dot-size: calc(var(--bf-border-width) * 4);
147
+ --bf-app-drawer-width-icon: 2rem;
148
+ --bf-app-drawer-width-small: 15rem;
149
+ --bf-app-drawer-width-small-max: 20rem;
150
+ --bf-app-drawer-width-medium: 29.0625rem;
151
+ --bf-app-drawer-width-medium-max: 40rem;
152
+ --bf-app-drawer-width-large: min(100vw, max(40rem, 50vw));
153
+ --bf-app-aside-width: var(--bf-app-drawer-width-medium);
154
+ --bf-app-aside-width-min: var(--bf-app-drawer-width-small);
155
+ --bf-app-aside-width-max: var(--bf-app-drawer-width-medium-max);
156
+ --bf-app-navigation-width: 15rem;
157
+ --bf-app-navigation-width-collapsed: 3rem;
158
+ --bf-icon-label-optical-offset-block: 0.1875rem;
159
+ --bf-disclosure-icon-optical-offset-block: var(--bf-icon-label-optical-offset-block);
160
+ --bf-side-navigation-icon-optical-offset-block: var(--bf-icon-label-optical-offset-block);
161
+ --bf-side-navigation-icon-gap: 0.625rem;
162
+ --bf-navigation-bar-min-block-size: calc(var(--bf-baseline) * 6);
163
+ --bf-authoring-accent: #f6b73c;
164
+ --bf-authoring-accent-hover: #e0a030;
165
+ --bf-authoring-accent-line: rgba(246, 183, 60, 0.9);
166
+ --bf-authoring-accent-strong: rgba(246, 183, 60, 0.95);
167
+ --bf-authoring-accent-outline: rgba(246, 183, 60, 0.4);
168
+ --bf-authoring-accent-outline-strong: rgba(246, 183, 60, 0.8);
169
+ --bf-authoring-accent-shadow: rgba(246, 183, 60, 0.22);
170
+ --bf-authoring-accent-focus-ring: rgba(246, 183, 60, 0.55);
171
+ --bf-application-resize-handle-active: var(--bf-authoring-accent-strong);
172
+ --bf-application-resize-handle-focus-ring: var(--bf-authoring-accent-focus-ring);
173
+ --bf-control-inline-padding-action-bordered: max(0rem, calc(var(--bf-component-inline-inset-action) - var(--bf-border-width)));
174
+ --bf-top-navigation-link-padding-inline: var(--bf-component-inline-inset-action);
175
+ --bf-top-navigation-end-slot-inline-size: calc(1rem + var(--bf-component-inline-inset-field));
176
+ --bf-top-navigation-search-toggle-inline-size: calc(1rem + (var(--bf-component-inline-inset-field) * 2));
177
+ --bf-top-navigation-link-padding-block: max(var(--bf-body-nudge-start), calc(var(--bf-baseline) * 1.5));
178
+ --bf-top-navigation-search-max-inline-size: 20rem;
179
+ --bf-top-navigation-logo-tag-inline-size: 1.375rem;
180
+ --bf-top-navigation-logo-tag-block-size: 2.375rem;
181
+ --bf-top-navigation-logo-icon-size: 1rem;
182
+ --bf-top-navigation-logo-tag-gap: 0.25rem;
183
+ --bf-top-navigation-logo-icon-bottom-offset: 0.375rem;
184
+ --bf-top-navigation-logo-icon-optical-offset-inline: -0.0125rem;
185
+ --bf-navigation-brand-title-optical-offset-block: 0rem;
186
+ --bf-icon-size-default: 1rem;
187
+ --bf-icon-size-medium: 2.5rem;
188
+ --bf-icon-size-large: 4rem;
189
+ --bf-icon-size-x-large: 4.5rem;
190
+ --bf-icon-size-xx-large: 6rem;
191
+ --bf-leading-icon-size: var(--bf-leading-mark-size);
192
+ --bf-leading-icon-gap: var(--bf-leading-mark-gap);
193
+ --bf-leading-icon-offset: var(--bf-single-line-row-visual-offset);
194
+ --bf-ui-chip-padding-inline: var(--bf-component-inline-inset-field);
195
+ --bf-ui-badge-padding-inline: calc(${bodyLineHeight} * 0.25);
196
+ --bf-ui-badge-overhang: calc(var(--bf-ui-badge-padding-inline) * -0.75);
197
+ --bf-grid-max-inline-size: var(--bf-content-max-width);
198
+ --bf-application-drawer-width-icon: var(--bf-app-drawer-width-icon);
199
+ --bf-application-drawer-width-small: var(--bf-app-drawer-width-small);
200
+ --bf-application-drawer-width-small-max: var(--bf-app-drawer-width-small-max);
201
+ --bf-application-drawer-width-medium: var(--bf-app-drawer-width-medium);
202
+ --bf-application-drawer-width-medium-max: var(--bf-app-drawer-width-medium-max);
203
+ --bf-application-drawer-width-large: var(--bf-app-drawer-width-large);
204
+ --bf-application-aside-width: var(--bf-app-aside-width);
205
+ --bf-application-aside-width-min: var(--bf-app-aside-width-min);
206
+ --bf-application-aside-width-max: var(--bf-app-aside-width-max);
207
+ --bf-application-navigation-width: var(--bf-app-navigation-width);
208
+ --bf-application-navigation-width-collapsed: var(--bf-app-navigation-width-collapsed);
209
+ ${foundryComponentColorVars("light")}
210
+ --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");
211
+ --bf-ui-icon-number-stepper: 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 5.75 8 2l3.75 3.75M4.25 10.25 8 14l3.75-3.75'/%3E%3C/svg%3E");
212
+ --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");
213
+ --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");
214
+ --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");
215
+ --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");
216
+ color: var(--bf-color-text-default);
217
+ }
218
+
219
+ /* DEMO ONLY — Cap-derived component nudges are unreliable (ascender ≠ cap height). */
220
+ :where(.bf-theme.bf-engine-cap) {
221
+ --bf-body-nudge-start: calc(var(--bf-baseline) - mod(calc((${bodyLineHeight} + 1cap) / 2), var(--bf-baseline)));
222
+ --bf-body-nudge-end: calc(var(--bf-baseline) - var(--bf-body-nudge-start));
223
+ --bf-h4-nudge-start: calc(var(--bf-baseline) - mod(calc((${h4LineHeight} + 1cap) / 2), var(--bf-baseline)));
224
+ --bf-h4-nudge-end: calc(var(--bf-baseline) - var(--bf-h4-nudge-start));
225
+ --bf-h5-nudge-start: calc(var(--bf-baseline) - mod(calc((${h5LineHeight} + 1cap) / 2), var(--bf-baseline)));
226
+ --bf-h5-nudge-end: calc(var(--bf-baseline) - var(--bf-h5-nudge-start));
227
+ --bf-h6-nudge-start: calc(var(--bf-baseline) - mod(calc((${h6LineHeight} + 1cap) / 2), var(--bf-baseline)));
228
+ --bf-h6-nudge-end: calc(var(--bf-baseline) - var(--bf-h6-nudge-start));
229
+ }
230
+
231
+ :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) {
232
+ margin-bottom: ${inputMarginBottom};
233
+ }
234
+
214
235
  ${(themeSurfaces ?? []).map(surface => {
215
236
  if (!surface.className) {
216
237
  return "";
@@ -221,2481 +242,1787 @@ ${(themeSurfaces ?? []).map(surface => {
221
242
  const inputBlockPadding = bodySurface && parseRemValue(bodySurface.nudgeTop) > 0
222
243
  ? bodySurface.nudgeTop
223
244
  : 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
-
245
+ return `:where(.bf-theme.${surface.className}) {\n --bf-input-block-padding: ${inputBlockPadding};\n --bf-button-block-padding: ${inputBlockPadding};\n${componentAlignmentVars(surfaceComponents)}\n}\n`;
246
+ }).join("\n")}
247
+
248
+ :where(.bf-theme.is-dark) {
249
+ ${foundryComponentColorVars("dark")}
250
+ --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");
251
+ --bf-ui-icon-number-stepper: 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 5.75 8 2l3.75 3.75M4.25 10.25 8 14l3.75-3.75'/%3E%3C/svg%3E");
252
+ --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");
253
+ --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");
254
+ --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");
255
+ --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");
256
+ color-scheme: dark;
257
+ }
258
+
259
+ :where(.bf-theme.is-light) {
260
+ color-scheme: light;
261
+ }
262
+
263
+ :where(.bf-theme) :where(.bf-tabs-link, .bf-button, .bf-button.is-base, .bf-accordion-tab) {
264
+ margin: 0;
265
+ }
266
+
267
+ .bf-theme button {
268
+ font: inherit;
269
+ }
270
+
271
+
272
+
273
+ :where(.bf-theme) :where(.bf-form-label) {
274
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
275
+ display: block;
276
+ margin: 0 0 var(--bf-body-margin-bottom);
277
+ overflow-wrap: anywhere;
278
+ padding-block-end: 0;
279
+ padding-block-start: ${bodySelectedStartNudge};
280
+ text-align: start;
281
+ }
282
+
283
+ :where(.bf-theme) :where(.bf-form-help) {
284
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-muted);
285
+ display: block;
286
+ margin: 0 0 var(--bf-body-margin-bottom);
287
+ max-inline-size: 42ch;
288
+ overflow-wrap: anywhere;
289
+ padding-block-end: 0;
290
+ padding-block-start: ${bodySelectedStartNudge};
291
+ }
292
+
293
+ :where(.bf-theme) :where(.bf-form-help.is-tight) {
294
+ margin-top: calc(var(--bf-baseline) * -1);
295
+ }
296
+
297
+ :where(.bf-theme) :where(.bf-field) {
298
+ display: grid;
299
+ gap: var(--bf-field-gap);
300
+ margin: 0;
301
+ min-inline-size: 0;
302
+ }
303
+
304
+ :where(.bf-theme) :where(.bf-control) {
305
+ display: grid;
306
+ gap: var(--bf-field-gap);
307
+ min-inline-size: 0;
308
+ }
309
+
310
+ :where(.bf-theme) :where(.bf-field.is-range) {
311
+ align-items: start;
312
+ column-gap: calc(var(--bf-baseline) * 2);
313
+ display: grid;
314
+ grid-template-columns: max-content minmax(0, 1fr);
315
+ row-gap: var(--bf-field-gap);
316
+ }
317
+
318
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-form-label) {
319
+ grid-column: 1;
320
+ }
321
+
322
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-control) {
323
+ grid-column: 2;
324
+ min-inline-size: 0;
325
+ }
326
+
327
+ :where(.bf-theme) :where(.bf-field.is-range) > :where(.bf-form-help) {
328
+ grid-column: 2;
329
+ }
330
+
331
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) {
332
+ grid-template-columns: minmax(0, 1fr);
333
+ }
334
+
335
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) > :where(.bf-control, .bf-form-help) {
336
+ grid-column: 1;
337
+ }
338
+
339
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) > :where(.bf-control) {
340
+ min-inline-size: 0;
341
+ }
342
+
343
+ :where(.bf-theme) :where(.bf-field.is-checkbox) {
344
+ gap: 0;
345
+ }
346
+
347
+ :where(.bf-theme) :where(.bf-field.is-checkbox) :where(.bf-control) {
348
+ gap: 0;
349
+ }
350
+
351
+ :where(.bf-theme) :where(fieldset, .bf-fieldset) {
352
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
353
+ margin: 0;
354
+ min-inline-size: 0;
355
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
356
+ padding-inline: var(--bf-component-inline-inset-continuation);
357
+ padding-block-start: var(--bf-panel-padding-block);
358
+ }
359
+
360
+ :where(.bf-theme) :where(fieldset, .bf-fieldset) > :where(legend, .bf-legend) {
361
+ margin-bottom: 0;
362
+ padding-inline: calc(var(--bf-baseline) * 0.5);
363
+ }
364
+
365
+ :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) {
366
+ ${typeStyles(body, { includeCase: false })} appearance: none;
367
+ background-color: var(--bf-color-background-inputs);
368
+ border: 0 solid transparent;
369
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
370
+ border-top: var(--bf-border-width) solid transparent;
371
+ border-radius: var(--bf-radius);
372
+ color: var(--bf-color-text-default);
373
+ inline-size: 100%;
374
+ max-inline-size: 100%;
375
+ min-inline-size: 0;
376
+ margin-bottom: ${inputMarginBottom};
377
+ ${controlPadding(inputBlockPaddingVar)} padding-inline: var(--bf-component-inline-inset-field);
378
+ }
379
+
380
+ :where(.bf-theme) :where(input[type='color'].bf-color-input) {
381
+ inline-size: 4rem;
382
+ min-block-size: var(--bf-control-box-size);
383
+ padding: calc(var(--bf-baseline) * 0.5);
384
+ }
385
+
386
+ :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 {
387
+ background-color: var(--bf-color-background-hover);
388
+ }
389
+
390
+ :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) {
391
+ outline: none;
392
+ }
393
+
394
+ :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 {
395
+ background-color: var(--bf-color-background-active);
396
+ outline: 0.125rem solid var(--bf-color-focus);
397
+ outline-offset: 0.125rem;
398
+ }
399
+
400
+ :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 {
401
+ cursor: not-allowed;
402
+ opacity: 0.5;
403
+ }
404
+
405
+ :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] {
406
+ background-color: var(--bf-color-background-alt);
407
+ color: var(--bf-color-text-muted);
408
+ }
409
+
410
+ :where(.bf-theme) :where(textarea) {
411
+ block-size: auto;
412
+ min-block-size: calc(var(--bf-control-box-size) * 2);
413
+ resize: vertical;
414
+ }
415
+
416
+ :where(.bf-theme) :where(input[type='file']) {
417
+ ${typeStyles(body, { includeCase: false })} background: transparent;
418
+ border: 0 solid transparent;
419
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
420
+ border-top: var(--bf-border-width) solid transparent;
421
+ color: var(--bf-color-text-default);
422
+ margin-bottom: ${inputMarginBottom};
423
+ max-inline-size: 100%;
424
+ min-inline-size: 0;
425
+ ${controlPadding(inputBlockPaddingVar)} padding-inline: 0;
426
+ width: 100%;
427
+ }
428
+
429
+ :where(.bf-theme) :where(input[type='file'])::file-selector-button {
430
+ ${typeStyles(body, { includeCase: false })} appearance: none;
431
+ background: var(--bf-color-background-alt);
432
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
433
+ border-radius: var(--bf-radius);
434
+ color: var(--bf-color-text-default);
435
+ cursor: pointer;
436
+ margin-inline-end: var(--bf-field-gap);
437
+ min-block-size: var(--bf-control-box-size-compact);
438
+ ${controlPadding(controlCompactBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-action-bordered);
439
+ }
440
+
441
+ :where(.bf-theme) :where(input[type='file'])::file-selector-button:hover {
442
+ background: var(--bf-color-background-hover);
443
+ }
444
+
445
+ :where(.bf-theme) :where(select) {
446
+ background-image: var(--bf-ui-icon-chevron-down);
447
+ background-position: right var(--bf-component-inline-inset-field) center;
448
+ background-repeat: no-repeat;
449
+ background-size: 1rem 1rem;
450
+ overflow: hidden;
451
+ padding-inline-end: calc(var(--bf-component-inline-inset-field) * 2.5);
452
+ text-overflow: ellipsis;
453
+ white-space: nowrap;
454
+ }
455
+
456
+ :where(.bf-theme) :where(input[type='number'], .bf-slider-input) {
457
+ font-variant-numeric: tabular-nums;
458
+ }
459
+
460
+ /* Number fields retain their native input semantics and keyboard stepping,
461
+ while one field-owned background paints the compact pair. Sharing select's
462
+ 1rem canvas and end position avoids a second browser-reserved spin slot. */
463
+ :where(.bf-theme) :where(input[type='number']) {
464
+ appearance: textfield;
465
+ background-image: var(--bf-ui-icon-number-stepper);
466
+ background-position: right var(--bf-component-inline-inset-field) center;
467
+ background-repeat: no-repeat;
468
+ background-size: 1rem 1rem;
469
+ padding-inline-end: calc(var(--bf-component-inline-inset-field) * 2.5);
470
+ }
471
+
472
+ :where(.bf-theme) :where(.bf-slider-input) {
473
+ flex: 0 1 5rem;
474
+ inline-size: min(100%, 5rem);
475
+ justify-self: end;
476
+ max-inline-size: 100%;
477
+ min-inline-size: 0;
478
+ text-align: right;
479
+ }
480
+
481
+ :where(.bf-theme) :where(input[type='number'])::-webkit-inner-spin-button,
482
+ :where(.bf-theme) :where(input[type='number'])::-webkit-outer-spin-button {
483
+ appearance: none;
484
+ margin: 0;
485
+ }
486
+
487
+ :where(.bf-theme) :where(.bf-checkbox, .bf-radio) {
488
+ display: grid;
489
+ margin: 0;
490
+ padding-inline-start: var(--bf-leading-mark-group-inset);
491
+ position: relative;
492
+ }
493
+
494
+ :where(.bf-theme) :where(.bf-checkbox-input, .bf-radio-input) {
495
+ block-size: var(--bf-control-visual-size);
496
+ inline-size: var(--bf-control-visual-size);
497
+ left: 0;
498
+ margin: 0;
499
+ opacity: 0;
500
+ position: absolute;
501
+ top: var(--bf-tick-box-offset);
502
+ }
503
+
504
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label) {
505
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
506
+ border-block: var(--bf-border-width) solid transparent;
507
+ cursor: pointer;
508
+ display: block;
509
+ margin: 0 0 var(--bf-single-line-row-margin-block-end);
510
+ padding-block: var(--bf-single-line-row-padding-block);
511
+ padding-inline-start: var(--bf-tick-label-offset);
512
+ position: relative;
513
+ }
514
+
515
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::before,
516
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::after {
517
+ box-sizing: border-box;
518
+ content: "";
519
+ position: absolute;
520
+ }
521
+
522
+ :where(.bf-theme) :where(.bf-checkbox-label, .bf-radio-label)::before {
523
+ background: var(--bf-color-background-default);
524
+ block-size: var(--bf-control-visual-size);
525
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
526
+ inline-size: var(--bf-control-visual-size);
527
+ inset-inline-start: 0;
528
+ inset-block-start: var(--bf-tick-box-offset);
529
+ }
530
+
531
+ :where(.bf-theme) :where(.bf-checkbox-label:hover, .bf-radio-label:hover)::before {
532
+ background: var(--bf-color-background-hover);
533
+ }
534
+
535
+ :where(.bf-theme) :where(.bf-checkbox-label)::after {
536
+ block-size: calc(var(--bf-control-visual-size) * 0.35);
537
+ border-bottom: calc(var(--bf-border-width) * 2) solid var(--bf-color-background-default);
538
+ border-left: calc(var(--bf-border-width) * 2) solid var(--bf-color-background-default);
539
+ inline-size: calc(var(--bf-control-visual-size) * 0.6);
540
+ inset-inline-start: calc(var(--bf-control-visual-size) * 0.2);
541
+ inset-block-start: calc(var(--bf-tick-box-offset) + (var(--bf-control-visual-size) * 0.18) + (var(--bf-border-width) * 2));
542
+ opacity: 0;
543
+ transform: rotate(-45deg);
544
+ }
545
+
546
+ :where(.bf-theme) :where(.bf-radio-label)::before {
547
+ border-radius: 50%;
548
+ }
549
+
550
+ :where(.bf-theme) :where(.bf-radio-label)::after {
551
+ background: var(--bf-color-background-default);
552
+ block-size: var(--bf-radio-dot-size);
553
+ border-radius: 50%;
554
+ inline-size: var(--bf-radio-dot-size);
555
+ inset-inline-start: calc((var(--bf-control-visual-size) - var(--bf-radio-dot-size)) * 0.5);
556
+ inset-block-start: calc(var(--bf-tick-box-offset) + ((var(--bf-control-visual-size) - var(--bf-radio-dot-size)) * 0.5));
557
+ opacity: 0;
558
+ }
559
+
560
+ :where(.bf-theme) :where(.bf-checkbox-input:checked + .bf-checkbox-label)::before {
561
+ background: var(--bf-color-link-default);
562
+ border-color: var(--bf-color-link-default);
563
+ }
564
+
565
+ :where(.bf-theme) :where(.bf-checkbox-input:checked + .bf-checkbox-label)::after {
566
+ opacity: 1;
567
+ }
568
+
569
+ :where(.bf-theme) :where(.bf-radio-input:checked + .bf-radio-label)::before {
570
+ background: var(--bf-color-link-default);
571
+ border-color: var(--bf-color-link-default);
572
+ }
573
+
574
+ :where(.bf-theme) :where(.bf-radio-input:checked + .bf-radio-label)::after {
575
+ opacity: 1;
576
+ }
577
+
578
+ :where(.bf-theme) :where(.bf-checkbox-input:focus-visible + .bf-checkbox-label)::before {
579
+ outline: 0.125rem solid var(--bf-color-focus);
580
+ outline-offset: 0.125rem;
581
+ }
582
+
583
+ :where(.bf-theme) :where(.bf-radio-input:focus-visible + .bf-radio-label)::before {
584
+ outline: 0.125rem solid var(--bf-color-focus);
585
+ outline-offset: 0.125rem;
586
+ }
587
+
588
+ :where(.bf-theme) :where(.bf-switch) {
589
+ align-items: flex-start;
590
+ display: inline-flex;
591
+ gap: var(--bf-field-gap);
592
+ position: relative;
593
+ }
594
+
595
+ :where(.bf-theme) :where(.bf-switch-input) {
596
+ block-size: var(--bf-control-visual-size);
597
+ inline-size: calc(var(--bf-control-visual-size) * 2);
598
+ inset-block-start: var(--bf-switch-track-offset);
599
+ inset-inline-start: 0;
600
+ margin: 0;
601
+ opacity: 0;
602
+ position: absolute;
603
+ }
604
+
605
+ :where(.bf-theme) :where(.bf-switch-slider) {
606
+ background: var(--bf-color-border-high-contrast);
607
+ block-size: var(--bf-control-visual-size);
608
+ border-radius: var(--bf-control-visual-size);
609
+ display: inline-block;
610
+ flex: none;
611
+ inline-size: calc(var(--bf-control-visual-size) * 2);
612
+ margin-block-start: var(--bf-switch-track-offset);
613
+ position: relative;
614
+ }
615
+
616
+ :where(.bf-theme) :where(.bf-switch-slider)::before {
617
+ background: var(--bf-color-background-default);
618
+ block-size: var(--bf-control-visual-size);
619
+ box-sizing: border-box;
620
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
621
+ border-radius: 50%;
622
+ content: "";
623
+ inline-size: var(--bf-control-visual-size);
624
+ inset-block-start: 0;
625
+ inset-inline-start: 0;
626
+ position: absolute;
627
+ transition: transform 160ms ease;
628
+ }
629
+
630
+ :where(.bf-theme) :where(.bf-switch-input:checked + .bf-switch-slider) {
631
+ background: var(--bf-color-link-default);
632
+ }
633
+
634
+ :where(.bf-theme) :where(.bf-switch-input:checked + .bf-switch-slider)::before {
635
+ border-color: var(--bf-color-link-default);
636
+ transform: translateX(100%);
637
+ }
638
+
639
+ :where(.bf-theme) :where(.bf-switch-input:focus-visible + .bf-switch-slider) {
640
+ outline: 0.125rem solid var(--bf-color-focus);
641
+ outline-offset: 0.125rem;
642
+ }
643
+
644
+ :where(.bf-theme) :where(.bf-switch-input:disabled + .bf-switch-slider) {
645
+ opacity: 0.6;
646
+ }
647
+
648
+ :where(.bf-theme) :where(.bf-switch-label) {
649
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-default);
650
+ border-block: var(--bf-border-width) solid transparent;
651
+ cursor: pointer;
652
+ display: inline-block;
653
+ margin: 0 0 var(--bf-single-line-row-margin-block-end);
654
+ padding-block: var(--bf-single-line-row-padding-block);
655
+ }
656
+
657
+ :where(.bf-theme) :where(.bf-validation-message) {
658
+ ${typeStyles(body, { includeCase: false })} border-block: var(--bf-border-width) solid transparent;
659
+ color: var(--bf-color-text-muted);
660
+ margin: 0 0 var(--bf-single-line-row-margin-block-end);
661
+ margin-inline-start: var(--bf-leading-mark-group-inset);
662
+ padding-block: var(--bf-single-line-row-padding-block);
663
+ padding-inline-start: var(--bf-leading-mark-offset);
664
+ position: relative;
665
+ }
666
+
667
+ :where(.bf-theme) :where(.bf-validation-message)::before {
668
+ background: var(--bf-color-border-information);
669
+ block-size: calc(var(--bf-control-visual-size) * 0.5);
670
+ border-radius: 50%;
671
+ content: "";
672
+ inline-size: calc(var(--bf-control-visual-size) * 0.5);
673
+ inset-block-start: ${alignedVisualStart(bodyLineHeight, "(var(--bf-control-visual-size) * 0.5)", bodySelectedStartNudge)};
674
+ inset-inline-start: 0;
675
+ position: absolute;
676
+ }
677
+
678
+ :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) {
679
+ background-color: var(--bf-color-background-caution-default);
680
+ border-bottom-color: var(--bf-color-border-caution);
681
+ }
682
+
683
+ :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 {
684
+ background-color: var(--bf-color-background-caution-hover);
685
+ }
686
+
687
+ :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 {
688
+ background-color: var(--bf-color-background-caution-active);
689
+ }
690
+
691
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-validation-message) {
692
+ color: var(--bf-color-border-caution);
693
+ }
694
+
695
+ :where(.bf-theme) :where(.is-caution, .bf-validation.is-caution) :where(.bf-validation-message)::before {
696
+ background: var(--bf-color-border-caution);
697
+ }
698
+
699
+ :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) {
700
+ background-color: var(--bf-color-background-negative-default);
701
+ border-bottom-color: var(--bf-color-border-negative);
702
+ }
703
+
704
+ :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 {
705
+ background-color: var(--bf-color-background-negative-hover);
706
+ }
707
+
708
+ :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 {
709
+ background-color: var(--bf-color-background-negative-active);
710
+ }
711
+
712
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-validation-message) {
713
+ color: var(--bf-color-border-negative);
714
+ }
715
+
716
+ :where(.bf-theme) :where(.is-error, .bf-validation.is-error) :where(.bf-validation-message)::before {
717
+ background: var(--bf-color-border-negative);
718
+ }
719
+
720
+ :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) {
721
+ background-color: var(--bf-color-background-positive-default);
722
+ border-bottom-color: var(--bf-color-border-positive);
723
+ }
724
+
725
+ :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 {
726
+ background-color: var(--bf-color-background-positive-hover);
727
+ }
728
+
729
+ :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 {
730
+ background-color: var(--bf-color-background-positive-active);
731
+ }
732
+
733
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-validation-message) {
734
+ color: var(--bf-color-border-positive);
735
+ }
736
+
737
+ :where(.bf-theme) :where(.is-success, .bf-validation.is-success) :where(.bf-validation-message)::before {
738
+ background: var(--bf-color-border-positive);
739
+ }
740
+
741
+ :where(.bf-theme) :where(.bf-slider) {
742
+ align-items: flex-start;
743
+ display: inline-flex;
744
+ flex-wrap: nowrap;
745
+ gap: var(--bf-field-gap);
746
+ inline-size: 100%;
747
+ max-inline-size: 100%;
748
+ min-inline-size: 0;
749
+ }
750
+
751
+ :where(.bf-theme) :where(.bf-slider.is-stacked),
752
+ :where(.bf-theme) :where(.bf-field.is-range.is-stacked) :where(.bf-slider) {
753
+ align-items: stretch;
754
+ display: grid;
755
+ gap: var(--bf-field-gap);
756
+ grid-template-columns: minmax(0, 1fr);
757
+ }
758
+
759
+ :where(.bf-theme) :where(.bf-slider) :where(input[type='range']) {
760
+ align-self: flex-start;
761
+ flex: 1 1 8rem;
762
+ inline-size: 100%;
763
+ min-inline-size: 0;
764
+ }
765
+
766
+ :where(.bf-theme) :where(input[type='range']) {
767
+ appearance: none;
768
+ background: linear-gradient(
769
+ to right,
770
+ var(--bf-color-link-default) 0,
771
+ var(--bf-color-link-default) var(--bf-slider-fill-percent, 0%),
772
+ var(--bf-color-border-default) var(--bf-slider-fill-percent, 0%),
773
+ var(--bf-color-border-default) 100%
774
+ );
775
+ block-size: var(--bf-slider-track-size);
776
+ border: 0;
777
+ border-radius: var(--bf-baseline);
778
+ margin: var(--bf-slider-track-offset) 0 calc(var(--bf-slider-row-block-size) - var(--bf-slider-track-offset) - var(--bf-slider-track-size));
779
+ padding: 0;
780
+ }
781
+
782
+ :where(.bf-theme) :where(input[type='range']):focus:not(:focus-visible) {
783
+ outline: none;
784
+ }
785
+
786
+ :where(.bf-theme) :where(input[type='range'])::-webkit-slider-runnable-track {
787
+ background: transparent;
788
+ block-size: var(--bf-slider-track-size);
789
+ border-radius: var(--bf-baseline);
790
+ }
791
+
792
+ :where(.bf-theme) :where(input[type='range'])::-webkit-slider-thumb {
793
+ appearance: none;
794
+ background: var(--bf-color-background-default);
795
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
796
+ block-size: var(--bf-control-visual-size);
797
+ border-radius: 50%;
798
+ box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 0.0625rem rgba(0, 0, 0, 0.2);
799
+ inline-size: var(--bf-control-visual-size);
800
+ margin-top: calc((var(--bf-slider-track-size) - var(--bf-control-visual-size)) / 2);
801
+ }
802
+
803
+ :where(.bf-theme) :where(input[type='range']):focus-visible::-webkit-slider-thumb {
804
+ outline: calc(var(--bf-baseline) * 0.25) solid var(--bf-color-focus);
805
+ }
806
+
807
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-track {
808
+ background: var(--bf-color-border-default);
809
+ block-size: var(--bf-slider-track-size);
810
+ border-radius: var(--bf-baseline);
811
+ }
812
+
813
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-progress {
814
+ background: var(--bf-color-link-default);
815
+ block-size: var(--bf-slider-track-size);
816
+ border-radius: var(--bf-baseline);
817
+ }
818
+
819
+ :where(.bf-theme) :where(input[type='range'])::-moz-range-thumb {
820
+ background: var(--bf-color-background-default);
821
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
822
+ block-size: var(--bf-control-visual-size);
823
+ border-radius: 50%;
824
+ box-shadow: 0 0 calc(var(--bf-control-visual-size) * 0.25) 0.0625rem rgba(0, 0, 0, 0.2);
825
+ inline-size: var(--bf-control-visual-size);
826
+ }
827
+
828
+ :where(.bf-theme) :where(input[type='range'])::-moz-focus-outer {
829
+ border: 0;
830
+ }
831
+
832
+ :where(.bf-theme) :where(input[type='range']):focus-visible::-moz-range-thumb {
833
+ outline: calc(var(--bf-baseline) * 0.25) solid var(--bf-color-focus);
834
+ }
835
+
836
+ ${iconCss()}
837
+
838
+ ${buttonActionsCss({ bodyTypeStyles, buttonMarginBottom, buttonPadding })}
839
+
840
+ ${ctaFigureAspectCss()}
841
+
842
+ ${editorialContentCss({ noticeTitleTypeStyles: typeStyles(h4, { includeCase: false }) })}
843
+
844
+ ${staticContentPortsCss()}
845
+
846
+ ${interactiveFeedbackCss()}
847
+
848
+ ${interactiveTablesCss()}
849
+
850
+ ${logoMediaCss()}
851
+
852
+ ${linkedLogoSiteLayoutCss()}
853
+
854
+ ${sitesFoundationCss()}
855
+
856
+ ${sitesEditorialPortsCss()}
857
+
858
+ ${sitesRichListsCss()}
859
+
822
860
  ${panelCss({
823
861
  bodyTypeStyles,
824
862
  h4TypeStyles: typeStyles(h4, { includeCase: false })
825
- })}
826
-
863
+ })}
864
+
827
865
  ${cardsOptionsCss({
828
866
  bodyStrongTypeStyles: typeStyles(body, { fontWeight: 600, includeCase: false }),
829
867
  bodyTypeStyles
830
- })}
831
-
832
- ${contentCardCss()}
833
-
868
+ })}
869
+
870
+ ${contentCardCss()}
871
+
834
872
  ${tabsChoiceBreadcrumbsCss({
835
873
  bodyCaseTypeStyles: typeStyles(body),
836
874
  bodyStrongTypeStyles: typeStyles(body, { fontWeight: 600, includeCase: false }),
837
875
  bodyTypeStyles,
838
876
  buttonMarginBottom,
839
877
  buttonPadding,
840
- })}
841
-
842
- ${tabSectionCss()}
843
-
878
+ })}
879
+
880
+ ${tabSectionCss()}
881
+
844
882
  ${articlePaginationCss({
845
883
  bodyCaseTypeStyles: typeStyles(body),
846
884
  titleTypeStyles: typeStyles(h5, { includeCase: false })
847
885
  })}
848
886
 
849
887
  ${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
-
888
+
889
+ :where(.bf-theme) :where(.bf-skip-link) {
890
+ ${typeStyles(body, { includeCase: false })} background: var(--bf-color-background-alt);
891
+ color: var(--bf-color-link-default);
892
+ display: block;
893
+ left: -62.4375rem;
894
+ max-inline-size: calc(100vw - var(--bf-baseline));
895
+ position: absolute;
896
+ text-decoration: none;
897
+ top: -62.4375rem;
898
+ }
899
+
900
+ :where(.bf-theme) :where(.bf-skip-link:hover) {
901
+ text-decoration: underline;
902
+ }
903
+
904
+ :where(.bf-theme) :where(.bf-skip-link:focus, .bf-skip-link:focus-visible) {
905
+ left: calc(var(--bf-baseline) * 0.5);
906
+ outline: 0.125rem solid var(--bf-color-focus);
907
+ outline-offset: 0;
908
+ padding-block: calc(var(--bf-baseline) * 1.5);
909
+ padding-inline: calc(var(--bf-baseline) * 1.5);
910
+ position: fixed;
911
+ top: calc(var(--bf-baseline) * 0.5);
912
+ z-index: 999999;
913
+ }
914
+
877
915
  ${tableCss({
878
916
  bodyLineHeight,
879
917
  bodyMediumTypeStyles: typeStyles(body, { fontWeight: 500, includeCase: false }),
880
918
  bodyTypeStyles,
881
- })}
882
-
919
+ })}
920
+
883
921
  ${chipBadgeStatusCss({
884
922
  bodyCaseTypeStyles: typeStyles(body),
885
923
  bodyLineHeight,
886
- bodySelectedStartNudge,
887
- h5SelectedEndNudge,
888
- h5SelectedStartNudge,
889
924
  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
-
925
+ })}
926
+
927
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear) {
928
+ appearance: none;
929
+ background: transparent;
930
+ border: 0;
931
+ color: var(--bf-color-text-default);
932
+ cursor: pointer;
933
+ flex: 0 0 auto;
934
+ margin: 0;
935
+ padding: 0;
936
+ position: relative;
937
+ text-indent: -624.9375rem;
938
+ }
939
+
940
+ :where(.bf-theme) :where(.bf-chip-dismiss) {
941
+ block-size: 1rem;
942
+ inline-size: 1rem;
943
+ margin-inline-start: var(--bf-ui-badge-padding-inline);
944
+ }
945
+
946
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::before,
947
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::after {
948
+ background: currentColor;
949
+ block-size: 0.125rem;
950
+ content: "";
951
+ inline-size: 0.75rem;
952
+ left: 50%;
953
+ position: absolute;
954
+ top: 50%;
955
+ }
956
+
957
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::before {
958
+ transform: translate(-50%, -50%) rotate(45deg);
959
+ }
960
+
961
+ :where(.bf-theme) :where(.bf-chip-dismiss, .bf-search-box-reset, .bf-search-and-filter-clear)::after {
962
+ transform: translate(-50%, -50%) rotate(-45deg);
963
+ }
964
+
965
+
931
966
  ${searchBoxAndFilterCss({
932
967
  bodySelectedStartNudge,
933
968
  bodyTypeStyles,
934
969
  buttonBlockPaddingVar,
935
- h6TypeStyles,
936
970
  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),
971
+ })}
972
+
973
+ ${controlRowCss()}
974
+
975
+ ${listTreeCss({ bodyTypeStyles })}
976
+
977
+ ${legacyNavigationCss({
978
+ bodyMediumTypeStyles: typeStyles(body, { fontWeight: 500, includeCase: false }),
979
+ bodySemiboldTypeStyles: typeStyles(body, { fontWeight: 600, includeCase: false }),
2695
980
  bodyTypeStyles,
2696
- headingTypeStyles: typeStyles(h6, { includeCase: false })
2697
- })}
2698
-
2699
- ${tieredListEqualHeightRowCss()}
981
+ buttonMarginBottom,
982
+ buttonPadding
983
+ })}
984
+
985
+ :where(.bf-theme) :where(.bf-contextual-menu, .bf-contextual-menu.is-left, .bf-contextual-menu.is-center) {
986
+ display: inline-block;
987
+ margin: 0;
988
+ position: relative;
989
+ vertical-align: top;
990
+ }
991
+
992
+ :where(.bf-theme) :where(.bf-contextual-menu-dropdown) {
993
+ background: var(--bf-color-background-default);
994
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
995
+ box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.28);
996
+ display: none;
997
+ list-style: none;
998
+ margin: 0;
999
+ max-inline-size: 21rem;
1000
+ min-inline-size: 10rem;
1001
+ padding: 0;
1002
+ position: absolute;
1003
+ right: 0;
1004
+ top: calc(100% - var(--bf-border-width));
1005
+ width: fit-content;
1006
+ z-index: 9;
1007
+ }
1008
+
1009
+ :where(.bf-theme) :where(.bf-contextual-menu-dropdown[aria-hidden='false']) {
1010
+ display: block;
1011
+ }
1012
+
1013
+ :where(.bf-theme) :where(.bf-contextual-menu.is-left) :where(.bf-contextual-menu-dropdown) {
1014
+ left: 0;
1015
+ right: auto;
1016
+ }
1017
+
1018
+ :where(.bf-theme) :where(.bf-contextual-menu.is-center) :where(.bf-contextual-menu-dropdown) {
1019
+ left: 50%;
1020
+ right: auto;
1021
+ transform: translateX(-50%);
1022
+ }
1023
+
1024
+ :where(.bf-theme) :where(.bf-contextual-menu-group) {
1025
+ display: block;
1026
+ }
1027
+
1028
+ :where(.bf-theme) :where(.bf-contextual-menu-group) + :where(.bf-contextual-menu-group) {
1029
+ box-shadow: inset 0 0.0625rem 0 var(--bf-color-border-default);
1030
+ }
1031
+
1032
+ :where(.bf-theme) :where(.bf-contextual-menu-link) {
1033
+ ${typeStyles(body, { includeCase: false })} background: transparent;
1034
+ border: 0;
1035
+ clear: both;
1036
+ color: var(--bf-color-text-default);
1037
+ cursor: pointer;
1038
+ display: block;
1039
+ margin: 0;
1040
+ overflow: hidden;
1041
+ padding-block: var(--bf-control-block-padding-compact);
1042
+ padding-inline: var(--bf-component-inline-inset-action);
1043
+ text-align: left;
1044
+ text-decoration: none;
1045
+ text-overflow: ellipsis;
1046
+ white-space: nowrap;
1047
+ width: 100%;
1048
+ }
1049
+
1050
+ :where(.bf-theme) :where(.bf-contextual-menu-link):visited {
1051
+ color: var(--bf-color-text-default);
1052
+ }
1053
+
1054
+ :where(.bf-theme) :where(.bf-contextual-menu-link):hover {
1055
+ background: var(--bf-color-background-hover);
1056
+ text-decoration: none;
1057
+ }
1058
+
1059
+ :where(.bf-theme) :where(.bf-contextual-menu-link):active {
1060
+ background: var(--bf-color-background-active);
1061
+ }
1062
+
1063
+ :where(.bf-theme) :where(.bf-contextual-menu-link):focus:not(:focus-visible) {
1064
+ outline: none;
1065
+ }
1066
+
1067
+ :where(.bf-theme) :where(.bf-contextual-menu-link):focus-visible {
1068
+ outline: 0.125rem solid var(--bf-color-focus);
1069
+ outline-offset: -0.125rem;
1070
+ }
1071
+
1072
+ :where(.bf-theme) :where(.bf-contextual-menu-link.is-disabled, .bf-contextual-menu-link[disabled]) {
1073
+ color: var(--bf-color-text-muted);
1074
+ cursor: default;
1075
+ pointer-events: none;
1076
+ }
1077
+
1078
+ :where(.bf-theme) :where(.bf-tooltip) {
1079
+ display: inline-flex;
1080
+ position: relative;
1081
+ text-decoration: inherit;
1082
+ }
1083
+
1084
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) {
1085
+ display: inline-grid;
1086
+ gap: var(--bf-field-gap);
1087
+ position: relative;
1088
+ }
1089
+
1090
+ :where(.bf-theme) :where(.bf-tooltip-message) {
1091
+ ${typeStyles(body, { includeCase: false })} background-color: var(--bf-color-background-alt);
1092
+ box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default), 0 0.75rem 2rem rgba(0, 0, 0, 0.24);
1093
+ color: var(--bf-color-text-default);
1094
+ inline-size: max-content;
1095
+ left: 0;
1096
+ margin: 0;
1097
+ max-inline-size: min(20rem, calc(100vw - (var(--bf-baseline) * 4)));
1098
+ opacity: 0;
1099
+ padding-block-end: ${bodySelectedEndNudge};
1100
+ padding-block-start: ${bodySelectedStartNudge};
1101
+ padding-inline: var(--bf-component-inline-inset-continuation);
1102
+ pointer-events: none;
1103
+ position: absolute;
1104
+ top: 100%;
1105
+ transform: translateY(calc(var(--bf-baseline) - var(--bf-border-width)));
1106
+ visibility: hidden;
1107
+ white-space: normal;
1108
+ z-index: 12;
1109
+ }
1110
+
1111
+ :where(.bf-theme) :where(.bf-tooltip):is(:hover, :focus-within) > :where(.bf-tooltip-message),
1112
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message) {
1113
+ opacity: 1;
1114
+ visibility: visible;
1115
+ }
1116
+
1117
+ :where(.bf-theme) :where(.bf-tooltip-message)::before {
1118
+ block-size: 0;
1119
+ border-bottom: calc(var(--bf-baseline) * 0.5) solid var(--bf-color-background-alt);
1120
+ border-inline: calc(var(--bf-baseline) * 0.5) solid transparent;
1121
+ bottom: 100%;
1122
+ content: "";
1123
+ inline-size: 0;
1124
+ left: calc(var(--bf-baseline) * 0.75);
1125
+ position: absolute;
1126
+ }
1127
+
1128
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message) {
1129
+ left: auto;
1130
+ pointer-events: auto;
1131
+ position: static;
1132
+ top: auto;
1133
+ transform: none;
1134
+ }
1135
+
1136
+ :where(.bf-theme) :where(.bf-tooltip.is-detached) > :where(.bf-tooltip-message)::before {
1137
+ content: none;
1138
+ }
1139
+
1140
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-center) > :where(.bf-tooltip-message) {
1141
+ left: 50%;
1142
+ transform: translate(-50%, calc(var(--bf-baseline) - var(--bf-border-width)));
1143
+ }
1144
+
1145
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-center) > :where(.bf-tooltip-message)::before {
1146
+ left: 50%;
1147
+ transform: translateX(-50%);
1148
+ }
1149
+
1150
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-right) > :where(.bf-tooltip-message) {
1151
+ left: auto;
1152
+ right: 0;
1153
+ }
1154
+
1155
+ :where(.bf-theme) :where(.bf-tooltip.is-btm-right) > :where(.bf-tooltip-message)::before {
1156
+ left: auto;
1157
+ right: calc(var(--bf-baseline) * 0.75);
1158
+ }
1159
+
1160
+ :where(.bf-theme) :where(.bf-tooltip.is-top-left, .bf-tooltip.is-top-center, .bf-tooltip.is-top-right) > :where(.bf-tooltip-message) {
1161
+ bottom: 100%;
1162
+ top: auto;
1163
+ transform: translateY(calc(var(--bf-baseline) * -1));
1164
+ }
1165
+
1166
+ :where(.bf-theme) :where(.bf-tooltip.is-top-left, .bf-tooltip.is-top-center, .bf-tooltip.is-top-right) > :where(.bf-tooltip-message)::before {
1167
+ border-bottom: 0;
1168
+ border-inline: calc(var(--bf-baseline) * 0.5) solid transparent;
1169
+ border-top: calc(var(--bf-baseline) * 0.5) solid var(--bf-color-background-alt);
1170
+ bottom: auto;
1171
+ top: 100%;
1172
+ }
1173
+
1174
+ :where(.bf-theme) :where(.bf-tooltip.is-top-center) > :where(.bf-tooltip-message) {
1175
+ left: 50%;
1176
+ transform: translate(-50%, calc(var(--bf-baseline) * -1));
1177
+ }
1178
+
1179
+ :where(.bf-theme) :where(.bf-tooltip.is-top-center) > :where(.bf-tooltip-message)::before {
1180
+ left: 50%;
1181
+ transform: translateX(-50%);
1182
+ }
1183
+
1184
+ :where(.bf-theme) :where(.bf-tooltip.is-top-right) > :where(.bf-tooltip-message) {
1185
+ left: auto;
1186
+ right: 0;
1187
+ }
1188
+
1189
+ :where(.bf-theme) :where(.bf-tooltip.is-top-right) > :where(.bf-tooltip-message)::before {
1190
+ left: auto;
1191
+ right: calc(var(--bf-baseline) * 0.75);
1192
+ }
1193
+
1194
+ :where(.bf-theme) :where(nav.bf-pagination) {
1195
+ display: block;
1196
+ }
1197
+
1198
+ :where(.bf-theme) :where(.bf-pagination-items) {
1199
+ align-items: flex-start;
1200
+ display: flex;
1201
+ flex-direction: row;
1202
+ flex-wrap: wrap;
1203
+ gap: var(--bf-field-gap);
1204
+ list-style: none;
1205
+ margin: 0;
1206
+ min-inline-size: 0;
1207
+ padding: 0;
1208
+ }
1209
+
1210
+ :where(.bf-theme) :where(.bf-pagination-item) {
1211
+ align-items: flex-start;
1212
+ display: flex;
1213
+ margin: 0;
1214
+ min-inline-size: 0;
1215
+ padding: 0;
1216
+ }
1217
+
1218
+ :where(.bf-theme) :where(.bf-pagination-item.is-truncation) {
1219
+ ${typeStyles(body, { includeCase: false })} color: var(--bf-color-text-muted);
1220
+ min-block-size: var(--bf-control-box-size);
1221
+ padding-block: var(--bf-control-block-padding);
1222
+ padding-inline: calc(var(--bf-baseline) * 0.5);
1223
+ }
1224
+
1225
+ :where(.bf-theme) :where(.bf-pagination-link, .bf-pagination-link.is-previous, .bf-pagination-link.is-next) {
1226
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1227
+ background-color: var(--bf-color-background-default);
1228
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
1229
+ border-radius: var(--bf-radius);
1230
+ color: var(--bf-color-text-default);
1231
+ cursor: pointer;
1232
+ display: inline-flex;
1233
+ gap: calc(var(--bf-baseline) * 0.5);
1234
+ justify-content: center;
1235
+ margin-bottom: ${buttonMarginBottom};
1236
+ min-inline-size: var(--bf-control-box-size);
1237
+ ${controlPadding(buttonBlockPaddingVar)} padding-inline: var(--bf-control-inline-padding-action-bordered);
1238
+ text-align: center;
1239
+ text-decoration: none;
1240
+ }
1241
+
1242
+ :where(.bf-theme) :where(.bf-pagination-link:hover, .bf-pagination-link.is-previous:hover, .bf-pagination-link.is-next:hover) {
1243
+ background-color: var(--bf-color-background-hover);
1244
+ }
1245
+
1246
+ :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)) {
1247
+ outline: none;
1248
+ }
1249
+
1250
+ :where(.bf-theme) :where(.bf-pagination-link:focus-visible, .bf-pagination-link.is-previous:focus-visible, .bf-pagination-link.is-next:focus-visible) {
1251
+ outline: 0.125rem solid var(--bf-color-focus);
1252
+ outline-offset: 0.125rem;
1253
+ }
1254
+
1255
+ :where(.bf-theme) :where(.bf-pagination-link.is-active, .bf-pagination-link[aria-current='page'], .bf-pagination-link[aria-current='true']) {
1256
+ background-color: var(--bf-color-background-active);
1257
+ }
1258
+
1259
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous, .bf-pagination-link.is-next)::before,
1260
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous, .bf-pagination-link.is-next)::after {
1261
+ background-image: var(--bf-ui-icon-chevron-down);
1262
+ background-position: center;
1263
+ background-repeat: no-repeat;
1264
+ background-size: 1rem 1rem;
1265
+ block-size: 1rem;
1266
+ content: "";
1267
+ display: inline-block;
1268
+ inline-size: 1rem;
1269
+ }
1270
+
1271
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous)::before {
1272
+ transform: rotate(90deg);
1273
+ }
1274
+
1275
+ :where(.bf-theme) :where(.bf-pagination-link.is-previous)::after {
1276
+ display: none;
1277
+ }
1278
+
1279
+ :where(.bf-theme) :where(.bf-pagination-link.is-next)::after {
1280
+ transform: rotate(-90deg);
1281
+ }
1282
+
1283
+ :where(.bf-theme) :where(.bf-pagination-link.is-next)::before {
1284
+ display: none;
1285
+ }
1286
+
1287
+ :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']) {
1288
+ cursor: not-allowed;
1289
+ opacity: 0.5;
1290
+ pointer-events: none;
1291
+ }
1292
+
1293
+ :where(.bf-theme) :where(.bf-accordion) {
1294
+ display: grid;
1295
+ min-inline-size: 0;
1296
+ }
1297
+
1298
+ :where(.bf-theme) :where(.bf-accordion-list) {
1299
+ list-style: none;
1300
+ margin: 0;
1301
+ padding: 0;
1302
+ }
1303
+
1304
+ :where(.bf-theme) :where(.bf-accordion-group) {
1305
+ position: relative;
1306
+ }
1307
+
1308
+ :where(.bf-theme) :where(.bf-accordion-group) + :where(.bf-accordion-group)::after {
1309
+ background-color: var(--bf-color-border-default);
1310
+ block-size: var(--bf-border-width);
1311
+ content: "";
1312
+ inset-inline: 0;
1313
+ position: absolute;
1314
+ top: 0;
1315
+ }
1316
+
1317
+ :where(.bf-theme) :where(.bf-accordion-heading) {
1318
+ margin-bottom: 0;
1319
+ }
1320
+
1321
+ :where(.bf-theme) :where(.bf-accordion-tab) {
1322
+ ${typeStyles(body, { includeCase: false })} align-items: center;
1323
+ appearance: none;
1324
+ background: transparent;
1325
+ border: 0;
1326
+ border-block: var(--bf-border-width) solid transparent;
1327
+ color: var(--bf-color-text-default);
1328
+ cursor: pointer;
1329
+ display: flex;
1330
+ gap: var(--bf-disclosure-gap);
1331
+ inline-size: 100%;
1332
+ justify-content: flex-start;
1333
+ margin-block-end: var(--bf-single-line-row-margin-block-end);
1334
+ padding-block: var(--bf-single-line-row-padding-block);
1335
+ padding-inline: 0;
1336
+ text-align: left;
1337
+ }
1338
+
1339
+ :where(.bf-theme) :where(.bf-accordion-tab):focus:not(:focus-visible) {
1340
+ outline: none;
1341
+ }
1342
+
1343
+ :where(.bf-theme) :where(.bf-accordion-tab):focus-visible {
1344
+ outline: 0.125rem solid var(--bf-color-focus);
1345
+ outline-offset: 0.125rem;
1346
+ }
1347
+
1348
+ :where(.bf-theme) :where(.bf-accordion-tab)::before {
1349
+ background-image: var(--bf-ui-icon-chevron-down);
1350
+ background-position: center;
1351
+ background-repeat: no-repeat;
1352
+ background-size: var(--bf-disclosure-icon-inline-size) var(--bf-disclosure-icon-inline-size);
1353
+ block-size: var(--bf-disclosure-icon-inline-size);
1354
+ content: "";
1355
+ display: inline-block;
1356
+ flex: none;
1357
+ inline-size: var(--bf-disclosure-icon-inline-size);
1358
+ transform: translateY(var(--bf-disclosure-icon-optical-offset-block));
1359
+ transition: transform 120ms ease;
1360
+ }
1361
+
1362
+ :where(.bf-theme) :where(.bf-accordion-tab[aria-expanded='false'])::before {
1363
+ transform: translateY(var(--bf-disclosure-icon-optical-offset-block)) rotate(-90deg);
1364
+ }
1365
+
1366
+ :where(.bf-theme) :where(.bf-accordion-panel) {
1367
+ margin: 0;
1368
+ overflow: hidden;
1369
+ padding-block-start: var(--bf-baseline);
1370
+ padding-inline-start: var(--bf-component-inline-inset-continuation);
1371
+ }
1372
+
1373
+ :where(.bf-theme) :where(.bf-accordion-panel[aria-hidden='true']) {
1374
+ block-size: 0;
1375
+ opacity: 0;
1376
+ padding-block-start: 0;
1377
+ visibility: hidden;
1378
+ }
1379
+
1380
+ :where(.bf-theme) :where(.bf-accordion-panel[aria-hidden='false']) {
1381
+ block-size: auto;
1382
+ opacity: 1;
1383
+ visibility: visible;
1384
+ }
1385
+
1386
+ :where(.bf-theme) :where(.bf-modal) {
1387
+ background: transparent;
1388
+ border: 0;
1389
+ inset: 0;
1390
+ margin: auto;
1391
+ max-inline-size: min(100vw - (var(--bf-baseline) * 8), 36rem);
1392
+ padding: 0;
1393
+ }
1394
+
1395
+ :where(.bf-theme) :where(.bf-modal.is-workflow) {
1396
+ --bf-modal-workflow-viewport-gap: calc(var(--bf-baseline) * 4);
1397
+ --bf-modal-workflow-max-inline-size: 42rem;
1398
+ --bf-modal-workflow-min-inline-size: 32rem;
1399
+ --bf-modal-workflow-max-block-size: 40rem;
1400
+ --bf-modal-workflow-min-block-size: 24rem;
1401
+ block-size: min(calc(100dvh - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-max-block-size));
1402
+ inline-size: min(calc(100vw - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-max-inline-size));
1403
+ max-block-size: calc(100dvh - var(--bf-modal-workflow-viewport-gap));
1404
+ max-inline-size: calc(100vw - var(--bf-modal-workflow-viewport-gap));
1405
+ min-block-size: min(calc(100dvh - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-min-block-size));
1406
+ min-inline-size: min(calc(100vw - var(--bf-modal-workflow-viewport-gap)), var(--bf-modal-workflow-min-inline-size));
1407
+ overflow: hidden;
1408
+ }
1409
+
1410
+ :where(.bf-theme) :where(.bf-modal.is-workflow.is-resizable) {
1411
+ resize: both;
1412
+ }
1413
+
1414
+ :where(.bf-theme) :where(.bf-modal)::backdrop {
1415
+ background: var(--bf-color-background-overlay);
1416
+ }
1417
+
1418
+ :where(.bf-theme) :where(.bf-modal-dialog) {
1419
+ background: var(--bf-color-background-default);
1420
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
1421
+ display: grid;
1422
+ gap: 0;
1423
+ }
1424
+
1425
+ :where(.bf-theme) :where(.bf-modal.is-workflow > .bf-modal-dialog) {
1426
+ block-size: 100%;
1427
+ grid-template-rows: auto minmax(0, 1fr) auto;
1428
+ inline-size: 100%;
1429
+ min-block-size: 0;
1430
+ overflow: hidden;
1431
+ }
1432
+
1433
+ :where(.bf-theme) :where(.bf-modal-header, .bf-modal-body, .bf-modal-footer) {
1434
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
1435
+ padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
1436
+ padding-inline: var(--bf-component-inline-inset-continuation);
1437
+ }
1438
+
1439
+ :where(.bf-theme) :where(.bf-modal-header) {
1440
+ align-items: start;
1441
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
1442
+ display: flex;
1443
+ gap: var(--bf-field-gap);
1444
+ justify-content: space-between;
1445
+ }
1446
+
1447
+ :where(.bf-theme) :where(.bf-modal-body) {
1448
+ padding-block-end: var(--bf-panel-padding-block);
1449
+ padding-block-start: var(--bf-panel-padding-block);
1450
+ }
1451
+
1452
+ :where(.bf-theme) :where(.bf-modal.is-workflow) :where(.bf-modal-header, .bf-modal-footer) {
1453
+ background: var(--bf-color-background-default);
1454
+ }
1455
+
1456
+ :where(.bf-theme) :where(.bf-modal.is-workflow) :where(.bf-modal-body) {
1457
+ min-block-size: 0;
1458
+ overflow: auto;
1459
+ overscroll-behavior: contain;
1460
+ }
1461
+
1462
+ :where(.bf-theme) :where(.bf-modal-title) {
1463
+ ${typeStyles(h4, { includeCase: false })} margin: 0 0 var(--bf-h4-margin-bottom);
1464
+ padding-block-end: 0;
1465
+ padding-block-start: var(--bf-h4-nudge-start);
1466
+ }
1467
+
1468
+ :where(.bf-theme) :where(.bf-modal-footer) {
1469
+ align-items: start;
1470
+ border-top: var(--bf-border-width) solid var(--bf-color-border-default);
1471
+ display: flex;
1472
+ flex-wrap: wrap;
1473
+ gap: var(--bf-field-gap);
1474
+ justify-content: flex-end;
1475
+ }
1476
+
1477
+ :where(.bf-theme) :where(.bf-modal-close) {
1478
+ ${typeStyles(body, { includeCase: false })} appearance: none;
1479
+ background: transparent;
1480
+ border: 0;
1481
+ color: var(--bf-color-text-default);
1482
+ cursor: pointer;
1483
+ padding: 0;
1484
+ }
1485
+
1486
+ :where(.bf-theme) :where(.bf-code-snippet) {
1487
+ display: grid;
1488
+ gap: 0;
1489
+ margin: 0;
1490
+ min-inline-size: 0;
1491
+ }
1492
+
1493
+ :where(.bf-theme) :where(.bf-code-snippet.is-bordered) {
1494
+ box-shadow: inset 0 0 0 var(--bf-border-width) var(--bf-color-border-default);
1495
+ }
1496
+
1497
+ :where(.bf-theme) :where(.bf-code-snippet-header) {
1498
+ align-items: start;
1499
+ background: var(--bf-color-background-active);
1500
+ box-shadow: inset 0 -0.0625rem 0 var(--bf-color-border-default);
1501
+ display: flex;
1502
+ flex-wrap: wrap;
1503
+ justify-content: space-between;
1504
+ min-inline-size: 0;
1505
+ }
1506
+
1507
+ :where(.bf-theme) :where(.bf-code-snippet-header.is-stacked) {
1508
+ flex-direction: column;
1509
+ }
1510
+
1511
+ :where(.bf-theme) :where(.bf-code-snippet-title) {
1512
+ ${typeStyles(h6, { includeCase: false })} color: var(--bf-color-text-default);
1513
+ flex: 1 1 14rem;
1514
+ margin: 0;
1515
+ overflow-wrap: anywhere;
1516
+ padding-block: var(--bf-panel-padding-block);
1517
+ padding-inline: var(--bf-component-inline-inset-continuation);
1518
+ }
1519
+
1520
+ :where(.bf-theme) :where(.bf-code-snippet-dropdowns) {
1521
+ display: flex;
1522
+ flex: 1 0 auto;
1523
+ flex-wrap: wrap;
1524
+ justify-content: flex-end;
1525
+ margin-inline-start: auto;
1526
+ min-inline-size: 0;
1527
+ }
1528
+
1529
+ :where(.bf-theme) :where(.bf-code-snippet-header.is-stacked) :where(.bf-code-snippet-dropdowns) {
1530
+ justify-content: stretch;
1531
+ margin-inline-start: 0;
1532
+ box-shadow: inset 0 0.0625rem 0 var(--bf-color-border-default);
1533
+ width: 100%;
1534
+ }
1535
+
1536
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown) {
1537
+ ${typeStyles(body, { includeCase: false })} appearance: none;
1538
+ background: transparent;
1539
+ border: 0;
1540
+ color: var(--bf-color-text-default);
1541
+ cursor: pointer;
1542
+ margin: 0;
1543
+ min-block-size: calc(${bodyLineHeight} + (var(--bf-panel-padding-block) * 2));
1544
+ min-inline-size: 0;
1545
+ padding-block: var(--bf-panel-padding-block);
1546
+ padding-inline: var(--bf-component-inline-inset-action);
1547
+ text-align: start;
1548
+ }
1549
+
1550
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown) + :where(.bf-code-snippet-dropdown) {
1551
+ box-shadow: inset 0.0625rem 0 0 var(--bf-color-border-default);
1552
+ }
1553
+
1554
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown):focus:not(:focus-visible) {
1555
+ outline: none;
1556
+ }
1557
+
1558
+ :where(.bf-theme) :where(.bf-code-snippet-dropdown):focus-visible {
1559
+ outline: 0.125rem solid var(--bf-color-focus);
1560
+ outline-offset: -0.125rem;
1561
+ }
1562
+
1563
+ :where(.bf-theme) :where(.bf-code-snippet-block, .bf-code-snippet-block.is-icon, .bf-code-snippet-block.is-numbered) {
1564
+ background: var(--bf-color-background-alt);
1565
+ color: var(--bf-color-text-default);
1566
+ display: block;
1567
+ font-family: "Ubuntu Sans Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
1568
+ font-size: ${roleFontSizeVar("body", body.fontSize)};
1569
+ line-height: ${bodyLineHeight};
1570
+ margin: 0;
1571
+ max-inline-size: 100%;
1572
+ min-inline-size: 0;
1573
+ overflow-x: auto;
1574
+ padding-block: var(--bf-panel-padding-block);
1575
+ padding-inline: var(--bf-component-inline-inset-continuation);
1576
+ tab-size: 2;
1577
+ white-space: pre;
1578
+ }
1579
+
1580
+ :where(.bf-theme) :where(.bf-code-snippet-block, .bf-code-snippet-block.is-icon, .bf-code-snippet-block.is-numbered) > :where(code) {
1581
+ display: block;
1582
+ font: inherit;
1583
+ }
1584
+
1585
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-wrapped, .bf-code-snippet-block.is-icon.is-wrapped) {
1586
+ white-space: pre-wrap;
1587
+ }
1588
+
1589
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon) {
1590
+ cursor: copy;
1591
+ padding-inline-start: calc(var(--bf-component-inline-inset-continuation) + (var(--bf-baseline) * 3));
1592
+ position: relative;
1593
+ }
1594
+
1595
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon)::before {
1596
+ ${typeStyles(h6, { includeCase: false })} color: var(--bf-color-text-muted);
1597
+ content: "$";
1598
+ inset-inline-start: var(--bf-component-inline-inset-continuation);
1599
+ inset-block-start: var(--bf-panel-padding-block);
1600
+ position: absolute;
1601
+ }
1602
+
1603
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-windows-prompt)::before {
1604
+ content: ">";
1605
+ }
1606
+
1607
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-url)::before {
1608
+ content: "\\1F517";
1609
+ }
1610
+
1611
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon.is-copied) {
1612
+ background: color-mix(in srgb, var(--bf-color-background-alt) 78%, var(--bf-color-background-information-default));
1613
+ box-shadow: inset 0 0 0 0.0625rem var(--bf-color-border-information);
1614
+ }
1615
+
1616
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus:not(:focus-visible) {
1617
+ outline: none;
1618
+ }
1619
+
1620
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-icon):focus-visible {
1621
+ outline: 0.125rem solid var(--bf-color-focus);
1622
+ outline-offset: -0.125rem;
1623
+ }
1624
+
1625
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-numbered) {
1626
+ counter-reset: code-line;
1627
+ }
1628
+
1629
+ :where(.bf-theme) :where(.bf-code-snippet-line) {
1630
+ counter-increment: code-line;
1631
+ display: block;
1632
+ min-block-size: ${bodyLineHeight};
1633
+ }
1634
+
1635
+ :where(.bf-theme) :where(.bf-code-snippet-block.is-numbered) :where(.bf-code-snippet-line)::before {
1636
+ color: var(--bf-color-text-muted);
1637
+ content: counter(code-line);
1638
+ display: inline-block;
1639
+ font-variant-numeric: tabular-nums;
1640
+ min-inline-size: calc(var(--bf-baseline) * 5);
1641
+ padding-inline-end: var(--bf-panel-padding-inline);
1642
+ text-align: right;
1643
+ user-select: none;
1644
+ }
1645
+
1646
+ :where(.bf-theme) :where(.bf-application) {
1647
+ background: var(--bf-color-background-default);
1648
+ display: grid;
1649
+ grid-template-areas:
1650
+ "main"
1651
+ "aside";
1652
+ grid-template-columns: minmax(0, 1fr);
1653
+ grid-template-rows: minmax(0, 1fr) min-content;
1654
+ min-block-size: 100%;
1655
+ overflow: hidden;
1656
+ position: relative;
1657
+ width: 100%;
1658
+ }
1659
+
1660
+ :where(.bf-theme) :where(.bf-application.is-fill) {
1661
+ block-size: 100dvb;
1662
+ max-block-size: 100dvb;
1663
+ min-block-size: 100dvb;
1664
+ }
1665
+
1666
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)) {
1667
+ grid-template-areas:
1668
+ "navigation-bar"
1669
+ "main"
1670
+ "aside";
1671
+ grid-template-rows: min-content minmax(0, 1fr) min-content;
1672
+ }
1673
+
1674
+ :where(.bf-theme) :where(.bf-navigation-bar) {
1675
+ background: var(--bf-color-background-alt);
1676
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1677
+ grid-area: navigation-bar;
1678
+ min-block-size: var(--bf-navigation-bar-min-block-size);
1679
+ min-inline-size: 0;
1680
+ position: relative;
1681
+ z-index: 40;
1682
+ }
1683
+
1684
+ /* A responsive application brand occupies the persistent bar only while the
1685
+ * full navigation brand is unavailable. The same public tagged-logo contract
1686
+ * is used in both locations; state CSS guarantees that only one copy is
1687
+ * visible and exposed at a time. */
1688
+ :where(.bf-theme) :where(.bf-navigation-bar.is-responsive) :where(.bf-panel-header.is-navigation-brand) {
1689
+ align-items: start;
1690
+ column-gap: calc(var(--bf-baseline) * 2);
1691
+ padding-inline-end: var(--bf-panel-content-padding-inline, var(--bf-panel-padding-inline));
1692
+ }
1693
+
1694
+ :where(.bf-theme) :where(.bf-navigation-bar.is-responsive) {
1695
+ margin-block-end: calc(var(--bf-border-width) * -1);
1696
+ }
1697
+
1698
+ :where(.bf-theme) :where(.bf-navigation-bar.is-responsive) :where(.bf-panel-header.is-navigation-brand) > :where(.bf-top-navigation-logo.is-canonical-tagged) {
1699
+ flex: 1 1 12rem;
1700
+ inline-size: auto;
1701
+ min-inline-size: 0;
1702
+ }
1703
+
1704
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation:not(.is-collapsed)))
1705
+ > :where(.bf-navigation-bar.is-responsive)
1706
+ :where(.bf-top-navigation-logo) {
1707
+ visibility: hidden;
1708
+ }
1709
+
1710
+ :where(.bf-theme) :where(.bf-navigation) {
1711
+ grid-column: 1 / -1;
1712
+ grid-row: 1 / -1;
1713
+ min-block-size: 0;
1714
+ min-inline-size: 0;
1715
+ pointer-events: none;
1716
+ position: relative;
1717
+ z-index: 41;
1718
+ }
1719
+
1720
+ :where(.bf-theme) :where(.bf-navigation-overlay) {
1721
+ background: var(--bf-color-background-overlay);
1722
+ inset: 0;
1723
+ opacity: 0;
1724
+ pointer-events: none;
1725
+ position: fixed;
1726
+ transition: opacity 160ms ease, visibility 160ms ease;
1727
+ visibility: hidden;
1728
+ z-index: 41;
1729
+ }
1730
+
1731
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-overlay) {
1732
+ opacity: 1;
1733
+ pointer-events: auto;
1734
+ visibility: visible;
1735
+ }
1736
+
1737
+ :where(.bf-theme) :where(.bf-navigation-drawer) {
1738
+ background: var(--bf-color-background-alt);
1739
+ block-size: 100dvh;
1740
+ border-inline-end: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
1741
+ bottom: 0;
1742
+ inline-size: min(100%, var(--bf-application-navigation-width));
1743
+ left: 0;
1744
+ max-inline-size: 100%;
1745
+ overflow: auto;
1746
+ pointer-events: auto;
1747
+ position: fixed;
1748
+ top: 0;
1749
+ transform: translateX(-100%);
1750
+ transition: transform 160ms ease, box-shadow 160ms ease, visibility 160ms ease;
1751
+ visibility: hidden;
1752
+ z-index: 42;
1753
+ }
1754
+
1755
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-drawer) {
1756
+ box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
1757
+ transform: translateX(0);
1758
+ visibility: visible;
1759
+ }
1760
+
1761
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.is-fading-when-collapsed, .bf-side-navigation-heading, .bf-side-navigation-status) {
1762
+ display: none;
1763
+ }
1764
+
1765
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-label) {
1766
+ block-size: 0.0625rem;
1767
+ clip-path: inset(50%);
1768
+ inline-size: 0.0625rem;
1769
+ max-inline-size: 0.0625rem;
1770
+ opacity: 0;
1771
+ overflow: hidden;
1772
+ pointer-events: none;
1773
+ position: absolute;
1774
+ white-space: nowrap;
1775
+ }
1776
+
1777
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list .bf-side-navigation-list) {
1778
+ display: none;
1779
+ }
1780
+
1781
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-link, .bf-side-navigation-text) {
1782
+ align-items: center;
1783
+ justify-content: center;
1784
+ padding-inline: calc(var(--bf-baseline) * 1.25);
1785
+ }
1786
+
1787
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-side-navigation-list)::after {
1788
+ content: none;
1789
+ }
1790
+
1791
+ :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) {
1792
+ padding-inline: calc(var(--bf-baseline) * 1.25);
1793
+ }
1794
+
1795
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned:not(.is-collapsed))) {
1796
+ grid-template-areas: "main aside";
1797
+ grid-template-columns: minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
1798
+ grid-template-rows: minmax(0, 1fr);
1799
+ }
1800
+
1801
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)):has(> .bf-aside.is-pinned:not(.is-collapsed)) {
1802
+ grid-template-areas:
1803
+ "navigation-bar navigation-bar"
1804
+ "main aside";
1805
+ grid-template-columns: minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
1806
+ grid-template-rows: min-content minmax(0, 1fr);
1807
+ }
1808
+
1809
+ :where(.bf-theme) :where(.bf-main) {
1810
+ grid-area: main;
1811
+ min-block-size: 0;
1812
+ min-inline-size: 0;
1813
+ overflow: auto;
1814
+ }
1815
+
1816
+ :where(.bf-theme) :where(.bf-application-overlay) {
1817
+ background: var(--bf-color-background-overlay);
1818
+ inset: 0;
1819
+ opacity: 0;
1820
+ pointer-events: none;
1821
+ position: absolute;
1822
+ transition: opacity 160ms ease, visibility 160ms ease;
1823
+ visibility: hidden;
1824
+ z-index: 20;
1825
+ }
1826
+
1827
+ :where(.bf-theme) :where(.bf-application.is-drawer-expanded) > :where(.bf-application-overlay) {
1828
+ opacity: 1;
1829
+ pointer-events: auto;
1830
+ visibility: visible;
1831
+ }
1832
+
1833
+ :where(.bf-theme) :where(.bf-aside) {
1834
+ background: var(--bf-color-background-default);
1835
+ border-inline-start: var(--bf-border-width) solid var(--bf-color-border-default);
1836
+ grid-area: aside;
1837
+ inline-size: 100%;
1838
+ min-block-size: 0;
1839
+ min-inline-size: 0;
1840
+ overflow: auto;
1841
+ position: relative;
1842
+ }
1843
+
1844
+ :where(.bf-theme) :where(.bf-aside.is-overlay, .bf-aside.is-drawer) {
1845
+ align-self: stretch;
1846
+ block-size: auto;
1847
+ box-shadow: 0 1.5rem 4.5rem rgba(0, 0, 0, 0.38);
1848
+ bottom: 0;
1849
+ grid-column: 1 / -1;
1850
+ grid-row: 1 / -1;
1851
+ inline-size: min(100%, var(--bf-application-aside-width));
1852
+ justify-self: end;
1853
+ left: auto;
1854
+ max-inline-size: 100%;
1855
+ min-block-size: 100%;
1856
+ pointer-events: none;
1857
+ position: absolute;
1858
+ right: 0;
1859
+ top: 0;
1860
+ transform: translateX(100%);
1861
+ transition: transform 160ms ease, visibility 160ms ease, box-shadow 160ms ease;
1862
+ visibility: hidden;
1863
+ z-index: 30;
1864
+ }
1865
+
1866
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-icon, .bf-aside.is-drawer.is-icon) {
1867
+ inline-size: min(100%, var(--bf-application-drawer-width-icon));
1868
+ }
1869
+
1870
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-small, .bf-aside.is-drawer.is-small) {
1871
+ inline-size: min(100%, var(--bf-application-drawer-width-small-max));
1872
+ }
1873
+
1874
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-medium, .bf-aside.is-drawer.is-medium) {
1875
+ inline-size: min(100%, var(--bf-application-drawer-width-medium-max));
1876
+ }
1877
+
1878
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-large, .bf-aside.is-drawer.is-large) {
1879
+ inline-size: min(100%, var(--bf-application-drawer-width-large));
1880
+ }
1881
+
1882
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-small)) {
1883
+ --bf-application-aside-width: var(--bf-application-drawer-width-small-max);
1884
+ }
1885
+
1886
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-medium)) {
1887
+ --bf-application-aside-width: var(--bf-application-drawer-width-medium);
1888
+ }
1889
+
1890
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned.is-large)) {
1891
+ --bf-application-aside-width: min(var(--bf-application-drawer-width-large), var(--bf-application-drawer-width-medium-max));
1892
+ }
1893
+
1894
+ :where(.bf-theme) :where(.bf-application.is-drawer-expanded) > :where(.bf-aside.is-overlay, .bf-aside.is-drawer),
1895
+ :where(.bf-theme) :where(.bf-aside.is-overlay.is-open, .bf-aside.is-drawer.is-open) {
1896
+ pointer-events: auto;
1897
+ transform: translateX(0);
1898
+ visibility: visible;
1899
+ }
1900
+
1901
+ :where(.bf-theme) :where(.bf-aside.is-collapsed) {
1902
+ display: none;
1903
+ }
1904
+
1905
+ :where(.bf-theme) :where(.bf-aside.is-pinned) {
1906
+ display: block;
1907
+ }
1908
+
1909
+ :where(.bf-theme) :where(.bf-aside.is-overlay, .bf-aside.is-drawer) :where(.bf-application-aside-resize-handle) {
1910
+ display: none;
1911
+ }
1912
+
1913
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle) {
1914
+ background: transparent;
1915
+ border: 0;
1916
+ cursor: ew-resize;
1917
+ display: none;
1918
+ inset-block: 0;
1919
+ inset-inline-start: calc(var(--bf-baseline) * -3);
1920
+ outline: none;
1921
+ position: absolute;
1922
+ touch-action: none;
1923
+ user-select: none;
1924
+ -webkit-user-select: none;
1925
+ width: calc(var(--bf-baseline) * 6);
1926
+ z-index: 3;
1927
+ }
1928
+
1929
+ :where(.bf-theme) :where(.bf-application:has(> .bf-aside.is-pinned:not(.is-collapsed)))
1930
+ :where(.bf-aside.is-pinned:not(.is-collapsed))
1931
+ > :where(.bf-application-aside-resize-handle) {
1932
+ display: block;
1933
+ }
1934
+
1935
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle)::after {
1936
+ background: var(--bf-color-border-default);
1937
+ border-radius: 62.4375rem;
1938
+ content: "";
1939
+ inset-block: var(--bf-panel-padding-block);
1940
+ inset-inline-start: calc(50% - 0.0625rem);
1941
+ opacity: 0.95;
1942
+ position: absolute;
1943
+ transition: background-color 120ms ease, opacity 120ms ease;
1944
+ width: 0.125rem;
1945
+ }
1946
+
1947
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):hover::after,
1948
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):focus-visible::after,
1949
+ :where(.bf-theme) :where(.bf-application.is-resizing-aside) :where(.bf-application-aside-resize-handle)::after {
1950
+ background: var(--bf-application-resize-handle-active);
1951
+ }
1952
+
1953
+ :where(.bf-theme) :where(.bf-application-aside-resize-handle):focus-visible {
1954
+ outline: 0.125rem solid var(--bf-application-resize-handle-focus-ring);
1955
+ outline-offset: -0.125rem;
1956
+ }
1957
+
1958
+ @media (min-width: 64.75rem) {
1959
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)) {
1960
+ grid-template-areas:
1961
+ "navigation-bar navigation-bar"
1962
+ "navigation main";
1963
+ grid-template-columns: minmax(0, var(--bf-application-navigation-width)) minmax(0, 1fr);
1964
+ grid-template-rows: min-content minmax(0, 1fr);
1965
+ }
1966
+
1967
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation)):has(> .bf-aside.is-pinned:not(.is-collapsed)) {
1968
+ grid-template-areas:
1969
+ "navigation-bar navigation-bar navigation-bar"
1970
+ "navigation main aside";
1971
+ grid-template-columns: minmax(0, var(--bf-application-navigation-width)) minmax(0, 1fr) minmax(0, var(--bf-application-aside-width));
1972
+ }
1973
+
1974
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation:not(.is-collapsed))) > :where(.bf-navigation-bar.is-responsive) {
1975
+ block-size: 0;
1976
+ border: 0;
1977
+ min-block-size: 0;
1978
+ overflow: hidden;
1979
+ pointer-events: none;
1980
+ position: absolute;
1981
+ visibility: hidden;
1982
+ }
1983
+
1984
+ :where(.bf-theme) :where(.bf-application:has(> .bf-navigation.is-collapsed)) {
1985
+ --bf-application-navigation-width: var(--bf-application-navigation-width-collapsed);
1986
+ }
1987
+
1988
+ :where(.bf-theme) :where(.bf-navigation.is-collapsed) :where(.bf-navigation-drawer > .bf-panel > .bf-panel-header) {
1989
+ display: none;
1990
+ }
1991
+
1992
+ :where(.bf-theme) :where(.bf-navigation) {
1993
+ grid-area: navigation;
1994
+ pointer-events: auto;
1995
+ }
1996
+
1997
+ :where(.bf-theme) :where(.bf-navigation-overlay) {
1998
+ display: none;
1999
+ }
2000
+
2001
+ :where(.bf-theme) :where(.bf-navigation-drawer),
2002
+ :where(.bf-theme) :where(.bf-navigation:not(.is-collapsed)) > :where(.bf-navigation-drawer) {
2003
+ block-size: 100%;
2004
+ box-shadow: none;
2005
+ inline-size: 100%;
2006
+ min-block-size: 0;
2007
+ position: static;
2008
+ transform: translateX(0);
2009
+ visibility: visible;
2010
+ }
2011
+
2012
+ :where(.bf-theme) :where(.bf-navigation.is-pinned) {
2013
+ position: sticky;
2014
+ top: 0;
2015
+ }
2016
+ }
2017
+
2018
+ ${navigationLayoutCss()}
2019
+
2020
+ ${documentNavigationCss({
2021
+ bodyCaseTypeStyles: typeStyles(body),
2022
+ bodyTypeStyles,
2023
+ headingTypeStyles: typeStyles(h6, { includeCase: false })
2024
+ })}
2025
+
2026
+ ${tieredListEqualHeightRowCss()}
2700
2027
  `;
2701
2028
  }