baseline-foundry 0.1.7 → 0.2.0

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 (80) hide show
  1. package/README.md +22 -7
  2. package/config/canonical-spacing.resolved.json +71 -0
  3. package/config/experiments/ibm-plex-engine-smoke.json +7 -6
  4. package/config/experiments/ubuntu-engine-smoke.json +7 -6
  5. package/config/foundation-theme.json +7 -6
  6. package/config/tiers/app.json +8 -9
  7. package/config/tiers/documentation.json +7 -8
  8. package/config/tiers/editorial.json +7 -8
  9. package/config/tiers/os.json +7 -8
  10. package/dist/application-layout.js +1 -1
  11. package/dist/build.d.ts +1 -0
  12. package/dist/build.js +98 -36
  13. package/dist/css-app-tier.js +4 -46
  14. package/dist/css-component-contracts.d.ts +7 -0
  15. package/dist/css-component-contracts.js +82 -0
  16. package/dist/css-components/application-geometry.d.ts +5 -0
  17. package/dist/css-components/application-geometry.js +31 -0
  18. package/dist/css-components/article-pagination.js +6 -5
  19. package/dist/css-components/button-actions.js +68 -4
  20. package/dist/css-components/cards-options.js +2 -2
  21. package/dist/css-components/chip-badge-status.d.ts +0 -1
  22. package/dist/css-components/chip-badge-status.js +31 -16
  23. package/dist/css-components/content-card.js +11 -10
  24. package/dist/css-components/control-geometry.d.ts +12 -0
  25. package/dist/css-components/control-geometry.js +22 -0
  26. package/dist/css-components/cta-figure-aspect.js +2 -2
  27. package/dist/css-components/document-navigation.js +28 -18
  28. package/dist/css-components/editorial-content.js +1 -1
  29. package/dist/css-components/icon.js +24 -2
  30. package/dist/css-components/interactive-feedback.js +27 -14
  31. package/dist/css-components/interactive-tables.js +9 -6
  32. package/dist/css-components/legacy-navigation.js +32 -25
  33. package/dist/css-components/list-tree.js +5 -5
  34. package/dist/css-components/list.js +17 -12
  35. package/dist/css-components/logo-media.js +2 -2
  36. package/dist/css-components/navigation-geometry.d.ts +5 -0
  37. package/dist/css-components/navigation-geometry.js +30 -0
  38. package/dist/css-components/nested-controls.d.ts +8 -0
  39. package/dist/css-components/nested-controls.js +37 -0
  40. package/dist/css-components/panel.js +12 -13
  41. package/dist/css-components/search-box-and-filter.d.ts +0 -1
  42. package/dist/css-components/search-box-and-filter.js +3 -3
  43. package/dist/css-components/sites-editorial-ports.js +8 -1
  44. package/dist/css-components/sites-foundation.js +2 -2
  45. package/dist/css-components/table.js +9 -1
  46. package/dist/css-components/tabs-choice-breadcrumbs.js +9 -9
  47. package/dist/css-components/tiered-list-equal-height-row.js +2 -2
  48. package/dist/css-components.js +98 -228
  49. package/dist/css.js +44 -1
  50. package/dist/dtcg-spacing.d.ts +40 -0
  51. package/dist/dtcg-spacing.js +163 -0
  52. package/dist/experiments/ibm-plex-engine-smoke/styles.css +550 -360
  53. package/dist/experiments/ibm-plex-engine-smoke/surfaces.json +182 -14
  54. package/dist/experiments/ibm-plex-engine-smoke/tokens.json +91 -7
  55. package/dist/index.d.ts +1 -0
  56. package/dist/presets/app-tier/styles.css +693 -494
  57. package/dist/presets/app-tier/surfaces.json +709 -29
  58. package/dist/presets/app-tier/tokens.json +178 -8
  59. package/dist/presets/prose/styles.css +692 -486
  60. package/dist/presets/prose/surfaces.json +709 -29
  61. package/dist/presets/prose/tokens.json +177 -7
  62. package/dist/styles.css +692 -486
  63. package/dist/surfaces.json +709 -29
  64. package/dist/tiers/app/styles.css +693 -494
  65. package/dist/tiers/app/surfaces.json +709 -29
  66. package/dist/tiers/app/tokens.json +178 -8
  67. package/dist/tiers/documentation/styles.css +692 -486
  68. package/dist/tiers/documentation/surfaces.json +709 -29
  69. package/dist/tiers/documentation/tokens.json +177 -7
  70. package/dist/tiers/editorial/styles.css +692 -486
  71. package/dist/tiers/editorial/surfaces.json +709 -29
  72. package/dist/tiers/editorial/tokens.json +177 -7
  73. package/dist/tiers/os/styles.css +692 -486
  74. package/dist/tiers/os/surfaces.json +709 -29
  75. package/dist/tiers/os/tokens.json +177 -7
  76. package/dist/tokens.json +177 -7
  77. package/dist/types.d.ts +13 -13
  78. package/dist/vanilla-theme-colors.js +5 -1
  79. package/docs/publishing.md +7 -1
  80. package/package.json +1 -1
