@primer/primitives 11.4.0-rc.f798df25 → 11.4.1-rc.4e2d1de5

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 (198) hide show
  1. package/DESIGN_TOKENS_GUIDE.md +185 -0
  2. package/DESIGN_TOKENS_SPEC.md +565 -0
  3. package/dist/build/filters/hasLlmExtensions.d.ts +7 -0
  4. package/dist/build/filters/hasLlmExtensions.js +11 -0
  5. package/dist/build/filters/index.d.ts +1 -0
  6. package/dist/build/filters/index.js +1 -0
  7. package/dist/build/formats/index.d.ts +1 -0
  8. package/dist/build/formats/index.js +1 -0
  9. package/dist/build/formats/markdownLlmGuidelines.d.ts +11 -0
  10. package/dist/build/formats/markdownLlmGuidelines.js +1168 -0
  11. package/dist/build/platforms/index.d.ts +1 -0
  12. package/dist/build/platforms/index.js +1 -0
  13. package/dist/build/platforms/llmGuidelines.d.ts +2 -0
  14. package/dist/build/platforms/llmGuidelines.js +17 -0
  15. package/dist/build/preprocessors/inheritGroupProperties.d.ts +7 -0
  16. package/dist/build/preprocessors/inheritGroupProperties.js +70 -0
  17. package/dist/build/primerStyleDictionary.js +7 -1
  18. package/dist/build/schemas/borderToken.d.ts +22 -2
  19. package/dist/build/schemas/borderToken.js +6 -0
  20. package/dist/build/schemas/colorToken.d.ts +4 -0
  21. package/dist/build/schemas/colorToken.js +2 -0
  22. package/dist/build/schemas/cubicBezierToken.d.ts +6 -0
  23. package/dist/build/schemas/cubicBezierToken.js +10 -2
  24. package/dist/build/schemas/designToken.d.ts +1 -1
  25. package/dist/build/schemas/designToken.js +113 -21
  26. package/dist/build/schemas/dimensionToken.d.ts +14 -3
  27. package/dist/build/schemas/dimensionToken.js +6 -2
  28. package/dist/build/schemas/dimensionValue.d.ts +24 -1
  29. package/dist/build/schemas/dimensionValue.js +20 -1
  30. package/dist/build/schemas/durationToken.d.ts +13 -1
  31. package/dist/build/schemas/durationToken.js +6 -0
  32. package/dist/build/schemas/durationValue.d.ts +11 -1
  33. package/dist/build/schemas/durationValue.js +13 -3
  34. package/dist/build/schemas/fontFamilyToken.d.ts +4 -0
  35. package/dist/build/schemas/fontFamilyToken.js +2 -0
  36. package/dist/build/schemas/fontWeightToken.d.ts +4 -0
  37. package/dist/build/schemas/fontWeightToken.js +2 -0
  38. package/dist/build/schemas/gradientToken.d.ts +4 -0
  39. package/dist/build/schemas/gradientToken.js +2 -0
  40. package/dist/build/schemas/llmExtension.d.ts +9 -0
  41. package/dist/build/schemas/llmExtension.js +11 -0
  42. package/dist/build/schemas/numberToken.d.ts +4 -0
  43. package/dist/build/schemas/numberToken.js +2 -0
  44. package/dist/build/schemas/shadowToken.d.ts +676 -84
  45. package/dist/build/schemas/shadowToken.js +2 -0
  46. package/dist/build/schemas/stringToken.d.ts +6 -0
  47. package/dist/build/schemas/stringToken.js +6 -0
  48. package/dist/build/schemas/transitionToken.d.ts +20 -2
  49. package/dist/build/schemas/transitionToken.js +6 -0
  50. package/dist/build/schemas/typographyToken.d.ts +38 -4
  51. package/dist/build/schemas/typographyToken.js +6 -0
  52. package/dist/build/schemas/validTokenType.d.ts +5 -1
  53. package/dist/build/schemas/validTokenType.js +71 -17
  54. package/dist/build/schemas/viewportRangeToken.d.ts +6 -0
  55. package/dist/build/schemas/viewportRangeToken.js +6 -0
  56. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
  57. package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
  58. package/dist/build/transformers/dimensionToRem.d.ts +2 -1
  59. package/dist/build/transformers/dimensionToRem.js +21 -22
  60. package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
  61. package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
  62. package/dist/build/transformers/durationToCss.d.ts +2 -1
  63. package/dist/build/transformers/durationToCss.js +18 -11
  64. package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
  65. package/dist/build/transformers/utilities/parseDimension.js +31 -0
  66. package/dist/build/types/dimensionTokenValue.d.ts +9 -0
  67. package/dist/css/base/motion/motion.css +5 -4
  68. package/dist/css/functional/size/border.css +9 -14
  69. package/dist/css/functional/size/radius.css +7 -0
  70. package/dist/css/functional/size/size-coarse.css +3 -3
  71. package/dist/css/functional/size/size-fine.css +3 -3
  72. package/dist/css/functional/size/viewport.css +1 -1
  73. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +194 -190
  74. package/dist/css/functional/themes/dark-colorblind.css +194 -190
  75. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +194 -190
  76. package/dist/css/functional/themes/dark-dimmed.css +194 -190
  77. package/dist/css/functional/themes/dark-high-contrast.css +194 -190
  78. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +194 -190
  79. package/dist/css/functional/themes/dark-tritanopia.css +194 -190
  80. package/dist/css/functional/themes/dark.css +194 -190
  81. package/dist/css/functional/themes/light-colorblind-high-contrast.css +194 -190
  82. package/dist/css/functional/themes/light-colorblind.css +194 -190
  83. package/dist/css/functional/themes/light-high-contrast.css +194 -190
  84. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +194 -190
  85. package/dist/css/functional/themes/light-tritanopia.css +194 -190
  86. package/dist/css/functional/themes/light.css +194 -190
  87. package/dist/css/functional/typography/typography.css +4 -4
  88. package/dist/css/primitives.css +5 -0
  89. package/dist/docs/base/motion/motion.json +181 -32
  90. package/dist/docs/base/size/size.json +76 -19
  91. package/dist/docs/base/typography/typography.json +24 -6
  92. package/dist/docs/functional/size/border.json +62 -182
  93. package/dist/docs/functional/size/breakpoints.json +24 -6
  94. package/dist/docs/functional/size/radius.json +221 -0
  95. package/dist/docs/functional/size/size-coarse.json +45 -3
  96. package/dist/docs/functional/size/size-fine.json +45 -3
  97. package/dist/docs/functional/size/size.json +60 -15
  98. package/dist/docs/functional/size/viewport.json +2 -2
  99. package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +1043 -97
  100. package/dist/docs/functional/themes/dark-colorblind.json +1043 -97
  101. package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +1043 -97
  102. package/dist/docs/functional/themes/dark-dimmed.json +1081 -135
  103. package/dist/docs/functional/themes/dark-high-contrast.json +1043 -97
  104. package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +1043 -97
  105. package/dist/docs/functional/themes/dark-tritanopia.json +1043 -97
  106. package/dist/docs/functional/themes/dark.json +1043 -97
  107. package/dist/docs/functional/themes/light-colorblind-high-contrast.json +1049 -103
  108. package/dist/docs/functional/themes/light-colorblind.json +1049 -103
  109. package/dist/docs/functional/themes/light-high-contrast.json +1049 -103
  110. package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +1049 -103
  111. package/dist/docs/functional/themes/light-tritanopia.json +1049 -103
  112. package/dist/docs/functional/themes/light.json +1049 -103
  113. package/dist/docs/functional/typography/typography.json +180 -10
  114. package/dist/fallbacks/base/motion/motion.json +49 -12
  115. package/dist/fallbacks/functional/size/border.json +0 -5
  116. package/dist/fallbacks/functional/size/radius.json +7 -0
  117. package/dist/fallbacks/functional/size/viewport.json +1 -1
  118. package/dist/figma/dimension/dimension.json +30 -20
  119. package/dist/figma/themes/dark-colorblind.json +85 -0
  120. package/dist/figma/themes/dark-dimmed.json +134 -49
  121. package/dist/figma/themes/dark-high-contrast.json +85 -0
  122. package/dist/figma/themes/dark-tritanopia.json +85 -0
  123. package/dist/figma/themes/dark.json +85 -0
  124. package/dist/figma/themes/light-colorblind.json +89 -4
  125. package/dist/figma/themes/light-high-contrast.json +89 -4
  126. package/dist/figma/themes/light-tritanopia.json +89 -4
  127. package/dist/figma/themes/light.json +89 -4
  128. package/dist/figma/typography/typography.json +44 -40
  129. package/dist/internalCss/dark-colorblind-high-contrast.css +208 -218
  130. package/dist/internalCss/dark-colorblind.css +208 -218
  131. package/dist/internalCss/dark-dimmed-high-contrast.css +208 -218
  132. package/dist/internalCss/dark-dimmed.css +208 -218
  133. package/dist/internalCss/dark-high-contrast.css +208 -218
  134. package/dist/internalCss/dark-tritanopia-high-contrast.css +208 -218
  135. package/dist/internalCss/dark-tritanopia.css +208 -218
  136. package/dist/internalCss/dark.css +208 -218
  137. package/dist/internalCss/light-colorblind-high-contrast.css +208 -218
  138. package/dist/internalCss/light-colorblind.css +208 -218
  139. package/dist/internalCss/light-high-contrast.css +208 -218
  140. package/dist/internalCss/light-tritanopia-high-contrast.css +208 -218
  141. package/dist/internalCss/light-tritanopia.css +208 -218
  142. package/dist/internalCss/light.css +208 -218
  143. package/dist/styleLint/base/motion/motion.json +181 -32
  144. package/dist/styleLint/base/size/size.json +76 -19
  145. package/dist/styleLint/base/typography/typography.json +30 -12
  146. package/dist/styleLint/functional/size/border.json +55 -175
  147. package/dist/styleLint/functional/size/breakpoints.json +24 -6
  148. package/dist/styleLint/functional/size/radius.json +221 -0
  149. package/dist/styleLint/functional/size/size-coarse.json +45 -3
  150. package/dist/styleLint/functional/size/size-fine.json +45 -3
  151. package/dist/styleLint/functional/size/size.json +111 -66
  152. package/dist/styleLint/functional/size/viewport.json +2 -2
  153. package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +975 -29
  154. package/dist/styleLint/functional/themes/dark-colorblind.json +975 -29
  155. package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +975 -29
  156. package/dist/styleLint/functional/themes/dark-dimmed.json +1013 -67
  157. package/dist/styleLint/functional/themes/dark-high-contrast.json +975 -29
  158. package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +975 -29
  159. package/dist/styleLint/functional/themes/dark-tritanopia.json +975 -29
  160. package/dist/styleLint/functional/themes/dark.json +975 -29
  161. package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +981 -35
  162. package/dist/styleLint/functional/themes/light-colorblind.json +981 -35
  163. package/dist/styleLint/functional/themes/light-high-contrast.json +981 -35
  164. package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +981 -35
  165. package/dist/styleLint/functional/themes/light-tritanopia.json +981 -35
  166. package/dist/styleLint/functional/themes/light.json +981 -35
  167. package/dist/styleLint/functional/typography/typography.json +196 -26
  168. package/package.json +6 -3
  169. package/src/tokens/base/motion/easing.json5 +39 -4
  170. package/src/tokens/base/motion/timing.json5 +12 -12
  171. package/src/tokens/base/size/size.json5 +19 -19
  172. package/src/tokens/base/typography/typography.json5 +6 -6
  173. package/src/tokens/functional/border/border.json5 +25 -0
  174. package/src/tokens/functional/color/bgColor.json5 +165 -0
  175. package/src/tokens/functional/color/borderColor.json5 +146 -0
  176. package/src/tokens/functional/color/control.json5 +24 -0
  177. package/src/tokens/functional/color/data-vis.json5 +7 -0
  178. package/src/tokens/functional/color/display.json5 +7 -0
  179. package/src/tokens/functional/color/fgColor.json5 +101 -1
  180. package/src/tokens/functional/color/focus.json5 +5 -0
  181. package/src/tokens/functional/color/selection.json5 +5 -0
  182. package/src/tokens/functional/color/syntax.json5 +14 -0
  183. package/src/tokens/functional/shadow/shadow.json5 +49 -4
  184. package/src/tokens/functional/size/border.json5 +22 -74
  185. package/src/tokens/functional/size/breakpoints.json5 +6 -6
  186. package/src/tokens/functional/size/radius.json5 +90 -0
  187. package/src/tokens/functional/size/size-coarse.json5 +24 -3
  188. package/src/tokens/functional/size/size-fine.json5 +45 -24
  189. package/src/tokens/functional/size/size.json5 +50 -15
  190. package/src/tokens/functional/size/viewport.json5 +1 -1
  191. package/src/tokens/functional/typography/font-stack.json5 +60 -0
  192. package/src/tokens/functional/typography/typography.json5 +71 -44
  193. package/dist/build/parsers/index.d.ts +0 -1
  194. package/dist/build/parsers/index.js +0 -1
  195. package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
  196. package/dist/build/parsers/w3cJsonParser.js +0 -25
  197. package/dist/removed/testing.json5 +0 -4
  198. package/src/tokens/removed/testing.json5 +0 -4
