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
@@ -1,307 +1,311 @@
1
1
  export function tabsChoiceBreadcrumbsCss(options) {
2
2
  const { bodyCaseTypeStyles, bodyStrongTypeStyles, bodyTypeStyles, buttonMarginBottom, buttonPadding, } = options;
3
- return `:where(.bf-theme) :where(.bf-tabs) {
4
- display: grid;
5
- min-inline-size: 0;
6
- }
7
-
8
- :where(.bf-theme) :where(.bf-tabs-list) {
9
- border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
10
- display: flex;
11
- gap: 0;
12
- list-style: none;
13
- /* Tabs keep their occupied block on the grid at the list boundary rather
14
- than leaving each link's control compensation between its active rule and
15
- the list rule. */
16
- margin: 0 0 calc((var(--bf-baseline) * 2) - var(--bf-border-width));
17
- min-inline-size: 0;
18
- overflow-x: auto;
19
- padding: 0;
20
- white-space: nowrap;
21
- }
22
-
23
- :where(.bf-theme) :where(.bf-tabs-item) {
24
- margin: 0;
25
- min-inline-size: 0;
26
- padding: 0;
27
- }
28
-
29
- :where(.bf-theme) :where(.bf-tabs-link) {
30
- ${bodyTypeStyles} align-items: center;
31
- background: transparent;
32
- border: 0;
33
- border-bottom: var(--bf-bar-thickness) solid transparent;
34
- color: var(--bf-color-text-muted);
35
- cursor: pointer;
36
- display: inline-flex;
37
- gap: calc(var(--bf-baseline) * 0.5);
38
- justify-content: center;
39
- margin-bottom: 0;
40
- padding-block-end: calc(var(--bf-body-nudge-end) + var(--bf-baseline) - var(--bf-bar-thickness));
41
- padding-block-start: var(--bf-body-nudge-start);
42
- padding-inline: var(--bf-control-inline-padding-action);
43
- text-decoration: none;
44
- }
45
-
46
- :where(.bf-theme) :where(.bf-tabs-link:hover) {
47
- background: var(--bf-color-background-hover);
48
- color: var(--bf-color-text-default);
49
- }
50
-
51
- :where(.bf-theme) :where(.bf-tabs-link:focus:not(:focus-visible)) {
52
- outline: none;
53
- }
54
-
55
- :where(.bf-theme) :where(.bf-tabs-link:focus-visible) {
56
- color: var(--bf-color-text-default);
57
- outline: 2px solid var(--bf-color-focus);
58
- outline-offset: -2px;
59
- }
60
-
61
- :where(.bf-theme) :where(.bf-tabs-link.is-active, .bf-tabs-link[aria-selected='true']) {
62
- border-bottom-color: var(--bf-color-text-default);
63
- color: var(--bf-color-text-default);
64
- }
65
-
66
- :where(.bf-theme) :where(.bf-tabs-panel) {
67
- min-inline-size: 0;
68
- }
69
-
70
- :where(.bf-theme) :where(.bf-tabs-panel)[aria-hidden='true'] {
71
- display: none;
72
- }
73
-
74
- :where(.bf-theme) :where(.bf-tabs.is-equal) {
75
- --bf-ui-tabs-equal-min: 8rem;
76
- }
77
-
78
- :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-list) {
79
- display: grid;
80
- gap: calc(var(--bf-baseline) * 2);
81
- grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--bf-ui-tabs-equal-min)), 1fr));
82
- overflow: visible;
83
- white-space: normal;
84
- }
85
-
86
- :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-item) {
87
- min-inline-size: 0;
88
- white-space: normal;
89
- }
90
-
91
- :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-link) {
92
- display: flex;
93
- inline-size: 100%;
94
- text-align: center;
95
- white-space: normal;
96
- }
97
-
98
- :where(.bf-theme) :where(.bf-choice-list) {
99
- display: grid;
100
- gap: var(--bf-field-gap);
101
- }
102
-
103
- :where(.bf-theme) :where(.bf-choice-row) {
104
- align-items: center;
105
- background: var(--bf-color-background-default);
106
- border: var(--bf-border-width) solid var(--bf-color-border-default);
107
- color: var(--bf-color-text-default);
108
- cursor: pointer;
109
- display: grid;
110
- gap: calc(var(--bf-baseline) * 0.75);
111
- grid-template-columns: auto minmax(0, 1fr) auto;
112
- margin: 0 0 ${buttonMarginBottom};
113
- min-inline-size: 0;
114
- ${buttonPadding} padding-inline: var(--bf-control-inline-padding-field);
115
- }
116
-
117
- :where(.bf-theme) :where(.bf-choice-row:hover) {
118
- background: var(--bf-color-background-hover);
119
- }
120
-
121
- :where(.bf-theme) :where(.bf-choice-row:has(:focus-visible)) {
122
- outline: 2px solid var(--bf-color-focus);
123
- outline-offset: -2px;
124
- }
125
-
126
- :where(.bf-theme) :where(.bf-choice-row input[type='radio']) {
127
- margin: 0;
128
- }
129
-
130
- :where(.bf-theme) :where(.bf-choice-row-name) {
131
- ${bodyStrongTypeStyles} display: block;
132
- margin: 0;
133
- min-inline-size: 0;
134
- overflow: hidden;
135
- text-overflow: ellipsis;
136
- }
137
-
138
- :where(.bf-theme) :where(.bf-choice-row-meta) {
139
- ${bodyTypeStyles} color: var(--bf-color-text-muted);
140
- display: block;
141
- margin: 0;
142
- min-inline-size: 0;
143
- overflow: hidden;
144
- text-overflow: ellipsis;
145
- white-space: nowrap;
146
- }
147
-
148
- :where(.bf-theme) :where(.bf-choice-row.is-active),
149
- :where(.bf-theme) :where(.bf-choice-row:has(input[type='radio']:checked)) {
150
- background: var(--bf-color-background-active);
151
- border-color: var(--bf-color-focus);
152
- }
153
-
154
- :where(.bf-theme) :where(.bf-inline-options) {
155
- border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
156
- display: grid;
157
- gap: var(--bf-field-gap);
158
- padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
159
- padding-block-start: var(--bf-panel-padding-block);
160
- padding-inline: var(--bf-panel-padding-inline);
161
- }
162
-
163
- :where(.bf-theme) :where(.bf-inline-options-heading) {
164
- ${bodyCaseTypeStyles} color: var(--bf-color-text-muted);
165
- display: block;
166
- margin: 0;
167
- }
168
-
169
- :where(.bf-theme) :where(.bf-inline-options-heading) :where(.bf-form-label) {
170
- color: inherit;
171
- }
172
-
173
- :where(.bf-theme) :where(.bf-inline-options-options) {
174
- display: flex;
175
- flex-wrap: wrap;
176
- gap: calc(var(--bf-baseline) * 3);
177
- }
178
-
179
- :where(.bf-theme) :where(.bf-inline-options-option) {
180
- align-items: center;
181
- cursor: pointer;
182
- display: flex;
183
- gap: var(--bf-field-gap);
184
- }
185
-
186
- :where(.bf-theme) :where(.bf-inline-options-option) input[type='radio'] {
187
- margin: 0;
188
- }
189
-
190
- :where(.bf-theme) :where(.bf-segmented-control, .bf-tab-buttons) {
191
- display: block;
192
- min-inline-size: 0;
193
- }
194
-
195
- :where(.bf-theme) :where(.bf-segmented-control-list, .bf-tab-buttons-list) {
196
- display: flex;
197
- flex-wrap: wrap;
198
- list-style: none;
199
- margin: 0;
200
- min-inline-size: 0;
201
- padding: 0;
202
- }
203
-
204
- :where(.bf-theme) :where(.bf-segmented-control-item, .bf-tab-buttons-item) {
205
- margin: 0;
206
- min-inline-size: 0;
207
- padding: 0;
208
- }
209
-
210
- :where(.bf-theme) :where(.bf-segmented-control-item + .bf-segmented-control-item, .bf-tab-buttons-item + .bf-tab-buttons-item) {
211
- margin-inline-start: calc(var(--bf-border-width) * -1);
212
- }
213
-
214
- :where(.bf-theme) :where(.bf-segmented-control-button, .bf-tab-buttons-button) {
215
- ${bodyTypeStyles} align-items: center;
216
- appearance: none;
217
- background-color: var(--bf-color-background-default);
218
- border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
219
- border-radius: 0;
220
- color: var(--bf-color-text-default);
221
- cursor: pointer;
222
- display: inline-flex;
223
- justify-content: center;
224
- margin-bottom: ${buttonMarginBottom};
225
- max-inline-size: 100%;
226
- overflow: hidden;
227
- ${buttonPadding} padding-inline: var(--bf-control-inline-padding-action);
228
- text-align: center;
229
- text-decoration: none;
230
- text-overflow: ellipsis;
231
- white-space: nowrap;
232
- }
233
-
234
- :where(.bf-theme) :where(.bf-segmented-control-item:first-child .bf-segmented-control-button, .bf-tab-buttons-item:first-child .bf-tab-buttons-button) {
235
- border-end-start-radius: var(--bf-radius);
236
- border-start-start-radius: var(--bf-radius);
237
- }
238
-
239
- :where(.bf-theme) :where(.bf-segmented-control-item:last-child .bf-segmented-control-button, .bf-tab-buttons-item:last-child .bf-tab-buttons-button) {
240
- border-end-end-radius: var(--bf-radius);
241
- border-start-end-radius: var(--bf-radius);
242
- }
243
-
244
- :where(.bf-theme) :where(.bf-segmented-control-button:hover, .bf-tab-buttons-button:hover) {
245
- background-color: var(--bf-color-background-hover);
246
- }
247
-
248
- :where(.bf-theme) :where(.bf-segmented-control-button:focus:not(:focus-visible), .bf-tab-buttons-button:focus:not(:focus-visible)) {
249
- outline: none;
250
- }
251
-
252
- :where(.bf-theme) :where(.bf-segmented-control-button:focus-visible, .bf-tab-buttons-button:focus-visible) {
253
- outline: 2px solid var(--bf-color-focus);
254
- outline-offset: -2px;
255
- z-index: 2;
256
- }
257
-
258
- :where(.bf-theme) :where(.bf-segmented-control-button.is-active, .bf-tab-buttons-button.is-active, .bf-segmented-control-button[aria-pressed='true'], .bf-tab-buttons-button[aria-pressed='true'], .bf-segmented-control-button[aria-selected='true'], .bf-tab-buttons-button[aria-selected='true']) {
259
- background-color: var(--bf-color-background-active);
260
- color: var(--bf-color-text-default);
261
- z-index: 1;
262
- }
263
-
264
- :where(.bf-theme) :where(.bf-breadcrumbs) {
265
- display: block;
266
- margin: 0;
267
- width: 100%;
268
- }
269
-
270
- :where(.bf-theme) :where(.bf-breadcrumbs-items) {
271
- align-items: center;
272
- display: flex;
273
- flex-wrap: wrap;
274
- gap: calc(var(--bf-baseline) * 0.5) calc(var(--bf-baseline) * 1.25);
275
- list-style: none;
276
- margin: 0;
277
- min-inline-size: 0;
278
- padding: 0;
279
- }
280
-
281
- :where(.bf-theme) :where(.bf-breadcrumbs-item) {
282
- ${bodyCaseTypeStyles} color: var(--bf-color-text-muted);
283
- margin: 0;
284
- min-inline-size: 0;
285
- }
286
-
287
- :where(.bf-theme) :where(.bf-breadcrumbs-item) + :where(.bf-breadcrumbs-item)::before {
288
- color: var(--bf-color-text-muted);
289
- content: "/";
290
- margin-inline-end: calc(var(--bf-baseline) * 0.75);
291
- }
292
-
293
- :where(.bf-theme) :where(.bf-breadcrumbs-item) a {
294
- color: inherit;
295
- text-decoration: none;
296
- }
297
-
298
- :where(.bf-theme) :where(.bf-breadcrumbs-item) a:hover {
299
- color: var(--bf-color-text-default);
300
- text-decoration: underline;
301
- }
302
-
303
- :where(.bf-theme) :where(.bf-breadcrumbs-item [aria-current='page'], .bf-breadcrumbs-item.is-active) {
304
- color: var(--bf-color-text-default);
305
- }
3
+ return `:where(.bf-theme) :where(.bf-tabs) {
4
+ display: grid;
5
+ gap: var(--bf-space-2);
6
+ min-inline-size: 0;
7
+ }
8
+
9
+ :where(.bf-theme) :where(.bf-tabs-list) {
10
+ box-shadow: inset 0 calc(var(--bf-border-width) * -1) 0 var(--bf-color-border-default);
11
+ display: flex;
12
+ gap: 0;
13
+ list-style: none;
14
+ margin: 0;
15
+ min-inline-size: 0;
16
+ overflow-x: auto;
17
+ padding: 0;
18
+ white-space: nowrap;
19
+ }
20
+
21
+ :where(.bf-theme) :where(.bf-tabs-item) {
22
+ margin: 0;
23
+ min-inline-size: 0;
24
+ padding: 0;
25
+ }
26
+
27
+ :where(.bf-theme) :where(.bf-tabs-link) {
28
+ ${bodyTypeStyles} align-items: center;
29
+ background: transparent;
30
+ border: 0;
31
+ border-block: var(--bf-border-width) solid transparent;
32
+ color: var(--bf-color-text-muted);
33
+ cursor: pointer;
34
+ display: flex;
35
+ gap: calc(var(--bf-baseline) * 0.5);
36
+ justify-content: center;
37
+ margin-bottom: 0;
38
+ padding-block-end: calc(var(--bf-single-line-row-padding-block) + var(--bf-single-line-row-margin-block-end));
39
+ padding-block-start: var(--bf-single-line-row-padding-block);
40
+ padding-inline: var(--bf-component-inline-inset-action);
41
+ text-decoration: none;
42
+ }
43
+
44
+ :where(.bf-theme) :where(.bf-tabs-link:hover) {
45
+ background: var(--bf-color-background-hover);
46
+ color: var(--bf-color-text-default);
47
+ }
48
+
49
+ :where(.bf-theme) :where(a.bf-tabs-link:hover) {
50
+ text-decoration: none;
51
+ }
52
+
53
+ :where(.bf-theme) :where(.bf-tabs-link:focus:not(:focus-visible)) {
54
+ outline: none;
55
+ }
56
+
57
+ :where(.bf-theme) :where(.bf-tabs-link:focus-visible) {
58
+ color: var(--bf-color-text-default);
59
+ outline: 0.125rem solid var(--bf-color-focus);
60
+ outline-offset: -0.125rem;
61
+ }
62
+
63
+ :where(.bf-theme) :where(.bf-tabs-link.is-active, .bf-tabs-link[aria-selected='true']) {
64
+ box-shadow: inset 0 calc(var(--bf-bar-thickness) * -1) 0 var(--bf-color-text-default);
65
+ color: var(--bf-color-text-default);
66
+ }
67
+
68
+ :where(.bf-theme) :where(.bf-tabs-panel) {
69
+ min-inline-size: 0;
70
+ }
71
+
72
+ :where(.bf-theme) :where(.bf-tabs-panel)[aria-hidden='true'] {
73
+ display: none;
74
+ }
75
+
76
+ :where(.bf-theme) :where(.bf-tabs.is-equal) {
77
+ --bf-ui-tabs-equal-min: 8rem;
78
+ }
79
+
80
+ :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-list) {
81
+ display: grid;
82
+ gap: calc(var(--bf-baseline) * 2);
83
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--bf-ui-tabs-equal-min)), 1fr));
84
+ overflow: visible;
85
+ white-space: normal;
86
+ }
87
+
88
+ :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-item) {
89
+ min-inline-size: 0;
90
+ white-space: normal;
91
+ }
92
+
93
+ :where(.bf-theme) :where(.bf-tabs.is-equal) :where(.bf-tabs-link) {
94
+ display: flex;
95
+ inline-size: 100%;
96
+ text-align: center;
97
+ white-space: normal;
98
+ }
99
+
100
+ :where(.bf-theme) :where(.bf-choice-list) {
101
+ display: grid;
102
+ gap: var(--bf-field-gap);
103
+ }
104
+
105
+ :where(.bf-theme) :where(.bf-choice-row) {
106
+ align-items: center;
107
+ background: var(--bf-color-background-default);
108
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
109
+ color: var(--bf-color-text-default);
110
+ cursor: pointer;
111
+ display: grid;
112
+ gap: calc(var(--bf-baseline) * 0.75);
113
+ grid-template-columns: auto minmax(0, 1fr) auto;
114
+ margin: 0 0 ${buttonMarginBottom};
115
+ min-inline-size: 0;
116
+ ${buttonPadding} padding-inline: var(--bf-component-inline-inset-field);
117
+ }
118
+
119
+ :where(.bf-theme) :where(.bf-choice-row:hover) {
120
+ background: var(--bf-color-background-hover);
121
+ }
122
+
123
+ :where(.bf-theme) :where(.bf-choice-row:has(:focus-visible)) {
124
+ outline: 0.125rem solid var(--bf-color-focus);
125
+ outline-offset: -0.125rem;
126
+ }
127
+
128
+ :where(.bf-theme) :where(.bf-choice-row input[type='radio']) {
129
+ margin: 0;
130
+ }
131
+
132
+ :where(.bf-theme) :where(.bf-choice-row-name) {
133
+ ${bodyStrongTypeStyles} display: block;
134
+ margin: 0;
135
+ min-inline-size: 0;
136
+ overflow: hidden;
137
+ text-overflow: ellipsis;
138
+ }
139
+
140
+ :where(.bf-theme) :where(.bf-choice-row-meta) {
141
+ ${bodyTypeStyles} color: var(--bf-color-text-muted);
142
+ display: block;
143
+ margin: 0;
144
+ min-inline-size: 0;
145
+ overflow: hidden;
146
+ text-overflow: ellipsis;
147
+ white-space: nowrap;
148
+ }
149
+
150
+ :where(.bf-theme) :where(.bf-choice-row.is-active),
151
+ :where(.bf-theme) :where(.bf-choice-row:has(input[type='radio']:checked)) {
152
+ background: var(--bf-color-background-active);
153
+ border-color: var(--bf-color-focus);
154
+ }
155
+
156
+ :where(.bf-theme) :where(.bf-inline-options) {
157
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-default);
158
+ display: grid;
159
+ gap: var(--bf-field-gap);
160
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
161
+ padding-block-start: var(--bf-panel-padding-block);
162
+ padding-inline: var(--bf-component-inline-inset-continuation);
163
+ }
164
+
165
+ :where(.bf-theme) :where(.bf-inline-options-heading) {
166
+ ${bodyCaseTypeStyles} color: var(--bf-color-text-muted);
167
+ display: block;
168
+ margin: 0;
169
+ }
170
+
171
+ :where(.bf-theme) :where(.bf-inline-options-heading) :where(.bf-form-label) {
172
+ color: inherit;
173
+ }
174
+
175
+ :where(.bf-theme) :where(.bf-inline-options-options) {
176
+ display: flex;
177
+ flex-wrap: wrap;
178
+ gap: calc(var(--bf-baseline) * 3);
179
+ }
180
+
181
+ :where(.bf-theme) :where(.bf-inline-options-option) {
182
+ align-items: center;
183
+ cursor: pointer;
184
+ display: flex;
185
+ gap: var(--bf-field-gap);
186
+ }
187
+
188
+ :where(.bf-theme) :where(.bf-inline-options-option) input[type='radio'] {
189
+ margin: 0;
190
+ }
191
+
192
+ :where(.bf-theme) :where(.bf-segmented-control, .bf-tab-buttons) {
193
+ display: block;
194
+ min-inline-size: 0;
195
+ }
196
+
197
+ :where(.bf-theme) :where(.bf-segmented-control-list, .bf-tab-buttons-list) {
198
+ display: flex;
199
+ flex-wrap: wrap;
200
+ list-style: none;
201
+ margin: 0;
202
+ min-inline-size: 0;
203
+ padding: 0;
204
+ }
205
+
206
+ :where(.bf-theme) :where(.bf-segmented-control-item, .bf-tab-buttons-item) {
207
+ margin: 0;
208
+ min-inline-size: 0;
209
+ padding: 0;
210
+ }
211
+
212
+ :where(.bf-theme) :where(.bf-segmented-control-item + .bf-segmented-control-item, .bf-tab-buttons-item + .bf-tab-buttons-item) {
213
+ margin-inline-start: calc(var(--bf-border-width) * -1);
214
+ }
215
+
216
+ :where(.bf-theme) :where(.bf-segmented-control-button, .bf-tab-buttons-button) {
217
+ ${bodyTypeStyles} align-items: center;
218
+ appearance: none;
219
+ background-color: var(--bf-color-background-default);
220
+ border: var(--bf-border-width) solid var(--bf-color-border-high-contrast);
221
+ border-radius: 0;
222
+ color: var(--bf-color-text-default);
223
+ cursor: pointer;
224
+ display: inline-flex;
225
+ justify-content: center;
226
+ margin-bottom: ${buttonMarginBottom};
227
+ max-inline-size: 100%;
228
+ overflow: hidden;
229
+ ${buttonPadding} padding-inline: var(--bf-control-inline-padding-action-bordered);
230
+ text-align: center;
231
+ text-decoration: none;
232
+ text-overflow: ellipsis;
233
+ white-space: nowrap;
234
+ }
235
+
236
+ :where(.bf-theme) :where(.bf-segmented-control-item:first-child .bf-segmented-control-button, .bf-tab-buttons-item:first-child .bf-tab-buttons-button) {
237
+ border-end-start-radius: var(--bf-radius);
238
+ border-start-start-radius: var(--bf-radius);
239
+ }
240
+
241
+ :where(.bf-theme) :where(.bf-segmented-control-item:last-child .bf-segmented-control-button, .bf-tab-buttons-item:last-child .bf-tab-buttons-button) {
242
+ border-end-end-radius: var(--bf-radius);
243
+ border-start-end-radius: var(--bf-radius);
244
+ }
245
+
246
+ :where(.bf-theme) :where(.bf-segmented-control-button:hover, .bf-tab-buttons-button:hover) {
247
+ background-color: var(--bf-color-background-hover);
248
+ }
249
+
250
+ :where(.bf-theme) :where(.bf-segmented-control-button:focus:not(:focus-visible), .bf-tab-buttons-button:focus:not(:focus-visible)) {
251
+ outline: none;
252
+ }
253
+
254
+ :where(.bf-theme) :where(.bf-segmented-control-button:focus-visible, .bf-tab-buttons-button:focus-visible) {
255
+ outline: 0.125rem solid var(--bf-color-focus);
256
+ outline-offset: -0.125rem;
257
+ z-index: 2;
258
+ }
259
+
260
+ :where(.bf-theme) :where(.bf-segmented-control-button.is-active, .bf-tab-buttons-button.is-active, .bf-segmented-control-button[aria-pressed='true'], .bf-tab-buttons-button[aria-pressed='true'], .bf-segmented-control-button[aria-selected='true'], .bf-tab-buttons-button[aria-selected='true']) {
261
+ background-color: var(--bf-color-background-active);
262
+ color: var(--bf-color-text-default);
263
+ z-index: 1;
264
+ }
265
+
266
+ :where(.bf-theme) :where(.bf-breadcrumbs) {
267
+ display: block;
268
+ margin: 0;
269
+ width: 100%;
270
+ }
271
+
272
+ :where(.bf-theme) :where(.bf-breadcrumbs-items) {
273
+ align-items: center;
274
+ display: flex;
275
+ flex-wrap: wrap;
276
+ gap: calc(var(--bf-baseline) * 0.5) calc(var(--bf-baseline) * 1.25);
277
+ list-style: none;
278
+ margin: 0;
279
+ min-inline-size: 0;
280
+ padding: 0;
281
+ }
282
+
283
+ :where(.bf-theme) :where(.bf-breadcrumbs-item) {
284
+ ${bodyCaseTypeStyles} color: var(--bf-color-text-muted);
285
+ margin: 0 0 var(--bf-body-margin-bottom);
286
+ min-inline-size: 0;
287
+ padding-block-end: 0;
288
+ padding-block-start: var(--bf-body-nudge-start);
289
+ }
290
+
291
+ :where(.bf-theme) :where(.bf-breadcrumbs-item) + :where(.bf-breadcrumbs-item)::before {
292
+ color: var(--bf-color-text-muted);
293
+ content: "/";
294
+ margin-inline-end: calc(var(--bf-baseline) * 0.75);
295
+ }
296
+
297
+ :where(.bf-theme) :where(.bf-breadcrumbs-item) a {
298
+ color: inherit;
299
+ text-decoration: none;
300
+ }
301
+
302
+ :where(.bf-theme) :where(.bf-breadcrumbs-item) a:hover {
303
+ color: var(--bf-color-text-default);
304
+ text-decoration: underline;
305
+ }
306
+
307
+ :where(.bf-theme) :where(.bf-breadcrumbs-item [aria-current='page'], .bf-breadcrumbs-item.is-active) {
308
+ color: var(--bf-color-text-default);
309
+ }
306
310
  `;
307
311
  }