baseline-foundry 0.1.3 → 0.1.5

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 (84) hide show
  1. package/README.md +577 -553
  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/build.js +4 -4
  11. package/dist/code-snippet.js +1 -1
  12. package/dist/css-app-tier.js +78 -73
  13. package/dist/css-components/article-pagination.js +141 -140
  14. package/dist/css-components/button-actions.js +181 -161
  15. package/dist/css-components/cards-options.js +176 -176
  16. package/dist/css-components/chip-badge-status.d.ts +0 -3
  17. package/dist/css-components/chip-badge-status.js +174 -159
  18. package/dist/css-components/content-card.d.ts +7 -7
  19. package/dist/css-components/content-card.js +498 -497
  20. package/dist/css-components/control-row.d.ts +1 -1
  21. package/dist/css-components/control-row.js +15 -15
  22. package/dist/css-components/cta-figure-aspect.js +120 -120
  23. package/dist/css-components/document-navigation.js +427 -390
  24. package/dist/css-components/editorial-content.js +42 -42
  25. package/dist/css-components/icon.js +72 -72
  26. package/dist/css-components/interactive-feedback.js +239 -217
  27. package/dist/css-components/interactive-tables.js +160 -155
  28. package/dist/css-components/legacy-navigation.d.ts +8 -0
  29. package/dist/css-components/legacy-navigation.js +816 -0
  30. package/dist/css-components/linked-logo-site-layout.d.ts +3 -3
  31. package/dist/css-components/linked-logo-site-layout.js +177 -180
  32. package/dist/css-components/list-tree.js +96 -94
  33. package/dist/css-components/list.js +9 -7
  34. package/dist/css-components/logo-media.d.ts +6 -6
  35. package/dist/css-components/logo-media.js +218 -207
  36. package/dist/css-components/navigation-layout.js +144 -144
  37. package/dist/css-components/panel.js +148 -144
  38. package/dist/css-components/search-box-and-filter.d.ts +0 -1
  39. package/dist/css-components/search-box-and-filter.js +263 -264
  40. package/dist/css-components/sites-editorial-ports.d.ts +3 -4
  41. package/dist/css-components/sites-editorial-ports.js +279 -247
  42. package/dist/css-components/sites-foundation.js +142 -146
  43. package/dist/css-components/sites-rich-lists.d.ts +5 -5
  44. package/dist/css-components/sites-rich-lists.js +339 -349
  45. package/dist/css-components/static-content-ports.d.ts +3 -3
  46. package/dist/css-components/static-content-ports.js +200 -186
  47. package/dist/css-components/tab-section.d.ts +3 -3
  48. package/dist/css-components/tab-section.js +93 -85
  49. package/dist/css-components/table.js +76 -75
  50. package/dist/css-components/tabs-choice-breadcrumbs.js +307 -303
  51. package/dist/css-components/tiered-list-equal-height-row.js +271 -271
  52. package/dist/css-components.js +1881 -2554
  53. package/dist/css-grid.d.ts +1 -1
  54. package/dist/css-grid.js +183 -173
  55. package/dist/css.js +317 -241
  56. package/dist/experiments/ibm-plex-engine-smoke/styles.css +894 -538
  57. package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +2 -2
  58. package/dist/experiments/ibm-plex-engine-smoke/tokens.json +1 -1
  59. package/dist/in-page-navigation.js +1 -1
  60. package/dist/presets/app-tier/styles.css +928 -568
  61. package/dist/presets/app-tier/surfaces.json +17 -17
  62. package/dist/presets/app-tier/tokens.json +7 -7
  63. package/dist/presets/prose/styles.css +919 -562
  64. package/dist/presets/prose/surfaces.json +17 -17
  65. package/dist/presets/prose/tokens.json +1 -1
  66. package/dist/resizable-aside.js +12 -4
  67. package/dist/styles.css +919 -562
  68. package/dist/surfaces.json +17 -17
  69. package/dist/tiers/app/styles.css +928 -568
  70. package/dist/tiers/app/surfaces.json +17 -17
  71. package/dist/tiers/app/tokens.json +7 -7
  72. package/dist/tiers/documentation/styles.css +920 -563
  73. package/dist/tiers/documentation/surfaces.json +17 -17
  74. package/dist/tiers/documentation/tokens.json +2 -2
  75. package/dist/tiers/editorial/styles.css +919 -562
  76. package/dist/tiers/editorial/surfaces.json +17 -17
  77. package/dist/tiers/editorial/tokens.json +1 -1
  78. package/dist/tiers/os/styles.css +925 -568
  79. package/dist/tiers/os/surfaces.json +17 -17
  80. package/dist/tiers/os/tokens.json +7 -7
  81. package/dist/tokens.json +1 -1
  82. package/dist/types.d.ts +1 -1
  83. package/docs/publishing.md +31 -14
  84. package/package.json +119 -108
