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.
Files changed (43) hide show
  1. package/README.md +568 -552
  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/css-app-tier.js +73 -73
  11. package/dist/css-components/article-pagination.js +140 -140
  12. package/dist/css-components/button-actions.js +161 -161
  13. package/dist/css-components/cards-options.js +176 -176
  14. package/dist/css-components/chip-badge-status.js +158 -158
  15. package/dist/css-components/content-card.js +490 -490
  16. package/dist/css-components/control-row.js +14 -14
  17. package/dist/css-components/cta-figure-aspect.js +120 -120
  18. package/dist/css-components/document-navigation.js +390 -390
  19. package/dist/css-components/editorial-content.js +42 -42
  20. package/dist/css-components/icon.js +72 -72
  21. package/dist/css-components/interactive-feedback.js +217 -217
  22. package/dist/css-components/interactive-tables.js +155 -155
  23. package/dist/css-components/legacy-navigation.d.ts +9 -0
  24. package/dist/css-components/legacy-navigation.js +763 -0
  25. package/dist/css-components/linked-logo-site-layout.js +177 -177
  26. package/dist/css-components/list-tree.js +94 -94
  27. package/dist/css-components/logo-media.js +201 -201
  28. package/dist/css-components/navigation-layout.js +144 -144
  29. package/dist/css-components/panel.js +144 -144
  30. package/dist/css-components/search-box-and-filter.js +263 -263
  31. package/dist/css-components/sites-editorial-ports.js +243 -243
  32. package/dist/css-components/sites-foundation.js +146 -146
  33. package/dist/css-components/sites-rich-lists.js +344 -344
  34. package/dist/css-components/static-content-ports.js +182 -182
  35. package/dist/css-components/tab-section.js +82 -82
  36. package/dist/css-components/table.js +75 -75
  37. package/dist/css-components/tabs-choice-breadcrumbs.js +303 -303
  38. package/dist/css-components/tiered-list-equal-height-row.js +271 -271
  39. package/dist/css-components.js +1791 -2542
  40. package/dist/css-grid.js +172 -172
  41. package/dist/css.js +240 -240
  42. package/docs/publishing.md +30 -13
  43. package/package.json +119 -108
@@ -14,206 +14,206 @@
14
14
  * retain the deliberately denser documentation, app, and OS tiers.
15
15
  */