@@ -1,5 +1,178 @@
1
1
  {
2
2
  "baselineUnit": "0.25rem",
3
+ "inlineUnit": "0.25rem",
4
+ "canonicalSpacing": {
5
+ "spacing.baseline": {
6
+ "$type": "dimension",
7
+ "$value": {
8
+ "value": 0.25,
9
+ "unit": "rem"
10
+ }
11
+ },
12
+ "spacing.gap.field.block": {
13
+ "$type": "dimension",
14
+ "$value": {
15
+ "value": 0.25,
16
+ "unit": "rem"
17
+ }
18
+ },
19
+ "spacing.gap.mark.inline": {
20
+ "$type": "dimension",
21
+ "$value": {
22
+ "value": 0.25,
23
+ "unit": "rem"
24
+ }
25
+ },
26
+ "spacing.gap.group.block": {
27
+ "$type": "dimension",
28
+ "$value": {
29
+ "value": 1.5,
30
+ "unit": "rem"
31
+ }
32
+ },
33
+ "spacing.gap.pattern.block": {
34
+ "$type": "dimension",
35
+ "$value": {
36
+ "value": 3,
37
+ "unit": "rem"
38
+ }
39
+ },
40
+ "spacing.gap.region.block": {
41
+ "$type": "dimension",
42
+ "$value": {
43
+ "value": 6,
44
+ "unit": "rem"
45
+ }
46
+ },
47
+ "spacing.inset.field.inline": {
48
+ "$type": "dimension",
49
+ "$value": {
50
+ "value": 0.25,
51
+ "unit": "rem"
52
+ }
53
+ },
54
+ "spacing.inset.action.inline": {
55
+ "$type": "dimension",
56
+ "$value": {
57
+ "value": 0.5,
58
+ "unit": "rem"
59
+ }
60
+ },
61
+ "spacing.inset.continuation.inline": {
62
+ "$type": "dimension",
63
+ "$value": {
64
+ "value": 1.25,
65
+ "unit": "rem"
66
+ }
67
+ },
68
+ "spacing.inset.surface.inline": {
69
+ "$type": "dimension",
70
+ "$value": {
71
+ "value": 0.5,
72
+ "unit": "rem"
73
+ }
74
+ },
75
+ "spacing.inset.surface.block": {
76
+ "$type": "dimension",
77
+ "$value": {
78
+ "value": 0.5,
79
+ "unit": "rem"
80
+ }
81
+ },
82
+ "spacing.inset.strip.block": {
83
+ "$type": "dimension",
84
+ "$value": {
85
+ "value": 2,
86
+ "unit": "rem"
87
+ }
88
+ }
89
+ },
90
+ "spacing": {
91
+ "spacing.baseline": {
92
+ "$type": "dimension",
93
+ "$value": {
94
+ "value": 0.25,
95
+ "unit": "rem"
96
+ }
97
+ },
98
+ "spacing.gap.field.block": {
99
+ "$type": "dimension",
100
+ "$value": {
101
+ "value": 0.25,
102
+ "unit": "rem"
103
+ }
104
+ },
105
+ "spacing.gap.mark.inline": {
106
+ "$type": "dimension",
107
+ "$value": {
108
+ "value": 0.25,
109
+ "unit": "rem"
110
+ }
111
+ },
112
+ "spacing.gap.group.block": {
113
+ "$type": "dimension",
114
+ "$value": {
115
+ "value": 1.5,
116
+ "unit": "rem"
117
+ }
118
+ },
119
+ "spacing.gap.pattern.block": {
120
+ "$type": "dimension",
121
+ "$value": {
122
+ "value": 3,
123
+ "unit": "rem"
124
+ }
125
+ },
126
+ "spacing.gap.region.block": {
127
+ "$type": "dimension",
128
+ "$value": {
129
+ "value": 6,
130
+ "unit": "rem"
131
+ }
132
+ },
133
+ "spacing.inset.field.inline": {
134
+ "$type": "dimension",
135
+ "$value": {
136
+ "value": 0.25,
137
+ "unit": "rem"
138
+ }
139
+ },
140
+ "spacing.inset.action.inline": {
141
+ "$type": "dimension",
142
+ "$value": {
143
+ "value": 0.5,
144
+ "unit": "rem"
145
+ }
146
+ },
147
+ "spacing.inset.continuation.inline": {
148
+ "$type": "dimension",
149
+ "$value": {
150
+ "value": 1.25,
151
+ "unit": "rem"
152
+ }
153
+ },
154
+ "spacing.inset.surface.inline": {
155
+ "$type": "dimension",
156
+ "$value": {
157
+ "value": 0.5,
158
+ "unit": "rem"
159
+ }
160
+ },
161
+ "spacing.inset.surface.block": {
162
+ "$type": "dimension",
163
+ "$value": {
164
+ "value": 0.5,
165
+ "unit": "rem"
166
+ }
167
+ },
168
+ "spacing.inset.strip.block": {
169
+ "$type": "dimension",
170
+ "$value": {
171
+ "value": 2,
172
+ "unit": "rem"
173
+ }
174
+ }
175
+ },
3
176
  "fontFiles": [
4
177
  {
5
178
  "family": "ubuntu-sans",
@@ -207,15 +380,12 @@
207
380
  "borderWidth": "0.0625rem",
208
381
  "barThickness": "0.1875rem",
209
382
  "radius": "0rem",
210
- "controlBlockPadding": "0.375rem",
211
- "controlCompactBlockPadding": "0.25rem",
212
- "controlInlinePadding": "1rem",
213
- "controlInlinePaddingAction": "1rem",
214
- "controlInlinePaddingField": "0.25rem",
383
+ "inlineInsetField": "0.25rem",
384
+ "inlineInsetAction": "0.5rem",
385
+ "inlineInsetContinuation": "1.25rem",
215
386
  "controlVisualSize": "0.75rem",
216
387
  "fieldGap": "0.25rem",
217
388
  "panelPaddingInline": "0.5rem",
218
- "panelPaddingBlock": "0.5rem",
219
- "accordionIndent": "0.75rem"
389
+ "panelPaddingBlock": "0.5rem"
220
390
  }
221
391
  }
package/dist/tokens.json CHANGED
@@ -1,5 +1,178 @@
1
1
  {
2
2
  "baselineUnit": "0.5rem",
3
+ "inlineUnit": "0.25rem",
4
+ "canonicalSpacing": {
5
+ "spacing.baseline": {
6
+ "$type": "dimension",
7
+ "$value": {
8
+ "value": 0.5,
9
+ "unit": "rem"
10
+ }
11
+ },
12
+ "spacing.gap.field.block": {
13
+ "$type": "dimension",
14
+ "$value": {
15
+ "value": 0.5,
16
+ "unit": "rem"
17
+ }
18
+ },
19
+ "spacing.gap.mark.inline": {
20
+ "$type": "dimension",
21
+ "$value": {
22
+ "value": 0.5,
23
+ "unit": "rem"
24
+ }
25
+ },
26
+ "spacing.gap.group.block": {
27
+ "$type": "dimension",
28
+ "$value": {
29
+ "value": 1.5,
30
+ "unit": "rem"
31
+ }
32
+ },
33
+ "spacing.gap.pattern.block": {
34
+ "$type": "dimension",
35
+ "$value": {
36
+ "value": 4,
37
+ "unit": "rem"
38
+ }
39
+ },
40
+ "spacing.gap.region.block": {
41
+ "$type": "dimension",
42
+ "$value": {
43
+ "value": 8,
44
+ "unit": "rem"
45
+ }
46
+ },
47
+ "spacing.inset.field.inline": {
48
+ "$type": "dimension",
49
+ "$value": {
50
+ "value": 0.5,
51
+ "unit": "rem"
52
+ }
53
+ },
54
+ "spacing.inset.action.inline": {
55
+ "$type": "dimension",
56
+ "$value": {
57
+ "value": 1,
58
+ "unit": "rem"
59
+ }
60
+ },
61
+ "spacing.inset.continuation.inline": {
62
+ "$type": "dimension",
63
+ "$value": {
64
+ "value": 2,
65
+ "unit": "rem"
66
+ }
67
+ },
68
+ "spacing.inset.surface.inline": {
69
+ "$type": "dimension",
70
+ "$value": {
71
+ "value": 1,
72
+ "unit": "rem"
73
+ }
74
+ },
75
+ "spacing.inset.surface.block": {
76
+ "$type": "dimension",
77
+ "$value": {
78
+ "value": 1,
79
+ "unit": "rem"
80
+ }
81
+ },
82
+ "spacing.inset.strip.block": {
83
+ "$type": "dimension",
84
+ "$value": {
85
+ "value": 4,
86
+ "unit": "rem"
87
+ }
88
+ }
89
+ },
90
+ "spacing": {
91
+ "spacing.baseline": {
92
+ "$type": "dimension",
93
+ "$value": {
94
+ "value": 0.5,
95
+ "unit": "rem"
96
+ }
97
+ },
98
+ "spacing.gap.field.block": {
99
+ "$type": "dimension",
100
+ "$value": {
101
+ "value": 0.5,
102
+ "unit": "rem"
103
+ }
104
+ },
105
+ "spacing.gap.mark.inline": {
106
+ "$type": "dimension",
107
+ "$value": {
108
+ "value": 0.5,
109
+ "unit": "rem"
110
+ }
111
+ },
112
+ "spacing.gap.group.block": {
113
+ "$type": "dimension",
114
+ "$value": {
115
+ "value": 1.5,
116
+ "unit": "rem"
117
+ }
118
+ },
119
+ "spacing.gap.pattern.block": {
120
+ "$type": "dimension",
121
+ "$value": {
122
+ "value": 4,
123
+ "unit": "rem"
124
+ }
125
+ },
126
+ "spacing.gap.region.block": {
127
+ "$type": "dimension",
128
+ "$value": {
129
+ "value": 8,
130
+ "unit": "rem"
131
+ }
132
+ },
133
+ "spacing.inset.field.inline": {
134
+ "$type": "dimension",
135
+ "$value": {
136
+ "value": 0.5,
137
+ "unit": "rem"
138
+ }
139
+ },
140
+ "spacing.inset.action.inline": {
141
+ "$type": "dimension",
142
+ "$value": {
143
+ "value": 1,
144
+ "unit": "rem"
145
+ }
146
+ },
147
+ "spacing.inset.continuation.inline": {
148
+ "$type": "dimension",
149
+ "$value": {
150
+ "value": 2,
151
+ "unit": "rem"
152
+ }
153
+ },
154
+ "spacing.inset.surface.inline": {
155
+ "$type": "dimension",
156
+ "$value": {
157
+ "value": 1,
158
+ "unit": "rem"
159
+ }
160
+ },
161
+ "spacing.inset.surface.block": {
162
+ "$type": "dimension",
163
+ "$value": {
164
+ "value": 1,
165
+ "unit": "rem"
166
+ }
167
+ },
168
+ "spacing.inset.strip.block": {
169
+ "$type": "dimension",
170
+ "$value": {
171
+ "value": 4,
172
+ "unit": "rem"
173
+ }
174
+ }
175
+ },
3
176
  "fontFiles": [
4
177
  {
5
178
  "family": "ubuntu-sans",
@@ -207,15 +380,12 @@
207
380
  "borderWidth": "0.0625rem",
208
381
  "barThickness": "0.1875rem",
209
382
  "radius": "0rem",
210
- "controlBlockPadding": "0.5rem",
211
- "controlCompactBlockPadding": "0.25rem",
212
- "controlInlinePadding": "1rem",
213
- "controlInlinePaddingAction": "1rem",
214
- "controlInlinePaddingField": "0.5rem",
383
+ "inlineInsetField": "0.5rem",
384
+ "inlineInsetAction": "1rem",
385
+ "inlineInsetContinuation": "2rem",
215
386
  "controlVisualSize": "1rem",
216
387
  "fieldGap": "0.5rem",
217
388
  "panelPaddingInline": "1rem",
218
- "panelPaddingBlock": "1rem",
219
- "accordionIndent": "1.5rem"
389
+ "panelPaddingBlock": "1rem"
220
390
  }
221
391
  }
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { ResolvedDtcgSpacing } from "./dtcg-spacing.js";
1
2
  export interface ThemeFontFile {
2
3
  family: string;
3
4
  path: string;
@@ -36,19 +37,18 @@ export interface ThemeLayoutConfig {
36
37
  export interface ThemeComponentsConfig {
37
38
  borderWidthRem: number;
38
39
  radiusRem: number;
39
- controlBlockPaddingRem: number;
40
- controlCompactBlockPaddingRem?: number;
41
- controlInlinePaddingRem: number;
42
- controlInlinePaddingActionRem?: number;
43
- controlInlinePaddingFieldRem?: number;
40
+ inlineInsetFieldUnits: number;
41
+ inlineInsetActionUnits: number;
42
+ inlineInsetContinuationUnits: number;
43
+ markGapInlineUnits: number;
44
44
  controlVisualSizeRem: number;
45
45
  fieldGapBaselineUnits: number;
46
- panelPaddingInlineBaselineUnits: number;
46
+ panelPaddingInlineUnits: number;
47
47
  panelPaddingBlockBaselineUnits: number;
48
- accordionIndentBaselineUnits: number;
49
48
  }
50
49
  export interface ThemeConfig {
51
50
  baselineUnit: number;
51
+ inlineUnitRem: number;
52
52
  fontFiles: ThemeFontFile[];
53
53
  fontStacks: Record<string, string>;
54
54
  elements: ThemeElementConfig[];
@@ -94,19 +94,19 @@ export interface ComponentTokens {
94
94
  borderWidth: string;
95
95
  barThickness: string;
96
96
  radius: string;
97
- controlBlockPadding: string;
98
- controlCompactBlockPadding: string;
99
- controlInlinePadding: string;
100
- controlInlinePaddingAction: string;
101
- controlInlinePaddingField: string;
97
+ inlineInsetField: string;
98
+ inlineInsetAction: string;
99
+ inlineInsetContinuation: string;
102
100
  controlVisualSize: string;
103
101
  fieldGap: string;
104
102
  panelPaddingInline: string;
105
103
  panelPaddingBlock: string;
106
- accordionIndent: string;
107
104
  }
108
105
  export interface ThemeTokens {
109
106
  baselineUnit: string;
107
+ inlineUnit: string;
108
+ canonicalSpacing?: ResolvedDtcgSpacing;
109
+ spacing: ResolvedDtcgSpacing;
110
110
  fontFiles: ThemeFontFile[];
111
111
  fontStacks: Record<string, string>;
112
112
  roles: Record<string, TypographyToken>;
@@ -160,6 +160,10 @@ const FOUNDRY_COMPONENT_COLOR_SOURCES = {
160
160
  "--bf-color-brand": "--vf-color-brand",
161
161
  "--bf-color-focus": "--vf-color-focus"
162
162
  };
163
+ const FOUNDRY_COMPONENT_FIXED_COLORS = {
164
+ "--bf-application-resize-handle-active": "rgba(246, 183, 60, 0.95)",
165
+ "--bf-application-resize-handle-focus-ring": "rgba(246, 183, 60, 0.55)"
166
+ };
163
167
  function cssVarBlock(vars) {
164
168
  return `${Object.entries(vars)
165
169
  .map(([name, value]) => ` ${name}: ${value};`)
@@ -204,5 +208,5 @@ export function foundryThemeRootColorVars(tone) {
204
208
  return aliasBlock(FOUNDRY_THEME_ROOT_COLOR_SOURCES, tone);
205
209
  }
206
210
  export function foundryComponentColorVars(tone) {
207
- return aliasBlock(FOUNDRY_COMPONENT_COLOR_SOURCES, tone, componentAliasFallback);
211
+ return `${aliasBlock(FOUNDRY_COMPONENT_COLOR_SOURCES, tone, componentAliasFallback)}${cssVarBlock(FOUNDRY_COMPONENT_FIXED_COLORS)}`;
208
212
  }
@@ -21,7 +21,7 @@ npm install baseline-foundry
21
21
  The attached GitHub release tarball is the fallback:
22
22
 
23
23
  ```bash
24
- npm install https://github.com/lyubomir-popov/baseline-foundry/releases/download/v0.1.7/baseline-foundry-0.1.7.tgz
24
+ npm install https://github.com/lyubomir-popov/baseline-foundry/releases/download/v0.2.0/baseline-foundry-0.2.0.tgz
25
25
  ```
26
26
 
27
27
  Do not install the Git tag or GitHub source archive. `dist/` is generated and
@@ -66,6 +66,12 @@ durable release evidence; documentation must not claim public provenance.
66
66
 
67
67
  ## Compatibility
68
68
 
69
+ The first release containing Spec 020a must use `0.2.0` or later, not a
70
+ `0.1.x` patch: its exported custom-theme configuration shape is intentionally
71
+ breaking. The required field-by-field migration is documented in the README's
72
+ "What the downstream config needs" section. This requirement does not
73
+ authorize a version bump, publication, tag, or release during 020a landing.
74
+
69
75
  Keeping the package name means normal consumers do not change imports:
70
76
 
71
77
  ```js
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "baseline-foundry",
3
- "version": "0.1.7",
3
+ "version": "0.2.0",
4
4
  "description": "Lean baseline-aligned design system focused on typography, editorial flow, spacing, and grid primitives.",
5
5
  "author": "Lyubomir Popov",
6
6
  "type": "module",