@@ -4,14 +4,20 @@
4
4
  "filePath": "src/tokens/base/motion/timing.json5",
5
5
  "isSource": true,
6
6
  "original": {
7
- "$value": "0ms",
7
+ "$value": {
8
+ "value": 0,
9
+ "unit": "ms"
10
+ },
8
11
  "$type": "duration",
9
12
  "key": "{base.duration.0}"
10
13
  },
11
14
  "name": "base-duration-0",
12
15
  "attributes": {},
13
16
  "path": ["base", "duration", "0"],
14
- "value": "0ms",
17
+ "value": {
18
+ "value": 0,
19
+ "unit": "ms"
20
+ },
15
21
  "type": "duration"
16
22
  },
17
23
  "base-duration-100": {
@@ -19,14 +25,20 @@
19
25
  "filePath": "src/tokens/base/motion/timing.json5",
20
26
  "isSource": true,
21
27
  "original": {
22
- "$value": "100ms",
28
+ "$value": {
29
+ "value": 100,
30
+ "unit": "ms"
31
+ },
23
32
  "$type": "duration",
24
33
  "key": "{base.duration.100}"
25
34
  },
26
35
  "name": "base-duration-100",
27
36
  "attributes": {},
28
37
  "path": ["base", "duration", "100"],
29
- "value": "100ms",
38
+ "value": {
39
+ "value": 100,
40
+ "unit": "ms"
41
+ },
30
42
  "type": "duration"
31
43
  },