@@ -15,159 +15,155 @@
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(a.bf-basic-section-title-link, a.bf-basic-section-title-link:visited) {
59
+ color: var(--bf-color-link-default);
60
+ text-decoration: none;
61
+ }
62
+
63
+ :where(.bf-theme) :where(a.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
+ /* A balanced section switches at the shared readable 50/50 threshold. The
70
+ 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 >= 45rem) {
73
+ :where(.bf-theme) :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
+ /* CTA section: Vanilla's 25/75 variant is an offset content rail. The full
80
+ variant stays naturally full-width. Typography and action presentation are
81
+ supplied by real heading elements and bf-cta-block. */
82
+ :where(.bf-theme) :where(.bf-cta-section) {
83
+ container-name: bf-cta-section;
84
+ container-type: inline-size;
85
+ min-inline-size: 0;
86
+ }
87
+
88
+ :where(.bf-theme) :where(.bf-cta-section-layout) {
89
+ display: grid;
90
+ grid-template-columns: minmax(0, 1fr);
91
+ min-inline-size: 0;
92
+ }
93
+
94
+ :where(.bf-theme) :where(.bf-cta-section-content) {
95
+ --bf-stack-space: var(--bf-section-space-shallow);
96
+ align-content: start;
97
+ display: grid;
98
+ gap: var(--bf-stack-space);
99
+ min-inline-size: 0;
100
+ overflow-wrap: anywhere;
101
+ }
102
+
103
+ :where(.bf-theme) :where(.bf-cta-section-copy) {
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.is-offset) :where(.bf-cta-section-layout) {
110
+ column-gap: var(--bf-grid-gap-inline);
111
+ grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
112
+ }
113
+
114
+ :where(.bf-theme) :where(.bf-cta-section.is-offset) :where(.bf-cta-section-content) {
115
+ grid-column: 2;
116
+ }
117
+ }
118
+
119
+ /* Text spotlight: a ruled title rail and two-to-seven prominent list items.
120
+ The ordered list itself is structural; each item uses a genuine BF heading
121
+ role and therefore keeps the correct tier-specific rhythm. */
122
+ :where(.bf-theme) :where(.bf-text-spotlight) {
123
+ container-name: bf-text-spotlight;
124
+ container-type: inline-size;
125
+ margin-block-end: 0;
126
+ min-inline-size: 0;
127
+ }
128
+
129
+ :where(.bf-theme) :where(.bf-text-spotlight-layout) {
130
+ display: grid;
131
+ grid-template-columns: minmax(0, 1fr);
132
+ min-inline-size: 0;
133
+ }
134
+
135
+ :where(.bf-theme) :where(.bf-text-spotlight-rule) {
136
+ grid-column: 1 / -1;
137
+ }
138
+
139
+ :where(.bf-theme) :where(.bf-text-spotlight-header, .bf-text-spotlight-content) {
140
+ min-inline-size: 0;
141
+ }
142
+
147
143
  :where(.bf-theme) :where(.bf-text-spotlight-items) {
148
144
  align-content: start;
149
145
  display: grid;
150
146
  list-style: none;
151
- margin: 0;
152
- padding: 0;
153
- }
154
-
147
+ margin: 0;
148
+ padding: 0;
149
+ }
150
+
155
151
  :where(.bf-theme) :where(.bf-text-spotlight-item) {
156
152
  align-content: start;
157
153
  display: grid;
158
154
  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
- }
155
+ overflow-wrap: anywhere;
156
+ }
157
+
158
+ :where(.bf-theme) :where(.bf-text-spotlight-item) > :where(a) {
159
+ overflow-wrap: anywhere;
160
+ }
161
+
162
+ @container bf-text-spotlight (width >= 64.75rem) {
163
+ :where(.bf-theme) :where(.bf-text-spotlight-layout) {
164
+ column-gap: var(--bf-grid-gap-inline);
165
+ grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
166
+ }
167
+ }
172
168
  `;
173
169
  }
@@ -8,11 +8,11 @@
8
8
  * content paired with one responsive image or video slot.
9
9
  *
10
10
  * Vanilla → BF spacing mapping:
11
- * - horizontal item 8px/16px block padding → `space-1`/`space-2`;
12
- * - 16px grid gutters → `grid-gap-inline`;
13
- * - shallow/default/deep section exits → BF's existing section tokens;
14
- * - the 620px/1036px page breakpoints → 38.75rem/64.75rem container
11
+ * - horizontal item 0.5rem/1rem block padding → `space-1`/`space-2`;
12
+ * - 1rem grid gutters → `grid-gap-inline`;
13
+ * - the 38.75rem/64.75rem page breakpoints → 38.75rem/64.75rem container
15
14
  * thresholds for descendants. Text roles keep their own metric-derived
16
- * margins and baseline compensation in every tier.
15
+ * margins and baseline compensation in every tier. Parent stacks own every
16
+ * boundary outside the pattern.
17
17
  */
18
18
  export declare function sitesRichListsCss(): string;