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
@@ -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
  }