32
44
  "base-duration-1000": {
@@ -34,14 +46,20 @@
34
46
  "filePath": "src/tokens/base/motion/timing.json5",
35
47
  "isSource": true,
36
48
  "original": {
37
- "$value": "1000ms",
49
+ "$value": {
50
+ "value": 1000,
51
+ "unit": "ms"
52
+ },
38
53
  "$type": "duration",
39
54
  "key": "{base.duration.1000}"
40
55
  },
41
56
  "name": "base-duration-1000",
42
57
  "attributes": {},
43
58
  "path": ["base", "duration", "1000"],
44
- "value": "1000ms",
59
+ "value": {
60
+ "value": 1000,
61
+ "unit": "ms"
62
+ },
45
63
  "type": "duration"
46
64
  },
47
65
  "base-duration-200": {
@@ -49,14 +67,20 @@
49
67
  "filePath": "src/tokens/base/motion/timing.json5",
50
68
  "isSource": true,
51
69
  "original": {
52
- "$value": "200ms",
70
+ "$value": {
71
+ "value": 200,
72
+ "unit": "ms"
73
+ },
53
74
  "$type": "duration",
54
75
  "key": "{base.duration.200}"
55
76
  },
56
77
  "name": "base-duration-200",
57
78
  "attributes": {},
58
79
  "path": ["base", "duration", "200"],
59
- "value": "200ms",
80
+ "value": {
81
+ "value": 200,
82
+ "unit": "ms"
83
+ },
60
84
  "type": "duration"
61
85
  },
