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
@@ -1,267 +1,267 @@
1
1
  export function searchBoxAndFilterCss(options) {
2
2
  const { bodySelectedStartNudge, bodyTypeStyles, buttonBlockPaddingVar, h6TypeStyles, inputMarginBottom, } = options;
3
- return `:where(.bf-theme) :where(.bf-search-box) {
4
- --bf-search-box-action-inline-size: calc(1rem + (var(--bf-control-inline-padding-field) * 2));
5
- --bf-search-box-trailing-inline-size: calc((var(--bf-search-box-action-inline-size) * 2) + var(--bf-border-width));
6
- display: flex;
7
- inline-size: 100%;
8
- margin: 0 0 ${inputMarginBottom};
9
- max-inline-size: 100%;
10
- min-inline-size: 0;
11
- position: relative;
12
- }
13
-
14
- :where(.bf-theme) :where(.bf-search-box-input) {
15
- margin-bottom: 0;
16
- padding-inline-end: var(--bf-search-box-trailing-inline-size);
17
- }
18
-
19
- :where(.bf-theme) :where(.bf-search-box-reset, .bf-search-box-button) {
20
- align-items: center;
21
- block-size: var(--bf-control-box-size);
22
- display: inline-flex;
23
- inline-size: var(--bf-search-box-action-inline-size);
24
- justify-content: center;
25
- position: absolute;
26
- top: 0;
27
- }
28
-
29
- :where(.bf-theme) :where(.bf-search-box-reset) {
30
- inset-inline-end: calc(var(--bf-search-box-action-inline-size) + var(--bf-border-width));
31
- }
32
-
33
- :where(.bf-theme) :where(.bf-search-box-button) {
34
- appearance: none;
35
- background: transparent;
36
- border: 0;
37
- border-inline-start: var(--bf-border-width) solid var(--bf-color-border-default);
38
- color: var(--bf-color-text-default);
39
- cursor: pointer;
40
- inset-inline-end: var(--bf-border-width);
41
- margin: 0;
42
- padding: 0;
43
- text-indent: -9999px;
44
- }
45
-
46
- :where(.bf-theme) :where(.bf-search-box-button)::before {
47
- background-image: var(--bf-ui-icon-search);
48
- background-position: center;
49
- background-repeat: no-repeat;
50
- background-size: 1rem 1rem;
51
- block-size: 1rem;
52
- content: "";
53
- inline-size: 1rem;
54
- left: 50%;
55
- position: absolute;
56
- text-indent: 0;
57
- top: 50%;
58
- transform: translate(-50%, -50%);
59
- }
60
-
61
- :where(.bf-theme) :where(.bf-search-box-button)::after {
62
- content: none;
63
- }
64
-
65
- :where(.bf-theme) :where(.bf-search-box-reset:focus:not(:focus-visible), .bf-search-box-button:focus:not(:focus-visible)) {
66
- outline: none;
67
- }
68
-
69
- :where(.bf-theme) :where(.bf-search-box-reset:focus-visible, .bf-search-box-button:focus-visible) {
70
- outline: 2px solid var(--bf-color-focus);
71
- outline-offset: -2px;
72
- }
73
-
74
- :where(.bf-theme) :where(.bf-search-and-filter) {
75
- display: grid;
76
- inline-size: 100%;
77
- margin: 0;
78
- max-inline-size: 100%;
79
- min-inline-size: 0;
80
- position: relative;
81
- }
82
-
83
- :where(.bf-theme) :where(.bf-search-and-filter-search-container) {
84
- align-items: stretch;
85
- background: transparent;
86
- box-shadow: inset 0 -1px 0 var(--bf-color-border-high-contrast);
87
- display: flex;
88
- flex-wrap: wrap;
89
- gap: var(--bf-field-gap);
90
- margin: 0 0 ${inputMarginBottom};
91
- min-block-size: 0;
92
- overflow: visible;
93
- padding: 0;
94
- position: relative;
95
- }
96
-
97
- :where(.bf-theme) :where(.bf-search-and-filter-search-container[aria-expanded='false']) {
98
- min-block-size: var(--bf-control-box-size);
99
- }
100
-
101
- :where(.bf-theme) :where(.bf-search-and-filter-box) {
102
- --bf-search-and-filter-action-inline-size: calc(1rem + (var(--bf-control-inline-padding-field) * 2));
103
- --bf-search-and-filter-trailing-inline-size: calc(var(--bf-search-and-filter-action-inline-size) * 2);
104
- display: inline-flex;
105
- flex: 1 1 12rem;
106
- max-inline-size: 100%;
107
- min-inline-size: 0;
108
- position: relative;
109
- }
110
-
111
- :where(.bf-theme) :where(.bf-search-and-filter-input) {
112
- margin-bottom: 0;
113
- padding-inline-end: var(--bf-search-and-filter-trailing-inline-size);
114
- }
115
-
116
- :where(.bf-theme) :where(.bf-search-and-filter-search-button) {
117
- appearance: none;
118
- background: transparent;
119
- block-size: var(--bf-control-box-size);
120
- border: 0;
121
- color: var(--bf-color-text-default);
122
- cursor: pointer;
123
- inline-size: var(--bf-search-and-filter-action-inline-size);
124
- inset-inline-end: 0;
125
- margin: 0;
126
- padding: 0;
127
- position: absolute;
128
- text-indent: -9999px;
129
- top: 0;
130
- }
131
-
132
- :where(.bf-theme) :where(.bf-search-and-filter-search-button)::before {
133
- background-image: var(--bf-ui-icon-search);
134
- background-position: center;
135
- background-repeat: no-repeat;
136
- background-size: 1rem 1rem;
137
- block-size: 1rem;
138
- content: "";
139
- inline-size: 1rem;
140
- left: 50%;
141
- position: absolute;
142
- text-indent: 0;
143
- top: 50%;
144
- transform: translate(-50%, -50%);
145
- }
146
-
147
- :where(.bf-theme) :where(.bf-search-and-filter-search-button)::after {
148
- content: none;
149
- }
150
-
151
- :where(.bf-theme) :where(.bf-search-and-filter-search-button:focus:not(:focus-visible), .bf-search-and-filter-selected-count:focus:not(:focus-visible)) {
152
- outline: none;
153
- }
154
-
155
- :where(.bf-theme) :where(.bf-search-and-filter-search-button:focus-visible, .bf-search-and-filter-selected-count:focus-visible) {
156
- outline: 2px solid var(--bf-color-focus);
157
- outline-offset: -2px;
158
- }
159
-
160
- :where(.bf-theme) :where(.bf-search-and-filter-clear) {
161
- block-size: var(--bf-control-box-size);
162
- inline-size: var(--bf-search-and-filter-action-inline-size);
163
- inset-inline-end: var(--bf-search-and-filter-action-inline-size);
164
- position: absolute;
165
- top: 0;
166
- }
167
-
168
- :where(.bf-theme) :where(.bf-search-and-filter-selected-count) {
169
- ${bodyTypeStyles} appearance: none;
170
- align-items: flex-start;
171
- background: transparent;
172
- border: 0;
173
- color: var(--bf-color-link-default);
174
- cursor: pointer;
175
- display: inline-flex;
176
- margin: 0;
177
- padding-block: ${buttonBlockPaddingVar};
178
- padding-inline: 0;
179
- position: static;
180
- }
181
-
182
- :where(.bf-theme) :where(.bf-search-and-filter-search-container[aria-expanded='true']) :where(.bf-search-and-filter-selected-count) {
183
- display: none;
184
- }
185
-
186
- :where(.bf-theme) :where(.bf-search-and-filter-panel) {
187
- background-color: var(--bf-color-background-inputs);
188
- border: var(--bf-border-width) solid var(--bf-color-border-default);
189
- border-top: 0;
190
- box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
191
- display: grid;
192
- gap: var(--bf-field-gap);
193
- opacity: 1;
194
- padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
195
- padding-inline: var(--bf-panel-padding-inline);
196
- padding-top: var(--bf-panel-padding-block);
197
- position: absolute;
198
- top: 100%;
199
- width: 100%;
200
- z-index: 20;
201
- }
202
-
203
- :where(.bf-theme) :where(.bf-search-and-filter-panel[aria-hidden='true']) {
204
- opacity: 0;
205
- pointer-events: none;
206
- }
207
-
208
- :where(.bf-theme) :where(.bf-search-and-filter-search-prompt) {
209
- background: var(--bf-color-background-inputs);
210
- color: var(--bf-color-text-muted);
211
- cursor: pointer;
212
- margin: 0;
213
- overflow: hidden;
214
- padding-block-end: 0;
215
- padding-block-start: ${bodySelectedStartNudge};
216
- padding-inline: 0;
217
- text-overflow: ellipsis;
218
- white-space: nowrap;
219
- }
220
-
221
- :where(.bf-theme) :where(.bf-search-and-filter-search-query) {
222
- color: var(--bf-color-text-default);
223
- font-weight: 600;
224
- }
225
-
226
- :where(.bf-theme) :where(.bf-filter-panel-section) {
227
- border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
228
- display: grid;
229
- gap: var(--bf-field-gap);
230
- margin: 0;
231
- padding-bottom: calc(var(--bf-baseline) * 0.75);
232
- }
233
-
234
- :where(.bf-theme) :where(.bf-filter-panel-section:last-child) {
235
- border-bottom: 0;
236
- padding-bottom: 0;
237
- }
238
-
239
- :where(.bf-theme) :where(.bf-filter-panel-section-heading) {
240
- ${h6TypeStyles} color: var(--bf-color-text-muted);
241
- margin: 0;
242
- padding-block: 0;
243
- }
244
-
245
- :where(.bf-theme) :where(.bf-filter-panel-section-chips) {
246
- overflow: hidden;
247
- position: relative;
248
- }
249
-
250
- :where(.bf-theme) :where(.bf-filter-panel-section-chips[aria-expanded='false']) {
251
- max-block-size: calc(var(--bf-baseline) * 5);
252
- }
253
-
254
- :where(.bf-theme) :where(.bf-filter-panel-section-counter) {
255
- appearance: none;
256
- background: transparent;
257
- border: 0;
258
- bottom: 0;
259
- color: var(--bf-color-link-default);
260
- cursor: pointer;
261
- margin: 0;
262
- padding: 0;
263
- position: absolute;
264
- right: 0;
265
- }
3
+ return `:where(.bf-theme) :where(.bf-search-box) {
4
+ --bf-search-box-action-inline-size: calc(1rem + (var(--bf-control-inline-padding-field) * 2));
5
+ --bf-search-box-trailing-inline-size: calc((var(--bf-search-box-action-inline-size) * 2) + var(--bf-border-width));
6
+ display: flex;
7
+ inline-size: 100%;
8
+ margin: 0 0 ${inputMarginBottom};
9
+ max-inline-size: 100%;
10
+ min-inline-size: 0;
11
+ position: relative;
12
+ }
13
+
14
+ :where(.bf-theme) :where(.bf-search-box-input) {
15
+ margin-bottom: 0;
16
+ padding-inline-end: var(--bf-search-box-trailing-inline-size);
17
+ }
18
+
19
+ :where(.bf-theme) :where(.bf-search-box-reset, .bf-search-box-button) {
20
+ align-items: center;
21
+ block-size: var(--bf-control-box-size);
22
+ display: inline-flex;
23
+ inline-size: var(--bf-search-box-action-inline-size);
24
+ justify-content: center;
25
+ position: absolute;
26
+ top: 0;
27
+ }
28
+
29
+ :where(.bf-theme) :where(.bf-search-box-reset) {
30
+ inset-inline-end: calc(var(--bf-search-box-action-inline-size) + var(--bf-border-width));
31
+ }
32
+
33
+ :where(.bf-theme) :where(.bf-search-box-button) {
34
+ appearance: none;
35
+ background: transparent;
36
+ border: 0;
37
+ border-inline-start: var(--bf-border-width) solid var(--bf-color-border-default);
38
+ color: var(--bf-color-text-default);
39
+ cursor: pointer;
40
+ inset-inline-end: var(--bf-border-width);
41
+ margin: 0;
42
+ padding: 0;
43
+ text-indent: -9999px;
44
+ }
45
+
46
+ :where(.bf-theme) :where(.bf-search-box-button)::before {
47
+ background-image: var(--bf-ui-icon-search);
48
+ background-position: center;
49
+ background-repeat: no-repeat;
50
+ background-size: 1rem 1rem;
51
+ block-size: 1rem;
52
+ content: "";
53
+ inline-size: 1rem;
54
+ left: 50%;
55
+ position: absolute;
56
+ text-indent: 0;
57
+ top: 50%;
58
+ transform: translate(-50%, -50%);
59
+ }
60
+
61
+ :where(.bf-theme) :where(.bf-search-box-button)::after {
62
+ content: none;
63
+ }
64
+
65
+ :where(.bf-theme) :where(.bf-search-box-reset:focus:not(:focus-visible), .bf-search-box-button:focus:not(:focus-visible)) {
66
+ outline: none;
67
+ }
68
+
69
+ :where(.bf-theme) :where(.bf-search-box-reset:focus-visible, .bf-search-box-button:focus-visible) {
70
+ outline: 2px solid var(--bf-color-focus);
71
+ outline-offset: -2px;
72
+ }
73
+
74
+ :where(.bf-theme) :where(.bf-search-and-filter) {
75
+ display: grid;
76
+ inline-size: 100%;
77
+ margin: 0;
78
+ max-inline-size: 100%;
79
+ min-inline-size: 0;
80
+ position: relative;
81
+ }
82
+
83
+ :where(.bf-theme) :where(.bf-search-and-filter-search-container) {
84
+ align-items: stretch;
85
+ background: transparent;
86
+ box-shadow: inset 0 -1px 0 var(--bf-color-border-high-contrast);
87
+ display: flex;
88
+ flex-wrap: wrap;
89
+ gap: var(--bf-field-gap);
90
+ margin: 0 0 ${inputMarginBottom};
91
+ min-block-size: 0;
92
+ overflow: visible;
93
+ padding: 0;
94
+ position: relative;
95
+ }
96
+
97
+ :where(.bf-theme) :where(.bf-search-and-filter-search-container[aria-expanded='false']) {
98
+ min-block-size: var(--bf-control-box-size);
99
+ }
100
+
101
+ :where(.bf-theme) :where(.bf-search-and-filter-box) {
102
+ --bf-search-and-filter-action-inline-size: calc(1rem + (var(--bf-control-inline-padding-field) * 2));
103
+ --bf-search-and-filter-trailing-inline-size: calc(var(--bf-search-and-filter-action-inline-size) * 2);
104
+ display: inline-flex;
105
+ flex: 1 1 12rem;
106
+ max-inline-size: 100%;
107
+ min-inline-size: 0;
108
+ position: relative;
109
+ }
110
+
111
+ :where(.bf-theme) :where(.bf-search-and-filter-input) {
112
+ margin-bottom: 0;
113
+ padding-inline-end: var(--bf-search-and-filter-trailing-inline-size);
114
+ }
115
+
116
+ :where(.bf-theme) :where(.bf-search-and-filter-search-button) {
117
+ appearance: none;
118
+ background: transparent;
119
+ block-size: var(--bf-control-box-size);
120
+ border: 0;
121
+ color: var(--bf-color-text-default);
122
+ cursor: pointer;
123
+ inline-size: var(--bf-search-and-filter-action-inline-size);
124
+ inset-inline-end: 0;
125
+ margin: 0;
126
+ padding: 0;
127
+ position: absolute;
128
+ text-indent: -9999px;
129
+ top: 0;
130
+ }
131
+
132
+ :where(.bf-theme) :where(.bf-search-and-filter-search-button)::before {
133
+ background-image: var(--bf-ui-icon-search);
134
+ background-position: center;
135
+ background-repeat: no-repeat;
136
+ background-size: 1rem 1rem;
137
+ block-size: 1rem;
138
+ content: "";
139
+ inline-size: 1rem;
140
+ left: 50%;
141
+ position: absolute;
142
+ text-indent: 0;
143
+ top: 50%;
144
+ transform: translate(-50%, -50%);
145
+ }
146
+
147
+ :where(.bf-theme) :where(.bf-search-and-filter-search-button)::after {
148
+ content: none;
149
+ }
150
+
151
+ :where(.bf-theme) :where(.bf-search-and-filter-search-button:focus:not(:focus-visible), .bf-search-and-filter-selected-count:focus:not(:focus-visible)) {
152
+ outline: none;
153
+ }
154
+
155
+ :where(.bf-theme) :where(.bf-search-and-filter-search-button:focus-visible, .bf-search-and-filter-selected-count:focus-visible) {
156
+ outline: 2px solid var(--bf-color-focus);
157
+ outline-offset: -2px;
158
+ }
159
+
160
+ :where(.bf-theme) :where(.bf-search-and-filter-clear) {
161
+ block-size: var(--bf-control-box-size);
162
+ inline-size: var(--bf-search-and-filter-action-inline-size);
163
+ inset-inline-end: var(--bf-search-and-filter-action-inline-size);
164
+ position: absolute;
165
+ top: 0;
166
+ }
167
+
168
+ :where(.bf-theme) :where(.bf-search-and-filter-selected-count) {
169
+ ${bodyTypeStyles} appearance: none;
170
+ align-items: flex-start;
171
+ background: transparent;
172
+ border: 0;
173
+ color: var(--bf-color-link-default);
174
+ cursor: pointer;
175
+ display: inline-flex;
176
+ margin: 0;
177
+ padding-block: ${buttonBlockPaddingVar};
178
+ padding-inline: 0;
179
+ position: static;
180
+ }
181
+
182
+ :where(.bf-theme) :where(.bf-search-and-filter-search-container[aria-expanded='true']) :where(.bf-search-and-filter-selected-count) {
183
+ display: none;
184
+ }
185
+
186
+ :where(.bf-theme) :where(.bf-search-and-filter-panel) {
187
+ background-color: var(--bf-color-background-inputs);
188
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
189
+ border-top: 0;
190
+ box-shadow: 0 24px 72px rgba(0, 0, 0, 0.38);
191
+ display: grid;
192
+ gap: var(--bf-field-gap);
193
+ opacity: 1;
194
+ padding-bottom: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
195
+ padding-inline: var(--bf-panel-padding-inline);
196
+ padding-top: var(--bf-panel-padding-block);
197
+ position: absolute;
198
+ top: 100%;
199
+ width: 100%;
200
+ z-index: 20;
201
+ }
202
+
203
+ :where(.bf-theme) :where(.bf-search-and-filter-panel[aria-hidden='true']) {
204
+ opacity: 0;
205
+ pointer-events: none;
206
+ }
207
+
208
+ :where(.bf-theme) :where(.bf-search-and-filter-search-prompt) {
209
+ background: var(--bf-color-background-inputs);
210
+ color: var(--bf-color-text-muted);
211
+ cursor: pointer;
212
+ margin: 0;
213
+ overflow: hidden;
214
+ padding-block-end: 0;
215
+ padding-block-start: ${bodySelectedStartNudge};
216
+ padding-inline: 0;
217
+ text-overflow: ellipsis;
218
+ white-space: nowrap;
219
+ }
220
+
221
+ :where(.bf-theme) :where(.bf-search-and-filter-search-query) {
222
+ color: var(--bf-color-text-default);
223
+ font-weight: 600;
224
+ }
225
+
226
+ :where(.bf-theme) :where(.bf-filter-panel-section) {
227
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
228
+ display: grid;
229
+ gap: var(--bf-field-gap);
230
+ margin: 0;
231
+ padding-bottom: calc(var(--bf-baseline) * 0.75);
232
+ }
233
+
234
+ :where(.bf-theme) :where(.bf-filter-panel-section:last-child) {
235
+ border-bottom: 0;
236
+ padding-bottom: 0;
237
+ }
238
+
239
+ :where(.bf-theme) :where(.bf-filter-panel-section-heading) {
240
+ ${h6TypeStyles} color: var(--bf-color-text-muted);
241
+ margin: 0;
242
+ padding-block: 0;
243
+ }
244
+
245
+ :where(.bf-theme) :where(.bf-filter-panel-section-chips) {
246
+ overflow: hidden;
247
+ position: relative;
248
+ }
249
+
250
+ :where(.bf-theme) :where(.bf-filter-panel-section-chips[aria-expanded='false']) {
251
+ max-block-size: calc(var(--bf-baseline) * 5);
252
+ }
253
+
254
+ :where(.bf-theme) :where(.bf-filter-panel-section-counter) {
255
+ appearance: none;
256
+ background: transparent;
257
+ border: 0;
258
+ bottom: 0;
259
+ color: var(--bf-color-link-default);
260
+ cursor: pointer;
261
+ margin: 0;
262
+ padding: 0;
263
+ position: absolute;
264
+ right: 0;
265
+ }
266
266
  `;
267
267
  }