16
16
  export function logoMediaCss() {
17
- return `/* ------------------------------------------------------------------ */
18
- /* Logo section — intrinsic linked marks, without the deprecated logo-block. */
19
- /* ------------------------------------------------------------------ */
20
-
21
- :where(.bf-theme) :where(.bf-logo-section) {
22
- container-name: bf-logo-section;
23
- container-type: inline-size;
24
- margin-block-end: var(--bf-section-space-shallow);
25
- min-inline-size: 0;
26
- }
27
-
28
- :where(.bf-theme) :where(.bf-logo-section-items) {
29
- align-items: center;
30
- display: flex;
31
- flex-wrap: wrap;
32
- column-gap: var(--bf-space-4);
33
- min-inline-size: 0;
34
- padding-block: var(--bf-space-1);
35
- }
36
-
37
- :where(.bf-theme) :where(.bf-logo-section-item) {
38
- align-items: center;
39
- block-size: calc(var(--bf-space-8) + var(--bf-space-1));
40
- display: flex;
41
- flex: 0 0 auto;
42
- max-inline-size: 100%;
43
- margin-block: calc(var(--bf-space-1) * -1);
44
- min-inline-size: 0;
45
- }
46
-
47
- :where(.bf-theme) :where(.bf-logo-section-link) {
48
- align-items: center;
49
- display: inline-flex;
50
- max-inline-size: 100%;
51
- }
52
-
53
- :where(.bf-theme) :where(.bf-logo-section-link:focus:not(:focus-visible)) {
54
- outline: none;
55
- }
56
-
57
- :where(.bf-theme) :where(.bf-logo-section-link:focus-visible) {
58
- outline: 2px solid var(--bf-color-focus);
59
- outline-offset: 2px;
60
- }
61
-
62
- :where(.bf-theme) :where(.bf-logo-section-logo) {
63
- block-size: 100%;
64
- display: block;
65
- inline-size: auto;
66
- max-inline-size: 100%;
67
- object-fit: contain;
68
- }
69
-
70
- /* An explicit fallback for marks supplied in inconsistent intrinsic ratios.
71
- It is named for the component's behaviour—not Vanilla's legacy selector. */
72
- :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-item) {
73
- inline-size: calc(var(--bf-space-8) + var(--bf-space-1));
74
- margin-block: 0 var(--bf-space-1);
75
- }
76
-
77
- :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-items) {
78
- padding-block: 0;
79
- }
80
-
81
- :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-logo) {
82
- block-size: auto;
83
- inline-size: 100%;
84
- }
85
-
86
- /* Vanilla's small breakpoint is 620px. The items descendant, rather than the
87
- query container itself, responds when its allocated space reaches it. */
88
- @container bf-logo-section (width >= 38.75rem) {
89
- :where(.bf-theme) :where(.bf-logo-section-items) {
90
- padding-block: var(--bf-space-2);
91
- }
92
-
93
- :where(.bf-theme) :where(.bf-logo-section-item) {
94
- block-size: calc(var(--bf-space-12) + var(--bf-space-1));
95
- margin-block: calc(var(--bf-space-2) * -1);
96
- }
97
-
98
- :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-item) {
99
- inline-size: calc(var(--bf-space-12) + var(--bf-space-1));
100
- margin-block: 0 var(--bf-space-1);
101
- }
102
-
103
- :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-items) {
104
- padding-block: 0;
105
- }
106
- }
107
-
108
- /* ------------------------------------------------------------------ */
109
- /* Media object — semantic media/content slots with a container-owned */
110
- /* structural collapse only. Content roles retain their own spacing. */
111
- /* ------------------------------------------------------------------ */
112
-
113
- :where(.bf-theme) :where(.bf-media-object) {
114
- margin-block-end: var(--bf-section-space-shallow);
115
- min-inline-size: 0;
116
- }
117
-
118
- :where(.bf-theme) :where(.bf-media-object-layout) {
119
- display: grid;
120
- align-items: start;
121
- column-gap: var(--bf-space-2);
122
- grid-template-columns: auto minmax(0, 1fr);
123
- min-inline-size: 0;
124
- }
125
-
126
- :where(.bf-theme) :where(.bf-media-object-media) {
127
- align-self: start;
128
- block-size: var(--bf-space-6);
129
- inline-size: var(--bf-space-6);
130
- max-inline-size: 100%;
131
- min-inline-size: 0;
132
- }
133
-
134
- :where(.bf-theme) :where(.bf-media-object-media > :where(img, picture, svg, video)) {
135
- block-size: 100%;
136
- display: block;
137
- inline-size: 100%;
138
- max-inline-size: 100%;
139
- object-fit: contain;
140
- }
141
-
142
- :where(.bf-theme) :where(.bf-media-object-media.is-round > :where(img, picture, svg, video)) {
143
- border-radius: 50%;
144
- object-fit: cover;
145
- }
146
-
147
- :where(.bf-theme) :where(.bf-media-object-content) {
148
- min-inline-size: 0;
149
- overflow-wrap: anywhere;
150
- }
151
-
152
- /* This is a real heading slot. The class may be applied to h1–h6; regular
153
- media objects use BF h4 while the large composition promotes to h1. */
154
- :where(.bf-theme) :where(.bf-media-object-title) {
155
- font-family: var(--bf-h4-font-family);
156
- font-size: var(--bf-h4-font-size);
157
- font-style: var(--bf-h4-font-style);
158
- font-variant-caps: var(--bf-h4-font-variant-caps);
159
- font-weight: var(--bf-h4-font-weight);
160
- letter-spacing: var(--bf-h4-letter-spacing);
161
- line-height: var(--bf-h4-line-height);
162
- margin-block: 0 var(--bf-h4-margin-bottom);
163
- overflow-wrap: anywhere;
164
- padding-block: var(--bf-h4-nudge-start) 0;
165
- text-transform: var(--bf-h4-text-transform);
166
- }
167
-
168
- :where(.bf-theme) :where(.bf-media-object.is-large) :where(.bf-media-object-media) {
169
- block-size: var(--bf-space-12);
170
- inline-size: var(--bf-space-12);
171
- }
172
-
173
- :where(.bf-theme) :where(.bf-media-object.is-large) :where(.bf-media-object-title) {
174
- font-family: var(--bf-h1-font-family);
175
- font-size: var(--bf-h1-font-size);
176
- font-style: var(--bf-h1-font-style);
177
- font-variant-caps: var(--bf-h1-font-variant-caps);
178
- font-weight: var(--bf-h1-font-weight);
179
- letter-spacing: var(--bf-h1-letter-spacing);
180
- line-height: var(--bf-h1-line-height);
181
- margin-block: 0 var(--bf-h1-margin-bottom);
182
- padding-block: var(--bf-h1-nudge-start) 0;
183
- text-transform: var(--bf-h1-text-transform);
184
- }
185
-
186
- :where(.bf-theme) :where(.bf-media-object-meta-list) {
187
- list-style: none;
188
- margin: var(--bf-space-1) 0 0;
189
- padding: 0;
190
- }
191
-
192
- :where(.bf-theme) :where(.bf-media-object-meta) {
193
- align-items: start;
194
- column-gap: var(--bf-space-1);
195
- display: grid;
196
- grid-template-columns: var(--bf-icon-size-default) minmax(0, 1fr);
197
- min-inline-size: 0;
198
- overflow-wrap: anywhere;
199
- }
200
-
201
- :where(.bf-theme) :where(.bf-media-object-meta + .bf-media-object-meta) {
202
- margin-block-start: var(--bf-space-1);
203
- }
204
-
205
- :where(.bf-theme) :where(.bf-media-object-meta .bf-icon) {
206
- margin-block-start: var(--bf-body-nudge-start);
207
- }
208
-
209
- :where(.bf-theme) :where(.bf-media-object.is-media-end) :where(.bf-media-object-content) {
210
- grid-column: 1;
211
- grid-row: 1;
212
- }
213
-
214
- :where(.bf-theme) :where(.bf-media-object.is-media-end) :where(.bf-media-object-media) {
215
- grid-column: 2;
216
- grid-row: 1;
217
- }
17
+ return `/* ------------------------------------------------------------------ */
18
+ /* Logo section — intrinsic linked marks, without the deprecated logo-block. */
19
+ /* ------------------------------------------------------------------ */
20
+
21
+ :where(.bf-theme) :where(.bf-logo-section) {
22
+ container-name: bf-logo-section;
23
+ container-type: inline-size;
24
+ margin-block-end: var(--bf-section-space-shallow);
25
+ min-inline-size: 0;
26
+ }
27
+
28
+ :where(.bf-theme) :where(.bf-logo-section-items) {
29
+ align-items: center;
30
+ display: flex;
31
+ flex-wrap: wrap;
32
+ column-gap: var(--bf-space-4);
33
+ min-inline-size: 0;
34
+ padding-block: var(--bf-space-1);
35
+ }
36
+
37
+ :where(.bf-theme) :where(.bf-logo-section-item) {
38
+ align-items: center;
39
+ block-size: calc(var(--bf-space-8) + var(--bf-space-1));
40
+ display: flex;
41
+ flex: 0 0 auto;
42
+ max-inline-size: 100%;
43
+ margin-block: calc(var(--bf-space-1) * -1);
44
+ min-inline-size: 0;
45
+ }
46
+
47
+ :where(.bf-theme) :where(.bf-logo-section-link) {
48
+ align-items: center;
49
+ display: inline-flex;
50
+ max-inline-size: 100%;
51
+ }
52
+
53
+ :where(.bf-theme) :where(.bf-logo-section-link:focus:not(:focus-visible)) {
54
+ outline: none;
55
+ }
56
+
57
+ :where(.bf-theme) :where(.bf-logo-section-link:focus-visible) {
58
+ outline: 2px solid var(--bf-color-focus);
59
+ outline-offset: 2px;
60
+ }
61
+
62
+ :where(.bf-theme) :where(.bf-logo-section-logo) {
63
+ block-size: 100%;
64
+ display: block;
65
+ inline-size: auto;
66
+ max-inline-size: 100%;
67
+ object-fit: contain;
68
+ }
69
+
70
+ /* An explicit fallback for marks supplied in inconsistent intrinsic ratios.
71
+ It is named for the component's behaviour—not Vanilla's legacy selector. */
72
+ :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-item) {
73
+ inline-size: calc(var(--bf-space-8) + var(--bf-space-1));
74
+ margin-block: 0 var(--bf-space-1);
75
+ }
76
+
77
+ :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-items) {
78
+ padding-block: 0;
79
+ }
80
+
81
+ :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-logo) {
82
+ block-size: auto;
83
+ inline-size: 100%;
84
+ }
85
+
86
+ /* Vanilla's small breakpoint is 620px. The items descendant, rather than the
87
+ query container itself, responds when its allocated space reaches it. */
88
+ @container bf-logo-section (width >= 38.75rem) {
89
+ :where(.bf-theme) :where(.bf-logo-section-items) {
90
+ padding-block: var(--bf-space-2);
91
+ }
92
+
93
+ :where(.bf-theme) :where(.bf-logo-section-item) {
94
+ block-size: calc(var(--bf-space-12) + var(--bf-space-1));
95
+ margin-block: calc(var(--bf-space-2) * -1);
96
+ }
97
+
98
+ :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-item) {
99
+ inline-size: calc(var(--bf-space-12) + var(--bf-space-1));
100
+ margin-block: 0 var(--bf-space-1);
101
+ }
102
+
103
+ :where(.bf-theme) :where(.bf-logo-section.is-contained) :where(.bf-logo-section-items) {
104
+ padding-block: 0;
105
+ }
106
+ }
107
+
108
+ /* ------------------------------------------------------------------ */
109
+ /* Media object — semantic media/content slots with a container-owned */
110
+ /* structural collapse only. Content roles retain their own spacing. */
111
+ /* ------------------------------------------------------------------ */
112
+
113
+ :where(.bf-theme) :where(.bf-media-object) {
114
+ margin-block-end: var(--bf-section-space-shallow);
115
+ min-inline-size: 0;
116
+ }
117
+
118
+ :where(.bf-theme) :where(.bf-media-object-layout) {
119
+ display: grid;
120
+ align-items: start;
121
+ column-gap: var(--bf-space-2);
122
+ grid-template-columns: auto minmax(0, 1fr);
123
+ min-inline-size: 0;
124
+ }
125
+
126
+ :where(.bf-theme) :where(.bf-media-object-media) {
127
+ align-self: start;
128
+ block-size: var(--bf-space-6);
129
+ inline-size: var(--bf-space-6);
130
+ max-inline-size: 100%;
131
+ min-inline-size: 0;
132
+ }
133
+
134
+ :where(.bf-theme) :where(.bf-media-object-media > :where(img, picture, svg, video)) {
135
+ block-size: 100%;
136
+ display: block;
137
+ inline-size: 100%;
138
+ max-inline-size: 100%;
139
+ object-fit: contain;
140
+ }
141
+
142
+ :where(.bf-theme) :where(.bf-media-object-media.is-round > :where(img, picture, svg, video)) {
143
+ border-radius: 50%;
144
+ object-fit: cover;
145
+ }
146
+
147
+ :where(.bf-theme) :where(.bf-media-object-content) {
148
+ min-inline-size: 0;
149
+ overflow-wrap: anywhere;
150
+ }
151
+
152
+ /* This is a real heading slot. The class may be applied to h1–h6; regular
153
+ media objects use BF h4 while the large composition promotes to h1. */
154
+ :where(.bf-theme) :where(.bf-media-object-title) {
155
+ font-family: var(--bf-h4-font-family);
156
+ font-size: var(--bf-h4-font-size);
157
+ font-style: var(--bf-h4-font-style);
158
+ font-variant-caps: var(--bf-h4-font-variant-caps);
159
+ font-weight: var(--bf-h4-font-weight);
160
+ letter-spacing: var(--bf-h4-letter-spacing);
161
+ line-height: var(--bf-h4-line-height);
162
+ margin-block: 0 var(--bf-h4-margin-bottom);
163
+ overflow-wrap: anywhere;
164
+ padding-block: var(--bf-h4-nudge-start) 0;
165
+ text-transform: var(--bf-h4-text-transform);
166
+ }
167
+
168
+ :where(.bf-theme) :where(.bf-media-object.is-large) :where(.bf-media-object-media) {
169
+ block-size: var(--bf-space-12);
170
+ inline-size: var(--bf-space-12);
171
+ }
172
+
173
+ :where(.bf-theme) :where(.bf-media-object.is-large) :where(.bf-media-object-title) {
174
+ font-family: var(--bf-h1-font-family);
175
+ font-size: var(--bf-h1-font-size);
176
+ font-style: var(--bf-h1-font-style);
177
+ font-variant-caps: var(--bf-h1-font-variant-caps);
178
+ font-weight: var(--bf-h1-font-weight);
179
+ letter-spacing: var(--bf-h1-letter-spacing);
180
+ line-height: var(--bf-h1-line-height);
181
+ margin-block: 0 var(--bf-h1-margin-bottom);
182
+ padding-block: var(--bf-h1-nudge-start) 0;
183
+ text-transform: var(--bf-h1-text-transform);
184
+ }
185
+
186
+ :where(.bf-theme) :where(.bf-media-object-meta-list) {
187
+ list-style: none;
188
+ margin: var(--bf-space-1) 0 0;
189
+ padding: 0;
190
+ }
191
+
192
+ :where(.bf-theme) :where(.bf-media-object-meta) {
193
+ align-items: start;
194
+ column-gap: var(--bf-space-1);
195
+ display: grid;
196
+ grid-template-columns: var(--bf-icon-size-default) minmax(0, 1fr);
197
+ min-inline-size: 0;
198
+ overflow-wrap: anywhere;
199
+ }
200
+
201
+ :where(.bf-theme) :where(.bf-media-object-meta + .bf-media-object-meta) {
202
+ margin-block-start: var(--bf-space-1);
203
+ }
204
+
205
+ :where(.bf-theme) :where(.bf-media-object-meta .bf-icon) {
206
+ margin-block-start: var(--bf-body-nudge-start);
207
+ }
208
+
209
+ :where(.bf-theme) :where(.bf-media-object.is-media-end) :where(.bf-media-object-content) {
210
+ grid-column: 1;
211
+ grid-row: 1;
212
+ }
213
+
214
+ :where(.bf-theme) :where(.bf-media-object.is-media-end) :where(.bf-media-object-media) {
215
+ grid-column: 2;
216
+ grid-row: 1;
217
+ }
218
218
  `;
219
219
  }