62
86
  "base-duration-300": {
@@ -64,14 +88,20 @@
64
88
  "filePath": "src/tokens/base/motion/timing.json5",
65
89
  "isSource": true,
66
90
  "original": {
67
- "$value": "300ms",
91
+ "$value": {
92
+ "value": 300,
93
+ "unit": "ms"
94
+ },
68
95
  "$type": "duration",
69
96
  "key": "{base.duration.300}"
70
97
  },
71
98
  "name": "base-duration-300",
72
99
  "attributes": {},
73
100
  "path": ["base", "duration", "300"],
74
- "value": "300ms",
101
+ "value": {
102
+ "value": 300,
103
+ "unit": "ms"
104
+ },
75
105
  "type": "duration"
76
106
  },
77
107
  "base-duration-400": {
@@ -79,14 +109,20 @@
79
109
  "filePath": "src/tokens/base/motion/timing.json5",
80
110
  "isSource": true,
81
111
  "original": {
82
- "$value": "400ms",
112
+ "$value": {
113
+ "value": 400,
114
+ "unit": "ms"
115
+ },
83
116
  "$type": "duration",
84
117
  "key": "{base.duration.400}"
85
118
  },
86
119
  "name": "base-duration-400",
87
120
  "attributes": {},
88
121
  "path": ["base", "duration", "400"],
89
- "value": "400ms",
122
+ "value": {
123
+ "value": 400,
124
+ "unit": "ms"
125
+ },
90
126
  "type": "duration"
91
127
  },
92
128
  "base-duration-50": {
@@ -94,14 +130,20 @@
94
130
  "filePath": "src/tokens/base/motion/timing.json5",
95
131
  "isSource": true,
96
132
  "original": {
97
- "$value": "50ms",
133
+ "$value": {
134
+ "value": 50,
135
+ "unit": "ms"
136
+ },
98
137
  "$type": "duration",
99
138
  "key": "{base.duration.50}"
100
139
  },
101
140
  "name": "base-duration-50",
102
141
  "attributes": {},
103
142
  "path": ["base", "duration", "50"],
104
- "value": "50ms",
143
+ "value": {
144
+ "value": 50,
145
+ "unit": "ms"
146
+ },
105
147
  "type": "duration"
106
148
  },
