baseline-foundry 0.1.4 → 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 (82) hide show
  1. package/README.md +17 -9
  2. package/config/experiments/ibm-plex-engine-smoke.json +1 -1
  3. package/config/experiments/ubuntu-engine-smoke.json +1 -1
  4. package/config/foundation-theme.json +1 -1
  5. package/config/tiers/app.json +6 -6
  6. package/config/tiers/documentation.json +2 -2
  7. package/config/tiers/editorial.json +1 -1
  8. package/config/tiers/os.json +6 -6
  9. package/dist/baseline-grid-overlay.js +2 -2
  10. package/dist/build.js +4 -4
  11. package/dist/code-snippet.js +1 -1
  12. package/dist/css-app-tier.js +10 -5
  13. package/dist/css-components/article-pagination.js +9 -8
  14. package/dist/css-components/button-actions.js +24 -4
  15. package/dist/css-components/cards-options.js +8 -8
  16. package/dist/css-components/chip-badge-status.d.ts +0 -3
  17. package/dist/css-components/chip-badge-status.js +24 -9
  18. package/dist/css-components/content-card.d.ts +7 -7
  19. package/dist/css-components/content-card.js +17 -16
  20. package/dist/css-components/control-row.d.ts +1 -1
  21. package/dist/css-components/control-row.js +1 -1
  22. package/dist/css-components/document-navigation.js +66 -29
  23. package/dist/css-components/editorial-content.js +1 -1
  24. package/dist/css-components/interactive-feedback.js +50 -28
  25. package/dist/css-components/interactive-tables.js +13 -8
  26. package/dist/css-components/legacy-navigation.d.ts +0 -1
  27. package/dist/css-components/legacy-navigation.js +85 -32
  28. package/dist/css-components/linked-logo-site-layout.d.ts +3 -3
  29. package/dist/css-components/linked-logo-site-layout.js +17 -20
  30. package/dist/css-components/list-tree.js +21 -19
  31. package/dist/css-components/list.js +9 -7
  32. package/dist/css-components/logo-media.d.ts +6 -6
  33. package/dist/css-components/logo-media.js +38 -27
  34. package/dist/css-components/navigation-layout.js +4 -4
  35. package/dist/css-components/panel.js +12 -8
  36. package/dist/css-components/search-box-and-filter.d.ts +0 -1
  37. package/dist/css-components/search-box-and-filter.js +18 -19
  38. package/dist/css-components/sites-editorial-ports.d.ts +3 -4
  39. package/dist/css-components/sites-editorial-ports.js +61 -29
  40. package/dist/css-components/sites-foundation.js +15 -19
  41. package/dist/css-components/sites-rich-lists.d.ts +5 -5
  42. package/dist/css-components/sites-rich-lists.js +26 -36
  43. package/dist/css-components/static-content-ports.d.ts +3 -3
  44. package/dist/css-components/static-content-ports.js +51 -37
  45. package/dist/css-components/tab-section.d.ts +3 -3
  46. package/dist/css-components/tab-section.js +34 -26
  47. package/dist/css-components/table.js +4 -3
  48. package/dist/css-components/tabs-choice-breadcrumbs.js +25 -21
  49. package/dist/css-components/tiered-list-equal-height-row.js +10 -10
  50. package/dist/css-components.js +189 -111
  51. package/dist/css-grid.d.ts +1 -1
  52. package/dist/css-grid.js +18 -8
  53. package/dist/css.js +94 -18
  54. package/dist/experiments/ibm-plex-engine-smoke/styles.css +894 -538
  55. package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +2 -2
  56. package/dist/experiments/ibm-plex-engine-smoke/tokens.json +1 -1
  57. package/dist/in-page-navigation.js +1 -1
  58. package/dist/presets/app-tier/styles.css +928 -568
  59. package/dist/presets/app-tier/surfaces.json +17 -17
  60. package/dist/presets/app-tier/tokens.json +7 -7
  61. package/dist/presets/prose/styles.css +919 -562
  62. package/dist/presets/prose/surfaces.json +17 -17
  63. package/dist/presets/prose/tokens.json +1 -1
  64. package/dist/resizable-aside.js +12 -4
  65. package/dist/styles.css +919 -562
  66. package/dist/surfaces.json +17 -17
  67. package/dist/tiers/app/styles.css +928 -568
  68. package/dist/tiers/app/surfaces.json +17 -17
  69. package/dist/tiers/app/tokens.json +7 -7
  70. package/dist/tiers/documentation/styles.css +920 -563
  71. package/dist/tiers/documentation/surfaces.json +17 -17
  72. package/dist/tiers/documentation/tokens.json +2 -2
  73. package/dist/tiers/editorial/styles.css +919 -562
  74. package/dist/tiers/editorial/surfaces.json +17 -17
  75. package/dist/tiers/editorial/tokens.json +1 -1
  76. package/dist/tiers/os/styles.css +925 -568
  77. package/dist/tiers/os/surfaces.json +17 -17
  78. package/dist/tiers/os/tokens.json +7 -7
  79. package/dist/tokens.json +1 -1
  80. package/dist/types.d.ts +1 -1
  81. package/docs/publishing.md +1 -1
  82. package/package.json +2 -2
