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
|
@@ -15,159 +15,159 @@
|
|
|
15
15
|
* compensation.
|
|
16
16
|
*/
|
|
17
17
|
export function sitesFoundationCss() {
|
|
18
|
-
return `/* ------------------------------------------------------------------ */
|
|
19
|
-
/* Sites composition foundation — basic section, CTA and text spotlight. */
|
|
20
|
-
/* ------------------------------------------------------------------ */
|
|
21
|
-
|
|
22
|
-
/* Basic section: the top rule and the named header/content slots make the
|
|
23
|
-
composition legible without recreating the upstream Jinja item API. */
|
|
24
|
-
:where(.bf-theme) :where(.bf-basic-section) {
|
|
25
|
-
container-name: bf-basic-section;
|
|
26
|
-
container-type: inline-size;
|
|
27
|
-
margin-block-end: 0;
|
|
28
|
-
min-inline-size: 0;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
:where(.bf-theme) :where(.bf-basic-section.is-shallow) {
|
|
32
|
-
margin-block-end: 0;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
:where(.bf-theme) :where(.bf-basic-section.is-deep) {
|
|
36
|
-
margin-block-end: 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
:where(.bf-theme) :where(.bf-basic-section-layout) {
|
|
40
|
-
display: grid;
|
|
41
|
-
grid-template-columns: minmax(0, 1fr);
|
|
42
|
-
min-inline-size: 0;
|
|
43
|
-
/* The rule already owns its half-rem trailing compensation. This structural
|
|
44
|
-
grid must not add the generic pattern-stack gap on top of it. */
|
|
45
|
-
row-gap: 0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
:where(.bf-theme) :where(.bf-basic-section-rule) {
|
|
49
|
-
grid-column: 1 / -1;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
:where(.bf-theme) :where(.bf-basic-section-header, .bf-basic-section-content) {
|
|
53
|
-
min-inline-size: 0;
|
|
54
|
-
overflow-wrap: anywhere;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* A section title may be the route action without looking like body copy. */
|
|
58
|
-
:where(.bf-theme) :where(.bf-basic-section-title-link, .bf-basic-section-title-link:visited) {
|
|
59
|
-
color: var(--bf-color-link-default);
|
|
60
|
-
text-decoration: none;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
:where(.bf-theme) :where(.bf-basic-section-title-link:hover) {
|
|
64
|
-
text-decoration: underline;
|
|
65
|
-
text-decoration-thickness: var(--bf-border-width);
|
|
66
|
-
text-underline-offset: 0.12em;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/* Vanilla splits at medium only on request, otherwise at its large breakpoint.
|
|
70
|
-
The layout descendant reacts to the root container; the query never tries to
|
|
71
|
-
restyle the container that established it. */
|
|
72
|
-
@container bf-basic-section (width >= 38.75rem) {
|
|
73
|
-
:where(.bf-theme) :where(.bf-basic-section.is-split-medium) :where(.bf-basic-section-layout) {
|
|
74
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
75
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@container bf-basic-section (width >= 64.75rem) {
|
|
80
|
-
:where(.bf-theme) :where(.bf-basic-section:not(.is-split-medium)) :where(.bf-basic-section-layout) {
|
|
81
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
82
|
-
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/* CTA section: Vanilla's 25/75 variant is an offset content rail. The full
|
|
88
|
-
variant stays naturally full-width. Typography and action presentation are
|
|
89
|
-
supplied by real heading elements and bf-cta-block. */
|
|
90
|
-
:where(.bf-theme) :where(.bf-cta-section) {
|
|
91
|
-
container-name: bf-cta-section;
|
|
92
|
-
container-type: inline-size;
|
|
93
|
-
min-inline-size: 0;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
:where(.bf-theme) :where(.bf-cta-section-layout) {
|
|
97
|
-
display: grid;
|
|
98
|
-
grid-template-columns: minmax(0, 1fr);
|
|
99
|
-
min-inline-size: 0;
|
|
100
|
-
padding-block: calc(var(--bf-section-space-deep) / 2);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
:where(.bf-theme) :where(.bf-cta-section-content) {
|
|
104
|
-
min-inline-size: 0;
|
|
105
|
-
overflow-wrap: anywhere;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
@container bf-cta-section (width >= 64.75rem) {
|
|
109
|
-
:where(.bf-theme) :where(.bf-cta-section-layout) {
|
|
110
|
-
padding-block: var(--bf-section-space-deep);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
:where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-layout) {
|
|
114
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
115
|
-
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
:where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-content) {
|
|
119
|
-
grid-column: 2;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
/* Text spotlight: a ruled title rail and two-to-seven prominent list items.
|
|
124
|
-
The ordered list itself is structural; each item uses a genuine BF heading
|
|
125
|
-
role and therefore keeps the correct tier-specific rhythm. */
|
|
126
|
-
:where(.bf-theme) :where(.bf-text-spotlight) {
|
|
127
|
-
container-name: bf-text-spotlight;
|
|
128
|
-
container-type: inline-size;
|
|
129
|
-
margin-block-end: 0;
|
|
130
|
-
min-inline-size: 0;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
:where(.bf-theme) :where(.bf-text-spotlight-layout) {
|
|
134
|
-
display: grid;
|
|
135
|
-
grid-template-columns: minmax(0, 1fr);
|
|
136
|
-
min-inline-size: 0;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
:where(.bf-theme) :where(.bf-text-spotlight-rule) {
|
|
140
|
-
grid-column: 1 / -1;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
:where(.bf-theme) :where(.bf-text-spotlight-header, .bf-text-spotlight-content) {
|
|
144
|
-
min-inline-size: 0;
|
|
145
|
-
}
|
|
146
|
-
|
|
18
|
+
return `/* ------------------------------------------------------------------ */
|
|
19
|
+
/* Sites composition foundation — basic section, CTA and text spotlight. */
|
|
20
|
+
/* ------------------------------------------------------------------ */
|
|
21
|
+
|
|
22
|
+
/* Basic section: the top rule and the named header/content slots make the
|
|
23
|
+
composition legible without recreating the upstream Jinja item API. */
|
|
24
|
+
:where(.bf-theme) :where(.bf-basic-section) {
|
|
25
|
+
container-name: bf-basic-section;
|
|
26
|
+
container-type: inline-size;
|
|
27
|
+
margin-block-end: 0;
|
|
28
|
+
min-inline-size: 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:where(.bf-theme) :where(.bf-basic-section.is-shallow) {
|
|
32
|
+
margin-block-end: 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
:where(.bf-theme) :where(.bf-basic-section.is-deep) {
|
|
36
|
+
margin-block-end: 0;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
:where(.bf-theme) :where(.bf-basic-section-layout) {
|
|
40
|
+
display: grid;
|
|
41
|
+
grid-template-columns: minmax(0, 1fr);
|
|
42
|
+
min-inline-size: 0;
|
|
43
|
+
/* The rule already owns its half-rem trailing compensation. This structural
|
|
44
|
+
grid must not add the generic pattern-stack gap on top of it. */
|
|
45
|
+
row-gap: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(.bf-theme) :where(.bf-basic-section-rule) {
|
|
49
|
+
grid-column: 1 / -1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
:where(.bf-theme) :where(.bf-basic-section-header, .bf-basic-section-content) {
|
|
53
|
+
min-inline-size: 0;
|
|
54
|
+
overflow-wrap: anywhere;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* A section title may be the route action without looking like body copy. */
|
|
58
|
+
:where(.bf-theme) :where(.bf-basic-section-title-link, .bf-basic-section-title-link:visited) {
|
|
59
|
+
color: var(--bf-color-link-default);
|
|
60
|
+
text-decoration: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:where(.bf-theme) :where(.bf-basic-section-title-link:hover) {
|
|
64
|
+
text-decoration: underline;
|
|
65
|
+
text-decoration-thickness: var(--bf-border-width);
|
|
66
|
+
text-underline-offset: 0.12em;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Vanilla splits at medium only on request, otherwise at its large breakpoint.
|
|
70
|
+
The layout descendant reacts to the root container; the query never tries to
|
|
71
|
+
restyle the container that established it. */
|
|
72
|
+
@container bf-basic-section (width >= 38.75rem) {
|
|
73
|
+
:where(.bf-theme) :where(.bf-basic-section.is-split-medium) :where(.bf-basic-section-layout) {
|
|
74
|
+
column-gap: var(--bf-grid-gap-inline);
|
|
75
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@container bf-basic-section (width >= 64.75rem) {
|
|
80
|
+
:where(.bf-theme) :where(.bf-basic-section:not(.is-split-medium)) :where(.bf-basic-section-layout) {
|
|
81
|
+
column-gap: var(--bf-grid-gap-inline);
|
|
82
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* CTA section: Vanilla's 25/75 variant is an offset content rail. The full
|
|
88
|
+
variant stays naturally full-width. Typography and action presentation are
|
|
89
|
+
supplied by real heading elements and bf-cta-block. */
|
|
90
|
+
:where(.bf-theme) :where(.bf-cta-section) {
|
|
91
|
+
container-name: bf-cta-section;
|
|
92
|
+
container-type: inline-size;
|
|
93
|
+
min-inline-size: 0;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
:where(.bf-theme) :where(.bf-cta-section-layout) {
|
|
97
|
+
display: grid;
|
|
98
|
+
grid-template-columns: minmax(0, 1fr);
|
|
99
|
+
min-inline-size: 0;
|
|
100
|
+
padding-block: calc(var(--bf-section-space-deep) / 2);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
:where(.bf-theme) :where(.bf-cta-section-content) {
|
|
104
|
+
min-inline-size: 0;
|
|
105
|
+
overflow-wrap: anywhere;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@container bf-cta-section (width >= 64.75rem) {
|
|
109
|
+
:where(.bf-theme) :where(.bf-cta-section-layout) {
|
|
110
|
+
padding-block: var(--bf-section-space-deep);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
:where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-layout) {
|
|
114
|
+
column-gap: var(--bf-grid-gap-inline);
|
|
115
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
:where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-content) {
|
|
119
|
+
grid-column: 2;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/* Text spotlight: a ruled title rail and two-to-seven prominent list items.
|
|
124
|
+
The ordered list itself is structural; each item uses a genuine BF heading
|
|
125
|
+
role and therefore keeps the correct tier-specific rhythm. */
|
|
126
|
+
:where(.bf-theme) :where(.bf-text-spotlight) {
|
|
127
|
+
container-name: bf-text-spotlight;
|
|
128
|
+
container-type: inline-size;
|
|
129
|
+
margin-block-end: 0;
|
|
130
|
+
min-inline-size: 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
:where(.bf-theme) :where(.bf-text-spotlight-layout) {
|
|
134
|
+
display: grid;
|
|
135
|
+
grid-template-columns: minmax(0, 1fr);
|
|
136
|
+
min-inline-size: 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
:where(.bf-theme) :where(.bf-text-spotlight-rule) {
|
|
140
|
+
grid-column: 1 / -1;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
:where(.bf-theme) :where(.bf-text-spotlight-header, .bf-text-spotlight-content) {
|
|
144
|
+
min-inline-size: 0;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
147
|
:where(.bf-theme) :where(.bf-text-spotlight-items) {
|
|
148
148
|
align-content: start;
|
|
149
149
|
display: grid;
|
|
150
150
|
list-style: none;
|
|
151
|
-
margin: 0;
|
|
152
|
-
padding: 0;
|
|
153
|
-
}
|
|
154
|
-
|
|
151
|
+
margin: 0;
|
|
152
|
+
padding: 0;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
155
|
:where(.bf-theme) :where(.bf-text-spotlight-item) {
|
|
156
156
|
align-content: start;
|
|
157
157
|
display: grid;
|
|
158
158
|
min-inline-size: 0;
|
|
159
|
-
overflow-wrap: anywhere;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
:where(.bf-theme) :where(.bf-text-spotlight-item) > :where(a) {
|
|
163
|
-
overflow-wrap: anywhere;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
@container bf-text-spotlight (width >= 64.75rem) {
|
|
167
|
-
:where(.bf-theme) :where(.bf-text-spotlight-layout) {
|
|
168
|
-
column-gap: var(--bf-grid-gap-inline);
|
|
169
|
-
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
159
|
+
overflow-wrap: anywhere;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
:where(.bf-theme) :where(.bf-text-spotlight-item) > :where(a) {
|
|
163
|
+
overflow-wrap: anywhere;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@container bf-text-spotlight (width >= 64.75rem) {
|
|
167
|
+
:where(.bf-theme) :where(.bf-text-spotlight-layout) {
|
|
168
|
+
column-gap: var(--bf-grid-gap-inline);
|
|
169
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
172
|
`;
|
|
173
173
|
}
|