107
149
  "base-duration-500": {
@@ -109,14 +151,20 @@
109
151
  "filePath": "src/tokens/base/motion/timing.json5",
110
152
  "isSource": true,
111
153
  "original": {
112
- "$value": "500ms",
154
+ "$value": {
155
+ "value": 500,
156
+ "unit": "ms"
157
+ },
113
158
  "$type": "duration",
114
159
  "key": "{base.duration.500}"
115
160
  },
116
161
  "name": "base-duration-500",
117
162
  "attributes": {},
118
163
  "path": ["base", "duration", "500"],
119
- "value": "500ms",
164
+ "value": {
165
+ "value": 500,
166
+ "unit": "ms"
167
+ },
120
168
  "type": "duration"
121
169
  },
122
170
  "base-duration-600": {
@@ -124,14 +172,20 @@
124
172
  "filePath": "src/tokens/base/motion/timing.json5",
125
173
  "isSource": true,
126
174
  "original": {
127
- "$value": "600ms",
175
+ "$value": {
176
+ "value": 600,
177
+ "unit": "ms"
178
+ },
128
179
  "$type": "duration",
129
180
  "key": "{base.duration.600}"
130
181
  },
131
182
  "name": "base-duration-600",
132
183
  "attributes": {},
133
184
  "path": ["base", "duration", "600"],
134
- "value": "600ms",
185
+ "value": {
186
+ "value": 600,
187
+ "unit": "ms"
188
+ },
135
189
  "type": "duration"
136
190
  },
137
191
  "base-duration-700": {
@@ -139,14 +193,20 @@
139
193
  "filePath": "src/tokens/base/motion/timing.json5",
140
194
  "isSource": true,
141
195
  "original": {
142
- "$value": "700ms",
196
+ "$value": {
197
+ "value": 700,
198
+ "unit": "ms"
199
+ },
143
200
  "$type": "duration",
144
201
  "key": "{base.duration.700}"
145
202
  },
146
203
  "name": "base-duration-700",
147
204
  "attributes": {},
148
205
  "path": ["base", "duration", "700"],
149
- "value": "700ms",
206
+ "value": {
207
+ "value": 700,
208
+ "unit": "ms"
209
+ },
150
210
  "type": "duration"
151
211
  },
152
212
  "base-duration-800": {
@@ -154,14 +214,20 @@
154
214
  "filePath": "src/tokens/base/motion/timing.json5",
155
215
  "isSource": true,
156
216
  "original": {
157
- "$value": "800ms",
217
+ "$value": {
218
+ "value": 800,
219
+ "unit": "ms"
220
+ },
158
221
  "$type": "duration",
159
222
  "key": "{base.duration.800}"
160
223
  },
161
224
  "name": "base-duration-800",
162
225
  "attributes": {},
163
226
  "path": ["base", "duration", "800"],
164
- "value": "800ms",
227
+ "value": {
228
+ "value": 800,
229
+ "unit": "ms"
230
+ },
165
231
  "type": "duration"
166
232
  },
167
233
  "base-duration-900": {
@@ -169,24 +235,71 @@
169
235
  "filePath": "src/tokens/base/motion/timing.json5",
170
236
  "isSource": true,
171
237
  "original": {
172
- "$value": "900ms",
238
+ "$value": {
239
+ "value": 900,
240
+ "unit": "ms"
241
+ },
173
242
  "$type": "duration",
174
243
  "key": "{base.duration.900}"
175
244
  },
176
245
  "name": "base-duration-900",
177
246
  "attributes": {},
178
247
  "path": ["base", "duration", "900"],
179
- "value": "900ms",
248
+ "value": {
249
+ "value": 900,
250
+ "unit": "ms"
251
+ },
180
252
  "type": "duration"
181
253
  },
