@helloimjolopez-pathway/pathway-tokens 11.3.0 → 11.4.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.
- package/README.md +21 -2
- package/dist/README.md +3 -3
- package/dist/contract.json +8 -6
- package/dist/layout-responsive.css +12 -1
- package/dist/tokens.js +66 -0
- package/dist/tokens.json +36 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ one name set rather than each having their own.
|
|
|
20
20
|
| Type scale (`type.css`) | 41 | Yes |
|
|
21
21
|
| Spacing, radii, borders (`layout.css`) | 40 | Yes |
|
|
22
22
|
| Motion (`motion.css`) | 17 | Yes |
|
|
23
|
-
| Sheet and TopNav padding (`layout-responsive.css`) |
|
|
23
|
+
| Sheet and TopNav padding, and the touch target minimum (`layout-responsive.css`) | 11 | Yes |
|
|
24
24
|
| Breakpoints (`breakpoints.css`) | 5 | Yes |
|
|
25
25
|
| **Working vocabulary** | **284** | |
|
|
26
26
|
| Raw ramps (`primitives.css`) | 350 | **No**, but you must load it |
|
|
@@ -178,7 +178,7 @@ it was measured from. This table is generated from
|
|
|
178
178
|
|
|
179
179
|
<!-- BEGIN component-index (generated by scripts/build-component-index.js) -->
|
|
180
180
|
|
|
181
|
-
**
|
|
181
|
+
**20 components with their own page, 2 building blocks that only exist nested.**
|
|
182
182
|
|
|
183
183
|
| Component | Spec | Module | Storybook | Figma node | Code Connect files |
|
|
184
184
|
|---|---|---|---|---|---|
|
|
@@ -201,6 +201,7 @@ it was measured from. This table is generated from
|
|
|
201
201
|
| **Mini Chart** | [spec](components/kpi-tile/mini-chart-spec.md) | [`mini-chart.jsx`](components/kpi-tile/mini-chart.jsx) | [open](https://potential-bassoon-voz982n.pages.github.io/storybook/?path=/docs/library-mini-chart--docs) | `40009415:27919` | 1 |
|
|
202
202
|
| **Bar Chart** | [spec](components/kpi-tile/bar-chart-spec.md) | [`bar-chart.jsx`](components/kpi-tile/bar-chart.jsx) | [open](https://potential-bassoon-voz982n.pages.github.io/storybook/?path=/docs/library-bar-chart--docs) | `40009417:13029` | 3 |
|
|
203
203
|
| **Page Template** | [spec](components/page-template/page-template-spec.md) | [`page-template.jsx`](components/page-template/page-template.jsx) | [open](https://potential-bassoon-voz982n.pages.github.io/storybook/?path=/docs/library-page-template--docs) | `40009709:26016` | 0 |
|
|
204
|
+
| **Tooltip** | [spec](components/tooltip/tooltip-spec.md) | [`tooltip.jsx`](components/tooltip/tooltip.jsx) | [open](https://potential-bassoon-voz982n.pages.github.io/storybook/?path=/docs/library-tooltip--docs) | `40018655:12004` | 0 |
|
|
204
205
|
|
|
205
206
|
Building blocks. Each is mapped for Code Connect and specced, but has no page
|
|
206
207
|
of its own because it only ever appears as a nested instance inside the
|
|
@@ -338,6 +339,24 @@ A Widget is a container that does not know what it holds. A KPI Tile is a card
|
|
|
338
339
|
in its own right. Both nest the same building block, `KpiNumberAndTrend`, which
|
|
339
340
|
has no card of its own and gets one from whatever nests it.
|
|
340
341
|
|
|
342
|
+
## Planned changes
|
|
343
|
+
|
|
344
|
+
### Touch target tokens move to `Responsive: Layout` (open)
|
|
345
|
+
|
|
346
|
+
Decided 2026-10-30. Not done yet. Until it ships, the six tokens below stay in `layout.css` under their current names, and every place that documents them carries an "Open: this token moves to Responsive: Layout" note.
|
|
347
|
+
|
|
348
|
+
| What | Detail |
|
|
349
|
+
|---|---|
|
|
350
|
+
| Goal | All touch target tokens live in `Responsive: Layout`; none remain in `Semantic: Layout & Units` |
|
|
351
|
+
| Tokens to move | Accessibility/Touch Target/AA, AAA and Desktop Only (Height and Width), next to Touch Target/Minimum |
|
|
352
|
+
| Values | The same names and values, with a value for every mode (Desktop, Tablet, Mobile) |
|
|
353
|
+
| Code | CSS names change from `--semantic-layout-units-accessibility-touch-target-*` to `--responsive-layout-accessibility-touch-target-*`. Ships as a major release, with the old names kept as aliases for one release |
|
|
354
|
+
| Deprecate | The old Figma variables are described "Deprecated: moved to Responsive: Layout on <date>, use <new name>" and hidden from publishing, then deleted after one release |
|
|
355
|
+
| Token contract | `layout-responsive.css` is documented as holding only tokens that change by breakpoint. That line is updated as part of the move so it also covers touch targets |
|
|
356
|
+
| Components | Component touch frames rebind to Touch Target/Minimum in code and in Figma together, in the same release |
|
|
357
|
+
|
|
358
|
+
The first step shipped in 11.4.0: `--responsive-layout-touch-target-minimum-height` and `-width` (36 on desktop, 44 on tablet and mobile). See [CHANGELOG.md](CHANGELOG.md).
|
|
359
|
+
|
|
341
360
|
## Component-to-token map
|
|
342
361
|
|
|
343
362
|
`tokens/component-token-map.json` maps every component element to its CSS variable. Use this file to answer "which token does X use?" without reading specs.
|
package/dist/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Pathway design tokens
|
|
2
2
|
|
|
3
3
|
**The colour contract is 210 names.** Your full working vocabulary is
|
|
4
|
-
**
|
|
5
|
-
|
|
4
|
+
**362**. If you add up every declaration in this folder you get
|
|
5
|
+
1157. That number is not the contract, and the table below says why.
|
|
6
6
|
|
|
7
7
|
## Link these, in this order
|
|
8
8
|
|
|
@@ -32,7 +32,7 @@ error**.
|
|
|
32
32
|
| `layout.css` | 76 | yes | yes | Spacing, radii, border widths. |
|
|
33
33
|
| `layout-contextual.css` | 37 | **no** | **no** | Per-component metrics. This repo's components use these. |
|
|
34
34
|
| `motion.css` | 21 | yes | yes | Durations and easings. |
|
|
35
|
-
| `layout-responsive.css` |
|
|
35
|
+
| `layout-responsive.css` | 11 | yes | yes | Sheet and TopNav padding, and the touch target minimum. The only layout tokens with media queries. |
|
|
36
36
|
| `breakpoints.css` | 5 | yes | yes | Breakpoint values. |
|
|
37
37
|
|
|
38
38
|
Each file repeats this in its own header.
|
package/dist/contract.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$comment": "The names a consumer may use. Generated from the emitted CSS by scripts/build-contract.js, do not hand-edit. Lint against `contract` if you want the boundary enforced; nothing here blocks a primitive.",
|
|
3
|
-
"version": "11.
|
|
4
|
-
"generated": "2026-10-
|
|
3
|
+
"version": "11.4.0",
|
|
4
|
+
"generated": "2026-10-30",
|
|
5
5
|
"counts": {
|
|
6
|
-
"contract":
|
|
6
|
+
"contract": 362,
|
|
7
7
|
"infrastructure": 585,
|
|
8
|
-
"declarationsAcrossAllFiles":
|
|
8
|
+
"declarationsAcrossAllFiles": 1157
|
|
9
9
|
},
|
|
10
10
|
"loadOrder": [
|
|
11
11
|
"primitives.css",
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
"layout-responsive.css": {
|
|
64
64
|
"contract": true,
|
|
65
65
|
"mustLoad": true,
|
|
66
|
-
"count":
|
|
67
|
-
"role": "Sheet and TopNav padding. The only layout tokens with media queries."
|
|
66
|
+
"count": 11,
|
|
67
|
+
"role": "Sheet and TopNav padding, and the touch target minimum. The only layout tokens with media queries."
|
|
68
68
|
},
|
|
69
69
|
"breakpoints.css": {
|
|
70
70
|
"contract": true,
|
|
@@ -162,6 +162,8 @@
|
|
|
162
162
|
"--responsive-layout-topnav-gap-horizontal",
|
|
163
163
|
"--responsive-layout-topnav-padding-horizontal",
|
|
164
164
|
"--responsive-layout-topnav-padding-vertical",
|
|
165
|
+
"--responsive-layout-touch-target-minimum-height",
|
|
166
|
+
"--responsive-layout-touch-target-minimum-width",
|
|
165
167
|
"--semantic-color-fill-action-disabled",
|
|
166
168
|
"--semantic-color-fill-action-ghost-hover",
|
|
167
169
|
"--semantic-color-fill-action-ghost-pressed",
|
|
@@ -14,7 +14,12 @@
|
|
|
14
14
|
A developer cannot derive these from a responsive grid. The grid governs
|
|
15
15
|
columns; it says nothing about the chrome's padding.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Touch Target/Minimum (added 2026-10-30) is here for the same reason: it is
|
|
18
|
+
36 on desktop and 44 on tablet and mobile. The other touch target tokens
|
|
19
|
+
are still single-valued in layout.css; moving them here is planned (see
|
|
20
|
+
README, Planned changes).
|
|
21
|
+
|
|
22
|
+
Declares 29 custom properties.
|
|
18
23
|
Generated: do not edit. Run `npm run build-tokens`.
|
|
19
24
|
==========================================================================
|
|
20
25
|
*/
|
|
@@ -28,6 +33,8 @@
|
|
|
28
33
|
--responsive-layout-topnav-gap-horizontal: 8px;
|
|
29
34
|
--responsive-layout-topnav-padding-horizontal: 16px;
|
|
30
35
|
--responsive-layout-topnav-padding-vertical: 6px;
|
|
36
|
+
--responsive-layout-touch-target-minimum-height: 36px;
|
|
37
|
+
--responsive-layout-touch-target-minimum-width: 36px;
|
|
31
38
|
}
|
|
32
39
|
|
|
33
40
|
@media (max-width: 1023px) {
|
|
@@ -39,6 +46,8 @@
|
|
|
39
46
|
--responsive-layout-sheetcontainer-padding-horizontal: 16px;
|
|
40
47
|
--responsive-layout-sheetcontainer-padding-top: 12px;
|
|
41
48
|
--responsive-layout-topnav-padding-horizontal: 14px;
|
|
49
|
+
--responsive-layout-touch-target-minimum-height: 44px;
|
|
50
|
+
--responsive-layout-touch-target-minimum-width: 44px;
|
|
42
51
|
}
|
|
43
52
|
}
|
|
44
53
|
|
|
@@ -51,5 +60,7 @@
|
|
|
51
60
|
--responsive-layout-sheetcontainer-padding-horizontal: 12px;
|
|
52
61
|
--responsive-layout-sheetcontainer-padding-top: 8px;
|
|
53
62
|
--responsive-layout-topnav-padding-horizontal: 6px;
|
|
63
|
+
--responsive-layout-touch-target-minimum-height: 44px;
|
|
64
|
+
--responsive-layout-touch-target-minimum-width: 44px;
|
|
54
65
|
}
|
|
55
66
|
}
|
package/dist/tokens.js
CHANGED
|
@@ -6254,6 +6254,28 @@ const tokens = {
|
|
|
6254
6254
|
"vertical"
|
|
6255
6255
|
]
|
|
6256
6256
|
},
|
|
6257
|
+
"responsive-layout-desktop-1440pt-touch-target-minimum-height": {
|
|
6258
|
+
"value": 36,
|
|
6259
|
+
"type": "number",
|
|
6260
|
+
"path": [
|
|
6261
|
+
"responsive-layout",
|
|
6262
|
+
"desktop-1440pt",
|
|
6263
|
+
"touch-target",
|
|
6264
|
+
"minimum",
|
|
6265
|
+
"height"
|
|
6266
|
+
]
|
|
6267
|
+
},
|
|
6268
|
+
"responsive-layout-desktop-1440pt-touch-target-minimum-width": {
|
|
6269
|
+
"value": 36,
|
|
6270
|
+
"type": "number",
|
|
6271
|
+
"path": [
|
|
6272
|
+
"responsive-layout",
|
|
6273
|
+
"desktop-1440pt",
|
|
6274
|
+
"touch-target",
|
|
6275
|
+
"minimum",
|
|
6276
|
+
"width"
|
|
6277
|
+
]
|
|
6278
|
+
},
|
|
6257
6279
|
"responsive-layout-tablet-798pt-sheet-corner-radius-cornerradius": {
|
|
6258
6280
|
"value": 24,
|
|
6259
6281
|
"type": "number",
|
|
@@ -6353,6 +6375,28 @@ const tokens = {
|
|
|
6353
6375
|
"vertical"
|
|
6354
6376
|
]
|
|
6355
6377
|
},
|
|
6378
|
+
"responsive-layout-tablet-798pt-touch-target-minimum-height": {
|
|
6379
|
+
"value": 44,
|
|
6380
|
+
"type": "number",
|
|
6381
|
+
"path": [
|
|
6382
|
+
"responsive-layout",
|
|
6383
|
+
"tablet-798pt",
|
|
6384
|
+
"touch-target",
|
|
6385
|
+
"minimum",
|
|
6386
|
+
"height"
|
|
6387
|
+
]
|
|
6388
|
+
},
|
|
6389
|
+
"responsive-layout-tablet-798pt-touch-target-minimum-width": {
|
|
6390
|
+
"value": 44,
|
|
6391
|
+
"type": "number",
|
|
6392
|
+
"path": [
|
|
6393
|
+
"responsive-layout",
|
|
6394
|
+
"tablet-798pt",
|
|
6395
|
+
"touch-target",
|
|
6396
|
+
"minimum",
|
|
6397
|
+
"width"
|
|
6398
|
+
]
|
|
6399
|
+
},
|
|
6356
6400
|
"responsive-layout-mobile-393pt-sheet-corner-radius-cornerradius": {
|
|
6357
6401
|
"value": 20,
|
|
6358
6402
|
"type": "number",
|
|
@@ -6452,6 +6496,28 @@ const tokens = {
|
|
|
6452
6496
|
"vertical"
|
|
6453
6497
|
]
|
|
6454
6498
|
},
|
|
6499
|
+
"responsive-layout-mobile-393pt-touch-target-minimum-height": {
|
|
6500
|
+
"value": 44,
|
|
6501
|
+
"type": "number",
|
|
6502
|
+
"path": [
|
|
6503
|
+
"responsive-layout",
|
|
6504
|
+
"mobile-393pt",
|
|
6505
|
+
"touch-target",
|
|
6506
|
+
"minimum",
|
|
6507
|
+
"height"
|
|
6508
|
+
]
|
|
6509
|
+
},
|
|
6510
|
+
"responsive-layout-mobile-393pt-touch-target-minimum-width": {
|
|
6511
|
+
"value": 44,
|
|
6512
|
+
"type": "number",
|
|
6513
|
+
"path": [
|
|
6514
|
+
"responsive-layout",
|
|
6515
|
+
"mobile-393pt",
|
|
6516
|
+
"touch-target",
|
|
6517
|
+
"minimum",
|
|
6518
|
+
"width"
|
|
6519
|
+
]
|
|
6520
|
+
},
|
|
6455
6521
|
"semantic-color-light-fill-action-disabled": {
|
|
6456
6522
|
"value": "#d8d3cd5c",
|
|
6457
6523
|
"type": "color",
|
package/dist/tokens.json
CHANGED
|
@@ -4656,6 +4656,18 @@
|
|
|
4656
4656
|
"$value": "{semantic-layout-units.padding.xxtight}"
|
|
4657
4657
|
}
|
|
4658
4658
|
}
|
|
4659
|
+
},
|
|
4660
|
+
"touch-target": {
|
|
4661
|
+
"minimum": {
|
|
4662
|
+
"height": {
|
|
4663
|
+
"$type": "number",
|
|
4664
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.desktop-only.height}"
|
|
4665
|
+
},
|
|
4666
|
+
"width": {
|
|
4667
|
+
"$type": "number",
|
|
4668
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.desktop-only.width}"
|
|
4669
|
+
}
|
|
4670
|
+
}
|
|
4659
4671
|
}
|
|
4660
4672
|
},
|
|
4661
4673
|
"tablet-798pt": {
|
|
@@ -4710,6 +4722,18 @@
|
|
|
4710
4722
|
"$value": "{semantic-layout-units.padding.xxtight}"
|
|
4711
4723
|
}
|
|
4712
4724
|
}
|
|
4725
|
+
},
|
|
4726
|
+
"touch-target": {
|
|
4727
|
+
"minimum": {
|
|
4728
|
+
"height": {
|
|
4729
|
+
"$type": "number",
|
|
4730
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.aa.height}"
|
|
4731
|
+
},
|
|
4732
|
+
"width": {
|
|
4733
|
+
"$type": "number",
|
|
4734
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.aa.width}"
|
|
4735
|
+
}
|
|
4736
|
+
}
|
|
4713
4737
|
}
|
|
4714
4738
|
},
|
|
4715
4739
|
"mobile-393pt": {
|
|
@@ -4764,6 +4788,18 @@
|
|
|
4764
4788
|
"$value": "{semantic-layout-units.padding.xxtight}"
|
|
4765
4789
|
}
|
|
4766
4790
|
}
|
|
4791
|
+
},
|
|
4792
|
+
"touch-target": {
|
|
4793
|
+
"minimum": {
|
|
4794
|
+
"height": {
|
|
4795
|
+
"$type": "number",
|
|
4796
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.aa.height}"
|
|
4797
|
+
},
|
|
4798
|
+
"width": {
|
|
4799
|
+
"$type": "number",
|
|
4800
|
+
"$value": "{semantic-layout-units.accessibility.touch-target.aa.width}"
|
|
4801
|
+
}
|
|
4802
|
+
}
|
|
4767
4803
|
}
|
|
4768
4804
|
}
|
|
4769
4805
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helloimjolopez-pathway/pathway-tokens",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.4.0",
|
|
4
4
|
"description": "Pathway Design System tokens, CSS custom properties, JS export, and DTCG JSON",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"check-token-refs": "node scripts/check-token-refs.js",
|
|
78
78
|
"check-token-names": "node scripts/check-token-names.js",
|
|
79
79
|
"check-tokens": "node scripts/check-demo-tokens.js && node scripts/check-token-refs.js && node scripts/check-token-names.js && node scripts/check-token-object-refs.js && node scripts/check-story-yield.js && node scripts/fix-stale-doc-hex.js --check && node scripts/check-motion-coverage.js && node scripts/build-component-index.js --check && node scripts/check-spec-stories.js && node scripts/check-code-connect.js && node scripts/check-component-tables.js && node scripts/check-alpha-names.js && node scripts/check-token-descriptions.js && node scripts/check-distribution.js",
|
|
80
|
-
"build-elements": "esbuild components/sidenav/pathway-sidenav.js --bundle --format=esm --minify --loader:.jsx=jsx --jsx=automatic --define:process.env.NODE_ENV='\"production\"' --outfile=dist/pathway-sidenav.js",
|
|
80
|
+
"build-elements": "esbuild components/sidenav/pathway-sidenav.js --bundle --format=esm --minify --loader:.jsx=jsx --jsx=automatic --define:process.env.NODE_ENV='\"production\"' --outfile=dist/pathway-sidenav.js && esbuild components/pathway-components.js --bundle --format=esm --minify --loader:.jsx=jsx --jsx=automatic --define:process.env.NODE_ENV='\"production\"' --outfile=dist/pathway-components.js",
|
|
81
81
|
"check-story-yield": "node scripts/check-story-yield.js",
|
|
82
82
|
"stamp-headers": "node scripts/stamp-headers.js",
|
|
83
83
|
"check-headers": "node scripts/stamp-headers.js --check",
|
|
@@ -110,7 +110,8 @@
|
|
|
110
110
|
"check-contrast-focus": "node scripts/check-contrast-focus.js",
|
|
111
111
|
"check-spec-structure": "node scripts/check-spec-structure.js",
|
|
112
112
|
"check-type-floor": "node scripts/check-type-floor.js",
|
|
113
|
-
"check-distribution": "node scripts/check-distribution.js"
|
|
113
|
+
"check-distribution": "node scripts/check-distribution.js",
|
|
114
|
+
"build-components": "esbuild components/pathway-components.js --bundle --format=esm --minify --loader:.jsx=jsx --jsx=automatic --define:process.env.NODE_ENV='\"production\"' --outfile=dist/pathway-components.js"
|
|
114
115
|
},
|
|
115
116
|
"devDependencies": {
|
|
116
117
|
"@babel/preset-env": "^7.29.2",
|