baseline-foundry 0.1.4 → 0.1.6
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.
- package/README.md +17 -9
- package/config/experiments/ibm-plex-engine-smoke.json +1 -1
- package/config/experiments/ubuntu-engine-smoke.json +1 -1
- package/config/foundation-theme.json +1 -1
- package/config/tiers/app.json +6 -6
- package/config/tiers/documentation.json +2 -2
- package/config/tiers/editorial.json +1 -1
- package/config/tiers/os.json +6 -6
- package/dist/baseline-grid-overlay.js +2 -2
- package/dist/build.js +4 -4
- package/dist/code-snippet.js +1 -1
- package/dist/css-app-tier.js +16 -5
- package/dist/css-components/article-pagination.js +9 -8
- package/dist/css-components/button-actions.js +24 -4
- package/dist/css-components/cards-options.js +8 -8
- package/dist/css-components/chip-badge-status.d.ts +0 -3
- package/dist/css-components/chip-badge-status.js +57 -10
- package/dist/css-components/content-card.d.ts +7 -7
- package/dist/css-components/content-card.js +17 -16
- package/dist/css-components/control-row.d.ts +1 -1
- package/dist/css-components/control-row.js +1 -1
- package/dist/css-components/document-navigation.js +66 -29
- package/dist/css-components/editorial-content.js +1 -1
- package/dist/css-components/interactive-feedback.js +50 -28
- package/dist/css-components/interactive-tables.js +13 -8
- package/dist/css-components/legacy-navigation.d.ts +0 -1
- package/dist/css-components/legacy-navigation.js +108 -32
- package/dist/css-components/linked-logo-site-layout.d.ts +3 -3
- package/dist/css-components/linked-logo-site-layout.js +17 -20
- package/dist/css-components/list-tree.js +21 -19
- package/dist/css-components/list.js +9 -7
- package/dist/css-components/logo-media.d.ts +6 -6
- package/dist/css-components/logo-media.js +38 -27
- package/dist/css-components/navigation-layout.js +6 -8
- package/dist/css-components/panel.js +12 -12
- package/dist/css-components/search-box-and-filter.d.ts +0 -1
- package/dist/css-components/search-box-and-filter.js +18 -19
- package/dist/css-components/sites-editorial-ports.d.ts +3 -4
- package/dist/css-components/sites-editorial-ports.js +61 -29
- package/dist/css-components/sites-foundation.js +15 -19
- package/dist/css-components/sites-rich-lists.d.ts +5 -5
- package/dist/css-components/sites-rich-lists.js +26 -36
- package/dist/css-components/static-content-ports.d.ts +3 -3
- package/dist/css-components/static-content-ports.js +51 -37
- package/dist/css-components/tab-section.d.ts +3 -3
- package/dist/css-components/tab-section.js +34 -26
- package/dist/css-components/table.js +4 -7
- package/dist/css-components/tabs-choice-breadcrumbs.js +25 -21
- package/dist/css-components/tiered-list-equal-height-row.js +10 -10
- package/dist/css-components.js +243 -124
- package/dist/css-grid.d.ts +1 -1
- package/dist/css-grid.js +18 -8
- package/dist/css.js +94 -18
- package/dist/experiments/ibm-plex-engine-smoke/styles.css +1005 -563
- package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +2 -2
- package/dist/experiments/ibm-plex-engine-smoke/tokens.json +1 -1
- package/dist/in-page-navigation.js +1 -1
- package/dist/presets/app-tier/styles.css +1046 -593
- package/dist/presets/app-tier/surfaces.json +17 -17
- package/dist/presets/app-tier/tokens.json +7 -7
- package/dist/presets/prose/styles.css +1036 -587
- package/dist/presets/prose/surfaces.json +17 -17
- package/dist/presets/prose/tokens.json +1 -1
- package/dist/resizable-aside.js +12 -4
- package/dist/styles.css +1036 -587
- package/dist/surfaces.json +17 -17
- package/dist/tiers/app/styles.css +1046 -593
- package/dist/tiers/app/surfaces.json +17 -17
- package/dist/tiers/app/tokens.json +7 -7
- package/dist/tiers/documentation/styles.css +1037 -588
- package/dist/tiers/documentation/surfaces.json +17 -17
- package/dist/tiers/documentation/tokens.json +2 -2
- package/dist/tiers/editorial/styles.css +1036 -587
- package/dist/tiers/editorial/surfaces.json +17 -17
- package/dist/tiers/editorial/tokens.json +1 -1
- package/dist/tiers/os/styles.css +1042 -593
- package/dist/tiers/os/surfaces.json +17 -17
- package/dist/tiers/os/tokens.json +7 -7
- package/dist/tokens.json +1 -1
- package/dist/types.d.ts +1 -1
- package/docs/publishing.md +1 -1
- package/package.json +2 -2
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* separate family from the general-purpose `bf-card` primitive.
|
|
4
4
|
*
|
|
5
5
|
* Vanilla -> BF rhythm mapping (Vanilla's spacing unit is 0.5rem):
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
8
|
-
* -
|
|
9
|
-
* -
|
|
6
|
+
* - 1rem content padding/gap -> `--bf-space-2`.
|
|
7
|
+
* - 0.5rem footer/image spacing -> `--bf-space-1`.
|
|
8
|
+
* - 2rem wrapper separation -> `--bf-space-4`.
|
|
9
|
+
* - 23.75rem vertical minimum -> 48 BF baselines (24rem in editorial), avoiding
|
|
10
10
|
* Vanilla's half-baseline ending while retaining its occupied silhouette.
|
|
11
|
-
* -
|
|
12
|
-
* -
|
|
13
|
-
* -
|
|
11
|
+
* - 12rem horizontal/text minimum -> 24 BF baselines.
|
|
12
|
+
* - 22rem eight-column minimum -> 44 BF baselines.
|
|
13
|
+
* - 17.75rem horizontal media width -> 36 BF baselines (18rem in editorial).
|
|
14
14
|
*
|
|
15
15
|
* The root card establishes a named query container. Only descendants change
|
|
16
16
|
* inside container queries; this avoids the invalid query-the-container-itself
|
|
@@ -40,7 +40,7 @@ export function contentCardCss() {
|
|
|
40
40
|
/* Snap the grid-row wrapper after intrinsic image/copy measurement. Because
|
|
41
41
|
the card flexes inside it, peers retain Vanilla's equal-height row while
|
|
42
42
|
the card edge and the following row both land on BF baselines. */
|
|
43
|
-
@supports (block-size: calc-size(auto, round(up, size,
|
|
43
|
+
@supports (block-size: calc-size(auto, round(up, size, 0.0625rem))) {
|
|
44
44
|
:where(.bf-theme) :where(.bf-content-card-wrapper) {
|
|
45
45
|
block-size: calc-size(auto, round(up, size, var(--bf-baseline)));
|
|
46
46
|
}
|
|
@@ -217,7 +217,7 @@ export function contentCardCss() {
|
|
|
217
217
|
text-transform: var(--bf-h1-text-transform);
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
:where(.bf-theme) :where(.bf-content-card-main-link) {
|
|
220
|
+
:where(.bf-theme) :where(a.bf-content-card-main-link) {
|
|
221
221
|
-webkit-box-orient: vertical;
|
|
222
222
|
-webkit-line-clamp: 3;
|
|
223
223
|
color: inherit;
|
|
@@ -237,7 +237,7 @@ export function contentCardCss() {
|
|
|
237
237
|
z-index: 1;
|
|
238
238
|
}
|
|
239
239
|
|
|
240
|
-
:where(.bf-theme) :where(.bf-content-card-main-link:is(:hover, :focus, :active, :visited)) {
|
|
240
|
+
:where(.bf-theme) :where(a.bf-content-card-main-link:is(:hover, :focus, :active, :visited)) {
|
|
241
241
|
color: inherit;
|
|
242
242
|
text-decoration: none;
|
|
243
243
|
}
|
|
@@ -247,8 +247,8 @@ export function contentCardCss() {
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
:where(.bf-theme) :where(.bf-content-card:has(.bf-content-card-main-link:focus-visible)) {
|
|
250
|
-
outline:
|
|
251
|
-
outline-offset:
|
|
250
|
+
outline: 0.1875rem solid var(--bf-color-focus);
|
|
251
|
+
outline-offset: 0.125rem;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
254
|
/* All nested actions sit above the expanded main-link hit area. This includes
|
|
@@ -324,6 +324,7 @@ export function contentCardCss() {
|
|
|
324
324
|
min-inline-size: 0;
|
|
325
325
|
overflow-x: auto;
|
|
326
326
|
padding-block-end: var(--bf-space-1);
|
|
327
|
+
padding-block-start: calc(0.5rem - var(--bf-border-width));
|
|
327
328
|
padding-inline: var(--bf-space-2);
|
|
328
329
|
position: relative;
|
|
329
330
|
scrollbar-width: none;
|
|
@@ -361,11 +362,11 @@ export function contentCardCss() {
|
|
|
361
362
|
|
|
362
363
|
/* Internal geometry responds to the card's allocated width. The card root is
|
|
363
364
|
only the container; the frame/media/body descendants own queried styles. */
|
|
364
|
-
/* Vanilla switches the viewport at
|
|
365
|
+
/* Vanilla switches the viewport at 38.75rem/64.75rem. A four-column card is much
|
|
365
366
|
narrower than that viewport after grid margins and gutters, so its internal
|
|
366
|
-
horizontal layout uses Vanilla's
|
|
367
|
-
eight-column 50/50 split starts at the roughly
|
|
368
|
-
|
|
367
|
+
horizontal layout uses Vanilla's 28.75rem minimum viable allocation. The
|
|
368
|
+
eight-column 50/50 split starts at the roughly 60rem allocation left by the
|
|
369
|
+
64.75rem viewport. This preserves the rendered switch in embedded BF grids. */
|
|
369
370
|
@container bf-content-card (width < 28.75rem) {
|
|
370
371
|
:where(.bf-theme) :where(.bf-content-card-frame:not(:has(.bf-content-card-footer))) {
|
|
371
372
|
min-block-size: 0;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** A wrapping form composition whose children retain their
|
|
1
|
+
/** A wrapping form composition whose children retain their metric geometry. */
|
|
2
2
|
export declare function controlRowCss(): string;
|
|
@@ -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
|
|
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
|
|
32
|
-
padding-block:
|
|
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:
|
|
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:
|
|
77
|
-
outline-offset:
|
|
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:
|
|
129
|
-
outline-offset: -
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
340
|
-
|
|
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
|
-
|
|
345
|
-
margin: 0
|
|
346
|
-
padding-block:
|
|
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}
|
|
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:
|
|
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:
|
|
382
|
-
outline-offset:
|
|
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
|
|
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
|
|
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-
|
|
85
|
-
padding-
|
|
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-
|
|
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(
|
|
115
|
-
inset-inline-start: var(--bf-space-
|
|
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-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
-
padding-
|
|
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-
|
|
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:
|
|
183
|
-
inset-inline-end:
|
|
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:
|
|
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
|
|
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:
|
|
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: -
|
|
23
|
+
margin: -0.125rem calc(var(--bf-space-half) * -1);
|
|
24
24
|
max-inline-size: 100%;
|
|
25
25
|
overflow: hidden;
|
|
26
|
-
padding:
|
|
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:
|
|
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:
|
|
47
|
-
outline-offset: -
|
|
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
|
|
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:
|
|
104
|
+
block-size: 0.0625rem;
|
|
100
105
|
clip-path: inset(50%);
|
|
101
|
-
inline-size:
|
|
106
|
+
inline-size: 0.0625rem;
|
|
102
107
|
overflow: hidden;
|
|
103
108
|
position: absolute;
|
|
104
109
|
white-space: nowrap;
|