254
+ "base-easing-ease": {
255
+ "key": "{base.easing.ease}",
256
+ "$extensions": {
257
+ "org.primer.llm": {
258
+ "usage": ["hover-state", "micro-interaction", "button-hover", "link-hover"],
259
+ "rules": "Use for hover state changes."
260
+ }
261
+ },
262
+ "filePath": "src/tokens/base/motion/easing.json5",
263
+ "isSource": true,
264
+ "original": {
265
+ "$value": [0.25, 0.1, 0.25, 1],
266
+ "$type": "cubicBezier",
267
+ "$description": "CSS default easing. Use for hover state changes and micro-interactions.",
268
+ "$extensions": {
269
+ "org.primer.llm": {
270
+ "usage": ["hover-state", "micro-interaction", "button-hover", "link-hover"],
271
+ "rules": "Use for hover state changes."
272
+ }
273
+ },
274
+ "key": "{base.easing.ease}"
275
+ },
276
+ "name": "base-easing-ease",
277
+ "attributes": {},
278
+ "path": ["base", "easing", "ease"],
279
+ "value": [0.25, 0.1, 0.25, 1],
280
+ "type": "cubicBezier",
281
+ "description": "CSS default easing. Use for hover state changes and micro-interactions."
282
+ },
182
283
  "base-easing-easeIn": {
183
284
  "key": "{base.easing.easeIn}",
285
+ "$extensions": {
286
+ "org.primer.llm": {
287
+ "usage": ["exit-animation", "element-leaving", "off-screen-motion"],
288
+ "rules": "Rarely used alone. Prefer ease-out for most exit animations."
289
+ }
290
+ },
184
291
  "filePath": "src/tokens/base/motion/easing.json5",
185
292
  "isSource": true,
186
293
  "original": {
187
294
  "$value": [0.7, 0.1, 0.75, 0.9],
188
295
  "$type": "cubicBezier",
189
- "$description": "Ideal for movement that starts on the page and ends off the page.",
296
+ "$description": "Accelerating motion. Use for elements exiting the viewport (moving off-screen).",
297
+ "$extensions": {
298
+ "org.primer.llm": {
299
+ "usage": ["exit-animation", "element-leaving", "off-screen-motion"],
300
+ "rules": "Rarely used alone. Prefer ease-out for most exit animations."
301
+ }
302
+ },
190
303
  "key": "{base.easing.easeIn}"
191
304
  },
192
305
  "name": "base-easing-easeIn",
@@ -194,16 +307,28 @@
194
307
  "path": ["base", "easing", "easeIn"],
195
308
  "value": [0.7, 0.1, 0.75, 0.9],
196
309
  "type": "cubicBezier",
197
- "description": "Ideal for movement that starts on the page and ends off the page."
310
+ "description": "Accelerating motion. Use for elements exiting the viewport (moving off-screen)."
198
311
  },
199
312
  "base-easing-easeInOut": {
200
313
  "key": "{base.easing.easeInOut}",
314
+ "$extensions": {
315
+ "org.primer.llm": {
316
+ "usage": ["position-change", "size-change", "morph-animation", "expand-collapse", "slide-transition"],
317
+ "rules": "Use if an element moves or morphs on screen."
318
+ }
319
+ },
201
320
  "filePath": "src/tokens/base/motion/easing.json5",
202
321
  "isSource": true,
203
322
  "original": {
204
323
  "$value": [0.6, 0, 0.2, 1],
205
324
  "$type": "cubicBezier",
206
- "$description": "Ideal for movement that starts and ends on the page.",
325
+ "$description": "Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport.",
326
+ "$extensions": {
327
+ "org.primer.llm": {
328
+ "usage": ["position-change", "size-change", "morph-animation", "expand-collapse", "slide-transition"],
329
+ "rules": "Use if an element moves or morphs on screen."
330
+ }
331
+ },
207
332
  "key": "{base.easing.easeInOut}"
208
333
  },
209
334
  "name": "base-easing-easeInOut",
@@ -211,16 +336,28 @@
211
336
  "path": ["base", "easing", "easeInOut"],
212
337
  "value": [0.6, 0, 0.2, 1],
213
338
  "type": "cubicBezier",
214
- "description": "Ideal for movement that starts and ends on the page."
339
+ "description": "Smooth acceleration and deceleration. Use for elements moving or morphing within the viewport."
215
340
  },
216
341
  "base-easing-easeOut": {
217
342
  "key": "{base.easing.easeOut}",
343
+ "$extensions": {
344
+ "org.primer.llm": {
345
+ "usage": ["enter-animation", "element-appearing", "modal-open", "dropdown-open", "tooltip-appear"],
346
+ "rules": "RECOMMENDED default. Use if an element enters or exits the viewport."
347
+ }
348
+ },
218
349
  "filePath": "src/tokens/base/motion/easing.json5",
219
350
  "isSource": true,
220
351
  "original": {
221
352
  "$value": [0.3, 0.8, 0.6, 1],
222
353
  "$type": "cubicBezier",
223
- "$description": "Ideal for movement that starts off the page and ends on the page.",
354
+ "$description": "Decelerating motion. Use for elements entering the viewport or appearing on screen.",
355
+ "$extensions": {
356
+ "org.primer.llm": {
357
+ "usage": ["enter-animation", "element-appearing", "modal-open", "dropdown-open", "tooltip-appear"],
358
+ "rules": "RECOMMENDED default. Use if an element enters or exits the viewport."
359
+ }
360
+ },
224
361
  "key": "{base.easing.easeOut}"
225
362
  },
226
363
  "name": "base-easing-easeOut",
@@ -228,16 +365,28 @@
228
365
  "path": ["base", "easing", "easeOut"],
229
366
  "value": [0.3, 0.8, 0.6, 1],
230
367
  "type": "cubicBezier",
231
- "description": "Ideal for movement that starts off the page and ends on the page."
368
+ "description": "Decelerating motion. Use for elements entering the viewport or appearing on screen."
232
369
  },