@@ -13,11 +13,15 @@ export function documentNavigationCss(options) {
13
13
  :where(.bf-theme) :where(.bf-in-page-navigation) {
14
14
  container-name: bf-in-page-navigation;
15
15
  container-type: inline-size;
16
- margin-block: 0 var(--bf-section-space-shallow);
16
+ margin: 0;
17
17
  min-inline-size: 0;
18
18
  }
19
19
 
20
20
  :where(.bf-theme) :where(.bf-in-page-navigation-nav) {
21
+ --bf-stack-space: var(--bf-space-1);
22
+ align-content: start;
23
+ display: grid;
24
+ gap: var(--bf-stack-space);
21
25
  max-block-size: 100dvb;
22
26
  min-inline-size: 0;
23
27
  overflow: auto;
@@ -28,12 +32,17 @@ export function documentNavigationCss(options) {
28
32
  :where(.bf-theme) :where(.bf-in-page-navigation-heading) {
29
33
  ${headingTypeStyles} color: var(--bf-color-text-muted);
30
34
  display: block;
31
- margin: 0 0 var(--bf-space-1);
32
- padding-block: var(--bf-h6-nudge-start) var(--bf-h6-nudge-end);
35
+ margin-block: 0 var(--bf-h6-margin-bottom);
36
+ padding-block-end: 0;
37
+ padding-block-start: var(--bf-h6-nudge-start);
33
38
  }
34
39
 
35
40
  :where(.bf-theme) :where(.bf-in-page-navigation-list) {
41
+ --bf-stack-space: var(--bf-space-1);
42
+ align-content: start;
36
43
  border-inline-start: var(--bf-bar-thickness) solid var(--bf-color-border-low-contrast);
44
+ display: grid;
45
+ gap: var(--bf-stack-space);
37
46
  list-style: none;
38
47
  margin: 0;
39
48
  min-inline-size: 0;
@@ -41,13 +50,16 @@ ${headingTypeStyles} color: var(--bf-color-text-muted);
41
50
  }
42
51
 
43
52
  :where(.bf-theme) :where(.bf-in-page-navigation-item) {
53
+ align-content: start;
54
+ display: grid;
55
+ gap: var(--bf-stack-space);
44
56
  margin: 0;
45
57
  min-inline-size: 0;
46
58
  padding: 0;
47
59
  position: relative;
48
60
  }
49
61
 
50
- :where(.bf-theme) :where(.bf-in-page-navigation-link) {
62
+ :where(.bf-theme) :where(a.bf-in-page-navigation-link) {
51
63
  ${bodyTypeStyles} color: var(--bf-color-text-muted);
52
64
  display: -webkit-box;
53
65
  line-clamp: 2;
@@ -55,7 +67,7 @@ ${bodyTypeStyles} color: var(--bf-color-text-muted);
55
67
  min-inline-size: 0;
56
68
  overflow: hidden;
57
69
  overflow-wrap: anywhere;
58
- padding-block: calc(var(--bf-body-nudge-start) + var(--bf-space-half)) calc(var(--bf-body-nudge-end) + var(--bf-space-half));
70
+ padding-block: var(--bf-body-nudge-start) var(--bf-body-nudge-end);
59
71
  padding-inline: var(--bf-space-2) 0;
60
72
  position: relative;
61
73
  text-decoration: none;
@@ -63,7 +75,7 @@ ${bodyTypeStyles} color: var(--bf-color-text-muted);
63
75
  -webkit-box-orient: vertical;
64
76
  }
65
77
 
66
- :where(.bf-theme) :where(.bf-in-page-navigation-link:hover) {
78
+ :where(.bf-theme) :where(a.bf-in-page-navigation-link:hover) {
67
79
  color: var(--bf-color-text-default);
68
80
  text-decoration: none;
69
81
  }
@@ -73,8 +85,8 @@ ${bodyTypeStyles} color: var(--bf-color-text-muted);
73
85
  }
74
86
 
75
87
  :where(.bf-theme) :where(.bf-in-page-navigation-link:focus-visible) {
76
- outline: 2px solid var(--bf-color-focus);
77
- outline-offset: 2px;
88
+ outline: 0.125rem solid var(--bf-color-focus);
89
+ outline-offset: 0.125rem;
78
90
  }
79
91
 
80
92
  :where(.bf-theme) :where(.bf-in-page-navigation-link.is-active, .bf-in-page-navigation-link[aria-current]) {
@@ -125,8 +137,8 @@ ${bodyCaseTypeStyles} align-items: center;
125
137
  }
126
138
 
127
139
  :where(.bf-theme) :where(.bf-in-page-navigation-toggle:focus-visible) {
128
- outline: 2px solid var(--bf-color-focus);
129
- outline-offset: -2px;
140
+ outline: 0.125rem solid var(--bf-color-focus);
141
+ outline-offset: -0.125rem;
130
142
  }
131
143
 
132
144
  :where(.bf-theme) :where(.bf-in-page-navigation-toggle > .bf-icon) {
@@ -140,6 +152,7 @@ ${bodyCaseTypeStyles} align-items: center;
140
152
  border-block-end: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
141
153
  display: grid;
142
154
  grid-template-columns: minmax(0, 1fr) auto;
155
+ row-gap: 0;
143
156
  max-block-size: none;
144
157
  overflow: visible;
145
158
  position: static;
@@ -152,6 +165,7 @@ ${bodyCaseTypeStyles} align-items: center;
152
165
  :where(.bf-theme) :where(.bf-in-page-navigation-list) {
153
166
  border: 0;
154
167
  display: flex;
168
+ gap: 0;
155
169
  grid-column: 1;
156
170
  grid-row: 1;
157
171
  margin: 0;
@@ -216,7 +230,8 @@ ${bodyCaseTypeStyles} align-items: center;
216
230
  :where(.bf-theme) :where(.bf-in-page-navigation.is-expanded > .bf-in-page-navigation-nav > .bf-in-page-navigation-list, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) > .bf-in-page-navigation-nav > .bf-in-page-navigation-list) {
217
231
  background: var(--bf-color-background-alt);
218
232
  border-inline-start: var(--bf-bar-thickness) solid var(--bf-color-border-low-contrast);
219
- display: block;
233
+ display: grid;
234
+ gap: var(--bf-stack-space);
220
235
  grid-column: 1 / -1;
221
236
  grid-row: 2;
222
237
  /* The mobile nav owns a bottom rule; reserve its thickness within the
@@ -227,20 +242,21 @@ ${bodyCaseTypeStyles} align-items: center;
227
242
  }
228
243
 
229
244
  :where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-item, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-item) {
230
- display: block;
245
+ display: grid;
231
246
  max-inline-size: none;
232
247
  }
233
248
 
234
249
  :where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-link, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link) {
235
250
  display: -webkit-box;
236
251
  overflow-wrap: anywhere;
237
- padding-block: calc(var(--bf-body-nudge-start) + var(--bf-space-half)) calc(var(--bf-body-nudge-end) + var(--bf-space-half));
252
+ padding-block: var(--bf-body-nudge-start) var(--bf-body-nudge-end);
238
253
  padding-inline: var(--bf-space-2) 0;
239
254
  white-space: normal;
240
255
  }
241
256
 
242
257
  :where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-list .bf-in-page-navigation-list, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-list .bf-in-page-navigation-list) {
243
- display: block;
258
+ display: grid;
259
+ gap: var(--bf-stack-space);
244
260
  }
245
261
 
246
262
  :where(.bf-theme) :where(.bf-in-page-navigation.is-expanded .bf-in-page-navigation-link.is-active, .bf-in-page-navigation.is-expanded .bf-in-page-navigation-link[aria-current], .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link.is-active, .bf-in-page-navigation:has(.bf-in-page-navigation-toggle[aria-expanded='true']) .bf-in-page-navigation-link[aria-current])::before {
@@ -323,30 +339,47 @@ ${bodyCaseTypeStyles} align-items: center;
323
339
  /* ------------------------------------------------------------------ */
324
340
 
325
341
  :where(.bf-theme) :where(.bf-table-of-contents) {
342
+ --bf-table-of-contents-section-gap: var(--bf-section-space-shallow);
343
+ align-content: start;
326
344
  container-name: bf-table-of-contents;
327
345
  container-type: inline-size;
328
- margin-block: 0 var(--bf-section-space-shallow);
346
+ display: grid;
347
+ gap: var(--bf-table-of-contents-section-gap);
348
+ margin: 0;
329
349
  min-inline-size: 0;
330
350
  }
331
351
 
332
352
  :where(.bf-theme) :where(.bf-table-of-contents-section) {
353
+ --bf-stack-space: 0rem;
354
+ align-content: start;
355
+ display: grid;
356
+ gap: var(--bf-stack-space);
333
357
  margin: 0;
334
358
  min-inline-size: 0;
335
- padding-block-end: var(--bf-space-2);
359
+ padding: 0;
360
+ position: relative;
336
361
  }
337
362
 
338
- :where(.bf-theme) :where(.bf-table-of-contents-section + .bf-table-of-contents-section) {
339
- border-block-start: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
340
- padding-block-start: calc(var(--bf-space-2) - var(--bf-border-width));
363
+ :where(.bf-theme) :where(.bf-table-of-contents-section + .bf-table-of-contents-section)::before {
364
+ background: var(--bf-color-border-low-contrast);
365
+ block-size: var(--bf-border-width);
366
+ content: "";
367
+ inset-block-start: 0;
368
+ inset-inline: 0;
369
+ position: absolute;
341
370
  }
342
371
 
343
372
  :where(.bf-theme) :where(.bf-table-of-contents-heading) {
344
- ${headingTypeStyles} color: var(--bf-color-text-muted);
345
- margin: 0 0 var(--bf-space-1);
346
- padding-block: var(--bf-h6-nudge-start) var(--bf-h6-nudge-end);
373
+ color: var(--bf-color-text-default);
374
+ margin: 0;
375
+ padding-block-end: 0;
347
376
  }
348
377
 
349
378
  :where(.bf-theme) :where(.bf-table-of-contents-list) {
379
+ --bf-stack-space: 0rem;
380
+ align-content: start;
381
+ display: grid;
382
+ gap: var(--bf-stack-space);
350
383
  list-style: none;
351
384
  margin: 0;
352
385
  min-inline-size: 0;
@@ -354,21 +387,25 @@ ${headingTypeStyles} color: var(--bf-color-text-muted);
354
387
  }
355
388
 
356
389
  :where(.bf-theme) :where(.bf-table-of-contents-item) {
390
+ align-content: start;
391
+ display: grid;
392
+ gap: var(--bf-stack-space);
357
393
  margin: 0;
358
394
  min-inline-size: 0;
359
395
  padding: 0;
360
396
  }
361
397
 
362
- :where(.bf-theme) :where(.bf-table-of-contents-link) {
363
- ${bodyTypeStyles} color: var(--bf-color-link-default);
398
+ :where(.bf-theme) :where(a.bf-table-of-contents-link) {
399
+ ${bodyTypeStyles} border-block: var(--bf-border-width) solid transparent;
400
+ color: var(--bf-color-link-default);
364
401
  display: block;
365
- margin: 0;
402
+ margin: 0 0 var(--bf-single-line-row-margin-block-end);
366
403
  overflow-wrap: anywhere;
367
- padding-block: calc(var(--bf-body-nudge-start) + var(--bf-space-half)) calc(var(--bf-body-nudge-end) + var(--bf-space-half));
404
+ padding-block: var(--bf-single-line-row-padding-block);
368
405
  text-decoration: none;
369
406
  }
370
407
 
371
- :where(.bf-theme) :where(.bf-table-of-contents-link:hover) {
408
+ :where(.bf-theme) :where(a.bf-table-of-contents-link:hover) {
372
409
  color: var(--bf-color-text-default);
373
410
  text-decoration: underline;
374
411
  }
@@ -378,8 +415,8 @@ ${bodyTypeStyles} color: var(--bf-color-link-default);
378
415
  }
379
416
 
380
417
  :where(.bf-theme) :where(.bf-table-of-contents-link:focus-visible) {
381
- outline: 2px solid var(--bf-color-focus);
382
- outline-offset: 2px;
418
+ outline: 0.125rem solid var(--bf-color-focus);
419
+ outline-offset: 0.125rem;
383
420
  }
384
421
 
385
422
  :where(.bf-theme) :where(.bf-table-of-contents-link.is-active, .bf-table-of-contents-link[aria-current]) {
@@ -12,7 +12,7 @@ export function editorialContentCss(options) {
12
12
  border-inline-start: var(--bf-bar-thickness) solid var(--bf-notice-border);
13
13
  color: var(--bf-color-text-default);
14
14
  display: flow-root;
15
- margin-block: 0 var(--bf-section-space-shallow);
15
+ margin: 0;
16
16
  max-inline-size: 100%;
17
17
  padding-block: var(--bf-space-2);
18
18
  padding-inline: var(--bf-space-2);
@@ -77,12 +77,13 @@ export function interactiveFeedbackCss() {
77
77
  border: var(--bf-border-width) solid var(--bf-color-border-default);
78
78
  border-inline-start: var(--bf-bar-thickness) solid var(--bf-notification-accent);
79
79
  color: var(--bf-color-text-default);
80
- margin-block: 0 var(--bf-space-3);
80
+ margin-block: 0;
81
81
  max-inline-size: 100%;
82
82
  min-inline-size: 0;
83
83
  overflow-wrap: anywhere;
84
- padding-block: calc(var(--bf-space-1) - var(--bf-border-width));
85
- padding-inline: calc((var(--bf-space-2) * 2) + var(--bf-icon-size-default)) 0;
84
+ padding-block-end: max(0rem, calc(var(--bf-space-half) - var(--bf-border-width)));
85
+ padding-block-start: 0;
86
+ padding-inline: calc(var(--bf-icon-label-inline-offset) - var(--bf-bar-thickness)) var(--bf-space-1);
86
87
  position: relative;
87
88
  }
88
89
 
@@ -105,14 +106,14 @@ export function interactiveFeedbackCss() {
105
106
  :where(.bf-theme) :where(.bf-notification.is-borderless) {
106
107
  border: 0;
107
108
  padding-block: 0;
108
- padding-inline: calc(var(--bf-space-2) * 2) 0;
109
+ padding-inline: calc(var(--bf-icon-size-default) + var(--bf-space-1)) 0;
109
110
  }
110
111
 
111
112
  :where(.bf-theme) :where(.bf-notification-icon) {
112
113
  background-color: var(--bf-notification-accent);
113
114
  background-image: none;
114
- inset-block-start: calc(var(--bf-space-1) + ((var(--bf-body-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-body-nudge-start));
115
- inset-inline-start: var(--bf-space-2);
115
+ inset-block-start: calc(((var(--bf-h6-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-h6-nudge-start) - var(--bf-border-width));
116
+ inset-inline-start: calc(var(--bf-icon-label-inline-offset) - var(--bf-bar-thickness) - var(--bf-icon-size-default) - var(--bf-space-1));
116
117
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0zm0 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zm-.75 5.25h1.5v5h-1.5v-5zM8 3.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2z'/%3E%3C/svg%3E");
117
118
  mask-position: center;
118
119
  mask-repeat: no-repeat;
@@ -133,22 +134,52 @@ export function interactiveFeedbackCss() {
133
134
  }
134
135
 
135
136
  :where(.bf-theme) :where(.bf-notification.is-borderless > .bf-notification-icon) {
136
- inset-block-start: calc(((var(--bf-body-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-body-nudge-start));
137
+ inset-block-start: calc(((var(--bf-h6-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-h6-nudge-start));
137
138
  inset-inline-start: 0;
138
139
  }
139
140
 
141
+ :where(.bf-theme) :where(.bf-notification.is-inline > .bf-notification-icon) {
142
+ inset-block-start: calc(((var(--bf-body-line-height) - var(--bf-icon-size-default)) / 2) + var(--bf-body-nudge-start) - var(--bf-border-width));
143
+ }
144
+
140
145
  :where(.bf-theme) :where(.bf-notification-content, .bf-notification-meta) {
141
146
  max-inline-size: 100%;
142
147
  min-inline-size: 0;
143
148
  }
144
149
 
145
150
  :where(.bf-theme) :where(.bf-notification-content) {
146
- margin-block-end: calc(var(--bf-space-2) - var(--bf-body-nudge-start));
147
- padding-block-start: var(--bf-body-nudge-start);
148
- padding-inline-end: var(--bf-space-4);
151
+ /* Neutralise the shell's top border so the first metric role starts on-grid. */
152
+ margin-block: calc(var(--bf-border-width) * -1) 0;
153
+ padding-block-start: 0;
154
+ padding-inline-end: calc(var(--bf-icon-size-default) + var(--bf-space-1));
155
+ }
156
+
157
+ :where(.bf-theme) :where(.bf-notification.is-borderless .bf-notification-content) {
158
+ --bf-stack-space: 0rem;
159
+ margin-block-start: 0;
160
+ }
161
+
162
+ /* Metadata-bearing notifications use a full baseline between title and copy,
163
+ and pair it with the full end inset. This keeps both the metadata boundary
164
+ and the complete shell on-grid; simpler messages retain compact rhythm. */
165
+ :where(.bf-theme) :where(.bf-notification:has(> .bf-notification-meta)) {
166
+ padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width));
167
+ }
168
+
169
+ :where(.bf-theme) :where(.bf-notification.is-inline) {
170
+ padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width));
171
+ }
172
+
173
+ /* Return the cancelled H6/body metric edges to the shell boundary. The
174
+ * Documentation tier deliberately gives those roles different metrics, so
175
+ * deriving this inset keeps every bordered notification on-grid without
176
+ * reopening the visible title/copy gap. Keep this after the shell variants so
177
+ * the metric relationship owns their final compensation. */
178
+ :where(.bf-theme) :where(.bf-notification:has(> .bf-notification-content.is-metric-flush):not(.is-borderless)) {
179
+ padding-block-end: calc(var(--bf-space-1) - var(--bf-border-width) + var(--bf-baseline) - var(--bf-h6-nudge-start) - var(--bf-body-margin-bottom));
149
180
  }
150
181
 
151
- :where(.bf-theme) :where(.bf-notification-title, .bf-notification-message, .bf-notification-timestamp) {
182
+ :where(.bf-theme) :where(.bf-notification-message, .bf-notification-timestamp) {
152
183
  font-family: var(--bf-body-font-family);
153
184
  font-size: var(--bf-body-font-size);
154
185
  font-style: var(--bf-body-font-style);
@@ -156,20 +187,11 @@ export function interactiveFeedbackCss() {
156
187
  max-inline-size: 100%;
157
188
  }
158
189
 
159
- :where(.bf-theme) :where(.bf-notification-title) {
160
- font-weight: 600;
161
- margin-block: 0;
162
- padding-block: 0;
163
- }
164
-
165
190
  :where(.bf-theme) :where(.bf-notification-message) {
166
191
  font-weight: var(--bf-body-font-weight);
167
- margin-block: 0;
168
- padding-block: 0;
169
- }
170
-
171
- :where(.bf-theme) :where(.bf-notification.is-inline .bf-notification-title, .bf-notification.is-inline .bf-notification-message) {
172
- display: inline;
192
+ margin-block: 0 var(--bf-body-margin-bottom);
193
+ padding-block-end: 0;
194
+ padding-block-start: var(--bf-body-nudge-start);
173
195
  }
174
196
 
175
197
  :where(.bf-theme) :where(.bf-notification-close) {
@@ -179,8 +201,8 @@ export function interactiveFeedbackCss() {
179
201
  margin-block-end: 0;
180
202
  padding: 0;
181
203
  position: absolute;
182
- inset-block-start: var(--bf-space-1);
183
- inset-inline-end: var(--bf-space-1);
204
+ inset-block-start: 0;
205
+ inset-inline-end: 0;
184
206
  }
185
207
 
186
208
  :where(.bf-theme) :where(.bf-notification.is-borderless .bf-notification-close) {
@@ -195,7 +217,7 @@ export function interactiveFeedbackCss() {
195
217
  flex-wrap: wrap;
196
218
  gap: var(--bf-space-1) var(--bf-space-2);
197
219
  justify-content: space-between;
198
- margin-block-end: var(--bf-space-1);
220
+ margin-block-end: 0;
199
221
  padding-block-start: calc(var(--bf-space-1) - var(--bf-border-width));
200
222
  padding-inline-end: var(--bf-space-2);
201
223
  }
@@ -208,7 +230,7 @@ export function interactiveFeedbackCss() {
208
230
  :where(.bf-theme) :where(.bf-notification-timestamp) {
209
231
  color: var(--bf-color-text-muted);
210
232
  font-weight: var(--bf-body-font-weight);
211
- margin-block: 0 calc(var(--bf-space-2) - var(--bf-body-nudge-start));
233
+ margin-block: 0 var(--bf-body-margin-bottom);
212
234
  padding-block: var(--bf-body-nudge-start) 0;
213
235
  }
214
236
 
@@ -223,7 +245,7 @@ export function interactiveFeedbackCss() {
223
245
 
224
246
  :where(.bf-theme) :where(.bf-notification-actions > .bf-button.is-link) {
225
247
  flex: 0 0 auto;
226
- margin-block-end: calc(var(--bf-space-2) - var(--bf-body-nudge-start));
248
+ margin-block-end: var(--bf-body-margin-bottom);
227
249
  padding-block: var(--bf-body-nudge-start) 0;
228
250
  }
229
251
  `;
@@ -20,10 +20,10 @@ export function interactiveTablesCss() {
20
20
  cursor: inherit;
21
21
  display: inline-block;
22
22
  font: inherit;
23
- margin: -2px calc(var(--bf-space-half) * -1);
23
+ margin: -0.125rem calc(var(--bf-space-half) * -1);
24
24
  max-inline-size: 100%;
25
25
  overflow: hidden;
26
- padding: 2px var(--bf-space-half);
26
+ padding: 0.125rem var(--bf-space-half);
27
27
  text-align: inherit;
28
28
  text-decoration: inherit;
29
29
  text-overflow: inherit;
@@ -34,7 +34,7 @@ export function interactiveTablesCss() {
34
34
  :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]:hover, .bf-table-sort-button:focus-visible) {
35
35
  color: var(--bf-color-link-default);
36
36
  text-decoration: underline;
37
- text-decoration-thickness: 1px;
37
+ text-decoration-thickness: 0.0625rem;
38
38
  text-underline-offset: 0.075em;
39
39
  }
40
40
 
@@ -43,11 +43,11 @@ export function interactiveTablesCss() {
43
43
  }
44
44
 
45
45
  :where(.bf-theme) :where(.bf-table-sort-button:focus-visible) {
46
- outline: 2px solid var(--bf-color-focus);
47
- outline-offset: -2px;
46
+ outline: 0.125rem solid var(--bf-color-focus);
47
+ outline-offset: -0.125rem;
48
48
  }
49
49
 
50
- :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'], .bf-table.is-sortable th[aria-sort='descending'])::after {
50
+ :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort])::after {
51
51
  background-image: var(--bf-ui-icon-chevron-down);
52
52
  background-position: center;
53
53
  background-repeat: no-repeat;
@@ -57,9 +57,14 @@ export function interactiveTablesCss() {
57
57
  display: inline-block;
58
58
  inline-size: var(--bf-icon-size-default);
59
59
  margin-inline-start: var(--bf-space-half);
60
+ opacity: 0;
60
61
  vertical-align: calc((1cap - var(--bf-icon-size-default)) / 2);
61
62
  }
62
63
 
64
+ :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'], .bf-table.is-sortable th[aria-sort='descending'])::after {
65
+ opacity: 1;
66
+ }
67
+
63
68
  :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'])::after {
64
69
  transform: rotate(180deg);
65
70
  }
@@ -96,9 +101,9 @@ export function interactiveTablesCss() {
96
101
  }
97
102
 
98
103
  :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > thead) {
99
- block-size: 1px;
104
+ block-size: 0.0625rem;
100
105
  clip-path: inset(50%);
101
- inline-size: 1px;
106
+ inline-size: 0.0625rem;
102
107
  overflow: hidden;
103
108
  position: absolute;
104
109
  white-space: nowrap;
@@ -4,6 +4,5 @@ export interface LegacyNavigationCssOptions {
4
4
  bodyTypeStyles: string;
5
5
  buttonMarginBottom: string;
6
6
  buttonPadding: string;
7
- compactButtonPadding: string;
8
7
  }
9
8
  export declare function legacyNavigationCss(options: LegacyNavigationCssOptions): string;