baseline-foundry 0.1.3 → 0.1.4
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 +568 -552
- package/config/experiments/ibm-plex-engine-smoke.json +115 -115
- package/config/experiments/ubuntu-engine-smoke.json +115 -115
- package/config/foundation-theme.json +110 -110
- package/config/tiers/app.json +116 -116
- package/config/tiers/documentation.json +116 -116
- package/config/tiers/editorial.json +116 -116
- package/config/tiers/os.json +116 -116
- package/dist/baseline-grid-overlay.js +43 -43
- package/dist/css-app-tier.js +73 -73
- package/dist/css-components/article-pagination.js +140 -140
- package/dist/css-components/button-actions.js +161 -161
- package/dist/css-components/cards-options.js +176 -176
- package/dist/css-components/chip-badge-status.js +158 -158
- package/dist/css-components/content-card.js +490 -490
- package/dist/css-components/control-row.js +14 -14
- package/dist/css-components/cta-figure-aspect.js +120 -120
- package/dist/css-components/document-navigation.js +390 -390
- package/dist/css-components/editorial-content.js +42 -42
- package/dist/css-components/icon.js +72 -72
- package/dist/css-components/interactive-feedback.js +217 -217
- package/dist/css-components/interactive-tables.js +155 -155
- package/dist/css-components/legacy-navigation.d.ts +9 -0
- package/dist/css-components/legacy-navigation.js +763 -0
- package/dist/css-components/linked-logo-site-layout.js +177 -177
- package/dist/css-components/list-tree.js +94 -94
- package/dist/css-components/logo-media.js +201 -201
- package/dist/css-components/navigation-layout.js +144 -144
- package/dist/css-components/panel.js +144 -144
- package/dist/css-components/search-box-and-filter.js +263 -263
- package/dist/css-components/sites-editorial-ports.js +243 -243
- package/dist/css-components/sites-foundation.js +146 -146
- package/dist/css-components/sites-rich-lists.js +344 -344
- package/dist/css-components/static-content-ports.js +182 -182
- package/dist/css-components/tab-section.js +82 -82
- package/dist/css-components/table.js +75 -75
- package/dist/css-components/tabs-choice-breadcrumbs.js +303 -303
- package/dist/css-components/tiered-list-equal-height-row.js +271 -271
- package/dist/css-components.js +1791 -2542
- package/dist/css-grid.js +172 -172
- package/dist/css.js +240 -240
- package/docs/publishing.md +30 -13
- package/package.json +119 -108
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/** A wrapping form composition whose children retain their owned spacing. */
|
|
2
2
|
export function controlRowCss() {
|
|
3
|
-
return `:where(.bf-theme) :where(.bf-control-row) {
|
|
4
|
-
align-items: end;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-wrap: wrap;
|
|
7
|
-
gap: var(--bf-field-gap);
|
|
8
|
-
margin: 0;
|
|
9
|
-
min-inline-size: 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
:where(.bf-theme) :where(.bf-control-row) > :where(.bf-field, .bf-control) {
|
|
13
|
-
align-self: end;
|
|
14
|
-
flex: 1 1 min(100%, 16rem);
|
|
15
|
-
min-inline-size: 0;
|
|
16
|
-
}
|
|
3
|
+
return `:where(.bf-theme) :where(.bf-control-row) {
|
|
4
|
+
align-items: end;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-wrap: wrap;
|
|
7
|
+
gap: var(--bf-field-gap);
|
|
8
|
+
margin: 0;
|
|
9
|
+
min-inline-size: 0;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:where(.bf-theme) :where(.bf-control-row) > :where(.bf-field, .bf-control) {
|
|
13
|
+
align-self: end;
|
|
14
|
+
flex: 1 1 min(100%, 16rem);
|
|
15
|
+
min-inline-size: 0;
|
|
16
|
+
}
|
|
17
17
|
`;
|
|
18
18
|
}
|
|
@@ -1,123 +1,123 @@
|
|
|
1
1
|
export function ctaFigureAspectCss() {
|
|
2
|
-
return `/* ------------------------------------------------------------------ */
|
|
3
|
-
/* CTA block (Vanilla parity). */
|
|
4
|
-
/* Inline-row of call-to-action items (typically a heading and one or */
|
|
5
|
-
/* more buttons or links). Container-owned spacing: borderless by */
|
|
6
|
-
/* default, .is-bordered adds a top divider rule and small padding. */
|
|
7
|
-
/* (Vanilla ships the same modifier as has-border; renamed for the BF */
|
|
8
|
-
/* is-* convention.) */
|
|
9
|
-
/* ------------------------------------------------------------------ */
|
|
10
|
-
/* ------------------------------------------------------------------ */
|
|
11
|
-
|
|
12
|
-
:where(.bf-theme) :where(.bf-cta-block) {
|
|
13
|
-
align-items: baseline;
|
|
14
|
-
column-gap: var(--bf-space-2);
|
|
15
|
-
display: flex;
|
|
16
|
-
flex-wrap: wrap;
|
|
17
|
-
margin-block-end: 0;
|
|
18
|
-
row-gap: var(--bf-space-1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
:where(.bf-theme) :where(.bf-cta-block.is-bordered) {
|
|
22
|
-
border-block-start: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
|
|
23
|
-
padding-block-start: calc(var(--bf-space-1) - var(--bf-border-width));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/* ------------------------------------------------------------------ */
|
|
27
|
-
/* Figure (Vanilla parity). */
|
|
28
|
-
/* Native <figure> wrapper for an image, video, or other media plus */
|
|
29
|
-
/* an italic caption. The owning stack sets external spacing; the */
|
|
30
|
-
/* caption owns its own top space so the */
|
|
31
|
-
/* image sits flush against the next baseline above its caption. */
|
|
32
|
-
/* ------------------------------------------------------------------ */
|
|
33
|
-
|
|
34
|
-
:where(.bf-theme) :where(.bf-figure) {
|
|
35
|
-
display: block;
|
|
36
|
-
inline-size: 100%;
|
|
37
|
-
margin: 0;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
:where(.bf-theme) :where(.bf-figure) > :where(img, picture, video, canvas, svg) {
|
|
41
|
-
block-size: auto;
|
|
42
|
-
display: block;
|
|
43
|
-
inline-size: 100%;
|
|
44
|
-
max-inline-size: 100%;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* Keep light artwork legible when the surrounding theme is dark. */
|
|
48
|
-
:where(.bf-theme) :where(.bf-figure.is-light-inset) > :where(img, picture, video, canvas, svg, .bf-aspect) {
|
|
49
|
-
background: #fff;
|
|
50
|
-
box-sizing: border-box;
|
|
51
|
-
padding: var(--bf-space-2);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
:where(.bf-theme) :where(.bf-figure-caption) {
|
|
55
|
-
color: var(--bf-color-text-default);
|
|
56
|
-
display: block;
|
|
57
|
-
font-style: italic;
|
|
58
|
-
inline-size: 100%;
|
|
59
|
-
margin-block: var(--bf-space-1) 0;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/* ------------------------------------------------------------------ */
|
|
63
|
-
/* Aspect — generic aspect-ratio slot. */
|
|
64
|
-
/* Reserves a fixed-ratio box so embedded media (img/picture/video/ */
|
|
65
|
-
/* canvas/iframe) load without layout shift. Composes inside bf-figure */
|
|
66
|
-
/* when a constrained captioned image is needed. */
|
|
67
|
-
/* ------------------------------------------------------------------ */
|
|
68
|
-
|
|
69
|
-
:where(.bf-theme) :where(.bf-aspect) {
|
|
70
|
-
aspect-ratio: 16 / 9;
|
|
71
|
-
display: block;
|
|
72
|
-
inline-size: 100%;
|
|
73
|
-
overflow: hidden;
|
|
74
|
-
position: relative;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
:where(.bf-theme) :where(.bf-aspect.is-16-9) {
|
|
78
|
-
aspect-ratio: 16 / 9;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
:where(.bf-theme) :where(.bf-aspect.is-3-2) {
|
|
82
|
-
aspect-ratio: 3 / 2;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
:where(.bf-theme) :where(.bf-aspect.is-4-3) {
|
|
86
|
-
aspect-ratio: 4 / 3;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
:where(.bf-theme) :where(.bf-aspect.is-2-3) {
|
|
90
|
-
aspect-ratio: 2 / 3;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
:where(.bf-theme) :where(.bf-aspect.is-cinematic) {
|
|
94
|
-
aspect-ratio: 12 / 5;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
:where(.bf-theme) :where(.bf-aspect.is-square) {
|
|
98
|
-
aspect-ratio: 1 / 1;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
:where(.bf-theme) :where(.bf-aspect) > :where(img, picture, video, canvas, iframe) {
|
|
102
|
-
block-size: 100%;
|
|
103
|
-
display: block;
|
|
104
|
-
inline-size: 100%;
|
|
105
|
-
object-fit: cover;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
:where(.bf-theme) :where(.bf-aspect) > :where(picture) > :where(img) {
|
|
109
|
-
block-size: 100%;
|
|
110
|
-
display: block;
|
|
111
|
-
inline-size: 100%;
|
|
112
|
-
object-fit: cover;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
:where(.bf-theme) :where(.bf-aspect.is-contain) > :where(img, video, canvas, iframe) {
|
|
116
|
-
object-fit: contain;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
:where(.bf-theme) :where(.bf-aspect.is-contain) > :where(picture) > :where(img) {
|
|
120
|
-
object-fit: contain;
|
|
121
|
-
}
|
|
2
|
+
return `/* ------------------------------------------------------------------ */
|
|
3
|
+
/* CTA block (Vanilla parity). */
|
|
4
|
+
/* Inline-row of call-to-action items (typically a heading and one or */
|
|
5
|
+
/* more buttons or links). Container-owned spacing: borderless by */
|
|
6
|
+
/* default, .is-bordered adds a top divider rule and small padding. */
|
|
7
|
+
/* (Vanilla ships the same modifier as has-border; renamed for the BF */
|
|
8
|
+
/* is-* convention.) */
|
|
9
|
+
/* ------------------------------------------------------------------ */
|
|
10
|
+
/* ------------------------------------------------------------------ */
|
|
11
|
+
|
|
12
|
+
:where(.bf-theme) :where(.bf-cta-block) {
|
|
13
|
+
align-items: baseline;
|
|
14
|
+
column-gap: var(--bf-space-2);
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-wrap: wrap;
|
|
17
|
+
margin-block-end: 0;
|
|
18
|
+
row-gap: var(--bf-space-1);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:where(.bf-theme) :where(.bf-cta-block.is-bordered) {
|
|
22
|
+
border-block-start: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
|
|
23
|
+
padding-block-start: calc(var(--bf-space-1) - var(--bf-border-width));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* ------------------------------------------------------------------ */
|
|
27
|
+
/* Figure (Vanilla parity). */
|
|
28
|
+
/* Native <figure> wrapper for an image, video, or other media plus */
|
|
29
|
+
/* an italic caption. The owning stack sets external spacing; the */
|
|
30
|
+
/* caption owns its own top space so the */
|
|
31
|
+
/* image sits flush against the next baseline above its caption. */
|
|
32
|
+
/* ------------------------------------------------------------------ */
|
|
33
|
+
|
|
34
|
+
:where(.bf-theme) :where(.bf-figure) {
|
|
35
|
+
display: block;
|
|
36
|
+
inline-size: 100%;
|
|
37
|
+
margin: 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:where(.bf-theme) :where(.bf-figure) > :where(img, picture, video, canvas, svg) {
|
|
41
|
+
block-size: auto;
|
|
42
|
+
display: block;
|
|
43
|
+
inline-size: 100%;
|
|
44
|
+
max-inline-size: 100%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Keep light artwork legible when the surrounding theme is dark. */
|
|
48
|
+
:where(.bf-theme) :where(.bf-figure.is-light-inset) > :where(img, picture, video, canvas, svg, .bf-aspect) {
|
|
49
|
+
background: #fff;
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
padding: var(--bf-space-2);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
:where(.bf-theme) :where(.bf-figure-caption) {
|
|
55
|
+
color: var(--bf-color-text-default);
|
|
56
|
+
display: block;
|
|
57
|
+
font-style: italic;
|
|
58
|
+
inline-size: 100%;
|
|
59
|
+
margin-block: var(--bf-space-1) 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* ------------------------------------------------------------------ */
|
|
63
|
+
/* Aspect — generic aspect-ratio slot. */
|
|
64
|
+
/* Reserves a fixed-ratio box so embedded media (img/picture/video/ */
|
|
65
|
+
/* canvas/iframe) load without layout shift. Composes inside bf-figure */
|
|
66
|
+
/* when a constrained captioned image is needed. */
|
|
67
|
+
/* ------------------------------------------------------------------ */
|
|
68
|
+
|
|
69
|
+
:where(.bf-theme) :where(.bf-aspect) {
|
|
70
|
+
aspect-ratio: 16 / 9;
|
|
71
|
+
display: block;
|
|
72
|
+
inline-size: 100%;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
position: relative;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
:where(.bf-theme) :where(.bf-aspect.is-16-9) {
|
|
78
|
+
aspect-ratio: 16 / 9;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:where(.bf-theme) :where(.bf-aspect.is-3-2) {
|
|
82
|
+
aspect-ratio: 3 / 2;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
:where(.bf-theme) :where(.bf-aspect.is-4-3) {
|
|
86
|
+
aspect-ratio: 4 / 3;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
:where(.bf-theme) :where(.bf-aspect.is-2-3) {
|
|
90
|
+
aspect-ratio: 2 / 3;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
:where(.bf-theme) :where(.bf-aspect.is-cinematic) {
|
|
94
|
+
aspect-ratio: 12 / 5;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
:where(.bf-theme) :where(.bf-aspect.is-square) {
|
|
98
|
+
aspect-ratio: 1 / 1;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
:where(.bf-theme) :where(.bf-aspect) > :where(img, picture, video, canvas, iframe) {
|
|
102
|
+
block-size: 100%;
|
|
103
|
+
display: block;
|
|
104
|
+
inline-size: 100%;
|
|
105
|
+
object-fit: cover;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
:where(.bf-theme) :where(.bf-aspect) > :where(picture) > :where(img) {
|
|
109
|
+
block-size: 100%;
|
|
110
|
+
display: block;
|
|
111
|
+
inline-size: 100%;
|
|
112
|
+
object-fit: cover;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
:where(.bf-theme) :where(.bf-aspect.is-contain) > :where(img, video, canvas, iframe) {
|
|
116
|
+
object-fit: contain;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:where(.bf-theme) :where(.bf-aspect.is-contain) > :where(picture) > :where(img) {
|
|
120
|
+
object-fit: contain;
|
|
121
|
+
}
|
|
122
122
|
`;
|
|
123
123
|
}
|