233
370
  "base-easing-linear": {
234
371
  "key": "{base.easing.linear}",
372
+ "$extensions": {
373
+ "org.primer.llm": {
374
+ "usage": ["progress-bar", "loader", "continuous-animation", "scrolling"],
375
+ "rules": "Use if the motion is constant."
376
+ }
377
+ },
235
378
  "filePath": "src/tokens/base/motion/easing.json5",
236
379
  "isSource": true,
237
380
  "original": {
238
381
  "$value": [0, 0, 1, 1],
239
382
  "$type": "cubicBezier",
240
- "$description": "Ideal for non-movement properties, like opacity or background color.",
383
+ "$description": "Constant motion with no acceleration. Use for continuous animations like progress bars or loaders.",
384
+ "$extensions": {
385
+ "org.primer.llm": {
386
+ "usage": ["progress-bar", "loader", "continuous-animation", "scrolling"],
387
+ "rules": "Use if the motion is constant."
388
+ }
389
+ },
241
390
  "key": "{base.easing.linear}"
242
391
  },
243
392
  "name": "base-easing-linear",
@@ -245,6 +394,6 @@
245
394
  "path": ["base", "easing", "linear"],
246
395
  "value": [0, 0, 1, 1],
247
396
  "type": "cubicBezier",
248
- "description": "Ideal for non-movement properties, like opacity or background color."
397
+ "description": "Constant motion with no acceleration. Use for continuous animations like progress bars or loaders."
249
398
  }
250
399
  }
@@ -10,7 +10,10 @@
10
10
  "filePath": "src/tokens/base/size/size.json5",
11
11
  "isSource": true,
12
12
  "original": {
13
- "$value": "112px",
13
+ "$value": {
14
+ "value": 112,
15
+ "unit": "px"
16
+ },
14
17
  "$type": "dimension",
15
18
  "$extensions": {
16
19
  "org.primer.figma": {
@@ -37,7 +40,10 @@
37
40
  "filePath": "src/tokens/base/size/size.json5",
38
41
  "isSource": true,
39
42
  "original": {
40
- "$value": "12px",
43
+ "$value": {
44
+ "value": 12,
45
+ "unit": "px"
46
+ },
41
47
  "$type": "dimension",
42
48
  "$extensions": {
43
49
  "org.primer.figma": {
@@ -64,7 +70,10 @@
64
70
  "filePath": "src/tokens/base/size/size.json5",
65
71
  "isSource": true,
66
72
  "original": {
67
- "$value": "128px",
73
+ "$value": {
74
+ "value": 128,
75
+ "unit": "px"
76
+ },
68
77
  "$type": "dimension",
69
78
  "$extensions": {
70
79
  "org.primer.figma": {
@@ -91,7 +100,10 @@
91
100
  "filePath": "src/tokens/base/size/size.json5",
92
101
  "isSource": true,
93
102
  "original": {
94
- "$value": "16px",
103
+ "$value": {
104
+ "value": 16,
105
+ "unit": "px"
106
+ },
95
107
  "$type": "dimension",
96
108
  "$extensions": {
97
109
  "org.primer.figma": {
@@ -118,7 +130,10 @@
118
130
  "filePath": "src/tokens/base/size/size.json5",
119
131
  "isSource": true,
120
132
  "original": {
121
- "$value": "2px",
133
+ "$value": {
134
+ "value": 2,
135
+ "unit": "px"
136
+ },
122
137
  "$type": "dimension",
123
138
  "$extensions": {
124
139
  "org.primer.figma": {
@@ -145,7 +160,10 @@
145
160
  "filePath": "src/tokens/base/size/size.json5",
146
161
  "isSource": true,
147
162
  "original": {
148
- "$value": "20px",
163
+ "$value": {
164
+ "value": 20,
165
+ "unit": "px"
166
+ },
149
167
  "$type": "dimension",
150
168
  "$extensions": {
151
169
  "org.primer.figma": {
@@ -172,7 +190,10 @@
172
190
  "filePath": "src/tokens/base/size/size.json5",
173
191
  "isSource": true,
174
192
  "original": {
175
- "$value": "24px",
193
+ "$value": {
194
+ "value": 24,
195
+ "unit": "px"
196
+ },
176
197
  "$type": "dimension",
177
198
  "$extensions": {
178
199
  "org.primer.figma": {
@@ -199,7 +220,10 @@
199
220
  "filePath": "src/tokens/base/size/size.json5",
200
221
  "isSource": true,
201
222
  "original": {
202
- "$value": "28px",
223
+ "$value": {
224
+ "value": 28,
225
+ "unit": "px"
226
+ },
203
227
  "$type": "dimension",
204
228
  "$extensions": {
205
229
  "org.primer.figma": {
@@ -226,7 +250,10 @@
226
250
  "filePath": "src/tokens/base/size/size.json5",
227
251
  "isSource": true,
228
252
  "original": {
229
- "$value": "32px",
253
+ "$value": {
254
+ "value": 32,
255
+ "unit": "px"
256
+ },
230
257
  "$type": "dimension",
231
258
  "$extensions": {
232
259
  "org.primer.figma": {
@@ -253,7 +280,10 @@
253
280
  "filePath": "src/tokens/base/size/size.json5",
254
281
  "isSource": true,
255
282
  "original": {
256
- "$value": "36px",
283
+ "$value": {
284
+ "value": 36,
285
+ "unit": "px"
286
+ },
257
287
  "$type": "dimension",
258
288
  "$extensions": {
259
289
  "org.primer.figma": {
@@ -280,7 +310,10 @@
280
310
  "filePath": "src/tokens/base/size/size.json5",
281
311
  "isSource": true,
282
312
  "original": {
283
- "$value": "4px",
313
+ "$value": {
314
+ "value": 4,
315
+ "unit": "px"
316
+ },
284
317
  "$type": "dimension",
285
318
  "$extensions": {
286
319
  "org.primer.figma": {
@@ -307,7 +340,10 @@
307
340
  "filePath": "src/tokens/base/size/size.json5",
308
341
  "isSource": true,
309
342
  "original": {
310
- "$value": "40px",
343
+ "$value": {
344
+ "value": 40,
345
+ "unit": "px"
346
+ },
311
347
  "$type": "dimension",
312
348
  "$extensions": {
313
349
  "org.primer.figma": {
@@ -334,7 +370,10 @@
334
370
  "filePath": "src/tokens/base/size/size.json5",
335
371
  "isSource": true,
336
372
  "original": {
337
- "$value": "44px",
373
+ "$value": {
374
+ "value": 44,
375
+ "unit": "px"
376
+ },
338
377
  "$type": "dimension",
339
378
  "$extensions": {
340
379
  "org.primer.figma": {
@@ -361,7 +400,10 @@
361
400
  "filePath": "src/tokens/base/size/size.json5",
362
401
  "isSource": true,
363
402
  "original": {
364
- "$value": "48px",
403
+ "$value": {
404
+ "value": 48,
405
+ "unit": "px"
406
+ },
365
407
  "$type": "dimension",
366
408
  "$extensions": {
367
409
  "org.primer.figma": {
@@ -388,7 +430,10 @@
388
430
  "filePath": "src/tokens/base/size/size.json5",
389
431
  "isSource": true,
390
432
  "original": {
391
- "$value": "6px",
433
+ "$value": {
434
+ "value": 6,
435
+ "unit": "px"
436
+ },
392
437
  "$type": "dimension",
393
438
  "$extensions": {
394
439
  "org.primer.figma": {
@@ -415,7 +460,10 @@
415
460
  "filePath": "src/tokens/base/size/size.json5",
416
461
  "isSource": true,
417
462
  "original": {
418
- "$value": "64px",
463
+ "$value": {
464
+ "value": 64,
465
+ "unit": "px"
466
+ },
419
467
  "$type": "dimension",
420
468
  "$extensions": {
421
469
  "org.primer.figma": {
@@ -442,7 +490,10 @@
442
490
  "filePath": "src/tokens/base/size/size.json5",
443
491
  "isSource": true,
444
492
  "original": {
445
- "$value": "8px",
493
+ "$value": {
494
+ "value": 8,
495
+ "unit": "px"
496
+ },
446
497
  "$type": "dimension",
447
498
  "$extensions": {
448
499
  "org.primer.figma": {
@@ -469,7 +520,10 @@
469
520
  "filePath": "src/tokens/base/size/size.json5",
470
521
  "isSource": true,
471
522
  "original": {
472
- "$value": "80px",
523
+ "$value": {
524
+ "value": 80,
525
+ "unit": "px"
526
+ },
473
527
  "$type": "dimension",
474
528
  "$extensions": {
475
529
  "org.primer.figma": {
@@ -496,7 +550,10 @@
496
550
  "filePath": "src/tokens/base/size/size.json5",
497
551
  "isSource": true,
498
552
  "original": {
499
- "$value": "96px",
553
+ "$value": {
554
+ "value": 96,
555
+ "unit": "px"
556
+ },
500
557
  "$type": "dimension",
501
558
  "$extensions": {
502
559
  "org.primer.figma": {