@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
@@ -0,0 +1,221 @@
1
+ {
2
+ "borderRadius-default": {
3
+ "key": "{borderRadius.default}",
4
+ "$value": ["0.375rem", "6px"],
5
+ "$description": "Default border radius for most UI elements. Alias of borderRadius.medium (6px). Use when in doubt",
6
+ "$type": "dimension",
7
+ "$extensions": {
8
+ "org.primer.figma": {
9
+ "collection": "functional/size",
10
+ "scopes": ["radius"],
11
+ "codeSyntax": {
12
+ "web": "var(--borderRadius-default) /* utility class: .rounded-2 */"
13
+ }
14
+ }
15
+ },
16
+ "filePath": "src/tokens/functional/size/radius.json5",
17
+ "isSource": true,
18
+ "original": {
19
+ "$value": "{borderRadius.medium}",
20
+ "$description": "Default border radius for most UI elements. Alias of borderRadius.medium (6px). Use when in doubt",
21
+ "$type": "dimension",
22
+ "$extensions": {
23
+ "org.primer.figma": {
24
+ "collection": "functional/size",
25
+ "scopes": ["radius"],
26
+ "codeSyntax": {
27
+ "web": "var(--borderRadius-default) /* utility class: .rounded-2 */"
28
+ }
29
+ }
30
+ },
31
+ "key": "{borderRadius.default}"
32
+ },
33
+ "name": "borderRadius-default",
34
+ "attributes": {},
35
+ "path": ["borderRadius", "default"]
36
+ },
37
+ "borderRadius-full": {
38
+ "key": "{borderRadius.full}",
39
+ "$value": ["624.9375rem", "9999px"],
40
+ "$type": "dimension",
41
+ "$description": "Use this border radius for pill shaped elements",
42
+ "$extensions": {
43
+ "org.primer.figma": {
44
+ "collection": "functional/size",
45
+ "scopes": ["radius"],
46
+ "codeSyntax": {
47
+ "web": "var(--borderRadius-full) /* utility class: .circle */"
48
+ }
49
+ },
50
+ "org.primer.llm": {
51
+ "usage": ["avatar", "pill-badge", "circular-button"],
52
+ "rules": "Use for avatars and pill-shaped elements. Do NOT use for rectangular containers."
53
+ }
54
+ },
55
+ "filePath": "src/tokens/functional/size/radius.json5",
56
+ "isSource": true,
57
+ "original": {
58
+ "$value": {
59
+ "value": 9999,
60
+ "unit": "px"
61
+ },
62
+ "$type": "dimension",
63
+ "$description": "Use this border radius for pill shaped elements",
64
+ "$extensions": {
65
+ "org.primer.figma": {
66
+ "collection": "functional/size",
67
+ "scopes": ["radius"],
68
+ "codeSyntax": {
69
+ "web": "var(--borderRadius-full) /* utility class: .circle */"
70
+ }
71
+ },
72
+ "org.primer.llm": {
73
+ "usage": ["avatar", "pill-badge", "circular-button"],
74
+ "rules": "Use for avatars and pill-shaped elements. Do NOT use for rectangular containers."
75
+ }
76
+ },
77
+ "key": "{borderRadius.full}"
78
+ },
79
+ "name": "borderRadius-full",
80
+ "attributes": {},
81
+ "path": ["borderRadius", "full"]
82
+ },
83
+ "borderRadius-large": {
84
+ "key": "{borderRadius.large}",
85
+ "$value": ["0.75rem", "12px"],
86
+ "$description": "Large border radius (12px). Use for larger containers, dialogs, or when more visual softness is desired. Always use this for buttons.",
87
+ "$type": "dimension",
88
+ "$extensions": {
89
+ "org.primer.figma": {
90
+ "collection": "functional/size",
91
+ "scopes": ["radius"],
92
+ "codeSyntax": {
93
+ "web": "var(--borderRadius-large) /* utility class: .rounded-3 */"
94
+ }
95
+ },
96
+ "org.primer.llm": {
97
+ "usage": ["dialog", "card", "modal"],
98
+ "rules": "Recommended for dialogs and modals."
99
+ }
100
+ },
101
+ "filePath": "src/tokens/functional/size/radius.json5",
102
+ "isSource": true,
103
+ "original": {
104
+ "$value": {
105
+ "value": 12,
106
+ "unit": "px"
107
+ },
108
+ "$description": "Large border radius (12px). Use for larger containers, dialogs, or when more visual softness is desired. Always use this for buttons.",
109
+ "$type": "dimension",
110
+ "$extensions": {
111
+ "org.primer.figma": {
112
+ "collection": "functional/size",
113
+ "scopes": ["radius"],
114
+ "codeSyntax": {
115
+ "web": "var(--borderRadius-large) /* utility class: .rounded-3 */"
116
+ }
117
+ },
118
+ "org.primer.llm": {
119
+ "usage": ["dialog", "card", "modal"],
120
+ "rules": "Recommended for dialogs and modals."
121
+ }
122
+ },
123
+ "key": "{borderRadius.large}"
124
+ },
125
+ "name": "borderRadius-large",
126
+ "attributes": {},
127
+ "path": ["borderRadius", "large"]
128
+ },
129
+ "borderRadius-medium": {
130
+ "key": "{borderRadius.medium}",
131
+ "$value": ["0.375rem", "6px"],
132
+ "$description": "Medium border radius (6px). The default choice for most buttons, cards, and containers",
133
+ "$type": "dimension",
134
+ "$extensions": {
135
+ "org.primer.figma": {
136
+ "collection": "functional/size",
137
+ "scopes": ["radius"],
138
+ "codeSyntax": {
139
+ "web": "var(--borderRadius-medium) /* utility class: .rounded-2 */"
140
+ }
141
+ },
142
+ "org.primer.llm": {
143
+ "usage": ["button", "input", "textarea", "select", "card", "container"],
144
+ "rules": "Default choice for most components. Use for inputs, cards, and general containers."
145
+ }
146
+ },
147
+ "filePath": "src/tokens/functional/size/radius.json5",
148
+ "isSource": true,
149
+ "original": {
150
+ "$value": {
151
+ "value": 6,
152
+ "unit": "px"
153
+ },
154
+ "$description": "Medium border radius (6px). The default choice for most buttons, cards, and containers",
155
+ "$type": "dimension",
156
+ "$extensions": {
157
+ "org.primer.figma": {
158
+ "collection": "functional/size",
159
+ "scopes": ["radius"],
160
+ "codeSyntax": {
161
+ "web": "var(--borderRadius-medium) /* utility class: .rounded-2 */"
162
+ }
163
+ },
164
+ "org.primer.llm": {
165
+ "usage": ["button", "input", "textarea", "select", "card", "container"],
166
+ "rules": "Default choice for most components. Use for inputs, cards, and general containers."
167
+ }
168
+ },
169
+ "key": "{borderRadius.medium}"
170
+ },
171
+ "name": "borderRadius-medium",
172
+ "attributes": {},
173
+ "path": ["borderRadius", "medium"]
174
+ },
175
+ "borderRadius-small": {
176
+ "key": "{borderRadius.small}",
177
+ "$value": ["0.1875rem", "3px"],
178
+ "$description": "Small border radius (3px). Use for small variants of components or small UI elements like badges, tags, or anything below 16px in height",
179
+ "$type": "dimension",
180
+ "$extensions": {
181
+ "org.primer.figma": {
182
+ "collection": "functional/size",
183
+ "scopes": ["radius"],
184
+ "codeSyntax": {
185
+ "web": "var(--borderRadius-small) /* utility class: .rounded-1 */"
186
+ }
187
+ },
188
+ "org.primer.llm": {
189
+ "usage": ["badge", "tag", "label", "small-input"],
190
+ "rules": "Use for small UI elements under 16px height. Do NOT use for buttons or cards."
191
+ }
192
+ },
193
+ "filePath": "src/tokens/functional/size/radius.json5",
194
+ "isSource": true,
195
+ "original": {
196
+ "$value": {
197
+ "value": 3,
198
+ "unit": "px"
199
+ },
200
+ "$description": "Small border radius (3px). Use for small variants of components or small UI elements like badges, tags, or anything below 16px in height",
201
+ "$type": "dimension",
202
+ "$extensions": {
203
+ "org.primer.figma": {
204
+ "collection": "functional/size",
205
+ "scopes": ["radius"],
206
+ "codeSyntax": {
207
+ "web": "var(--borderRadius-small) /* utility class: .rounded-1 */"
208
+ }
209
+ },
210
+ "org.primer.llm": {
211
+ "usage": ["badge", "tag", "label", "small-input"],
212
+ "rules": "Use for small UI elements under 16px height. Do NOT use for buttons or cards."
213
+ }
214
+ },
215
+ "key": "{borderRadius.small}"
216
+ },
217
+ "name": "borderRadius-small",
218
+ "attributes": {},
219
+ "path": ["borderRadius", "small"]
220
+ }
221
+ }
@@ -1,13 +1,27 @@
1
1
  {
2
2
  "control-minTarget-auto": {
3
3
  "key": "{control.minTarget.auto}",
4
- "$value": ["0.171875rem", "2.75px"],
4
+ "$value": ["2.75rem", "44px"],
5
5
  "$type": "dimension",
6
+ "$description": "Minimum touch target size for coarse pointer devices (touch screens)",
7
+ "$extensions": {
8
+ "org.primer.llm": {
9
+ "usage": ["touch-target", "mobile-button", "tap-area"],
10
+ "rules": "Use as minimum size for interactive elements on touch devices. Ensures WCAG 2.5.5 compliance (44x44px minimum). Do NOT use for fine pointer (mouse) contexts."
11
+ }
12
+ },
6
13
  "filePath": "src/tokens/functional/size/size-coarse.json5",
7
14
  "isSource": true,
8
15
  "original": {
9
16
  "$value": "{base.size.44}",
10
17
  "$type": "dimension",
18
+ "$description": "Minimum touch target size for coarse pointer devices (touch screens)",
19
+ "$extensions": {
20
+ "org.primer.llm": {
21
+ "usage": ["touch-target", "mobile-button", "tap-area"],
22
+ "rules": "Use as minimum size for interactive elements on touch devices. Ensures WCAG 2.5.5 compliance (44x44px minimum). Do NOT use for fine pointer (mouse) contexts."
23
+ }
24
+ },
11
25
  "key": "{control.minTarget.auto}"
12
26
  },
13
27
  "name": "control-minTarget-auto",
@@ -16,13 +30,27 @@
16
30
  },
17
31
  "controlStack-medium-gap-auto": {
18
32
  "key": "{controlStack.medium.gap.auto}",
19
- "$value": ["0.046875rem", "0.75px"],
33
+ "$value": ["0.75rem", "12px"],
20
34
  "$type": "dimension",
35
+ "$description": "Gap between stacked controls in medium density layouts for touch devices",
36
+ "$extensions": {
37
+ "org.primer.llm": {
38
+ "usage": ["touch-control-spacing", "mobile-form-gap", "stacked-buttons"],
39
+ "rules": "Use for spacing between interactive controls on touch devices in standard layouts. Do NOT use for desktop/mouse interfaces."
40
+ }
41
+ },
21
42
  "filePath": "src/tokens/functional/size/size-coarse.json5",
22
43
  "isSource": true,
23
44
  "original": {
24
45
  "$value": "{base.size.12}",
25
46
  "$type": "dimension",
47
+ "$description": "Gap between stacked controls in medium density layouts for touch devices",
48
+ "$extensions": {
49
+ "org.primer.llm": {
50
+ "usage": ["touch-control-spacing", "mobile-form-gap", "stacked-buttons"],
51
+ "rules": "Use for spacing between interactive controls on touch devices in standard layouts. Do NOT use for desktop/mouse interfaces."
52
+ }
53
+ },
26
54
  "key": "{controlStack.medium.gap.auto}"
27
55
  },
28
56
  "name": "controlStack-medium-gap-auto",
@@ -31,13 +59,27 @@
31
59
  },
32
60
  "controlStack-small-gap-auto": {
33
61
  "key": "{controlStack.small.gap.auto}",
34
- "$value": ["0.0625rem", "1px"],
62
+ "$value": ["1rem", "16px"],
35
63
  "$type": "dimension",
64
+ "$description": "Gap between stacked controls in small density layouts for touch devices",
65
+ "$extensions": {
66
+ "org.primer.llm": {
67
+ "usage": ["touch-control-spacing", "mobile-form-gap", "stacked-buttons"],
68
+ "rules": "Use for spacing between interactive controls on touch devices in compact layouts. Provides adequate touch separation. Do NOT use for desktop/mouse interfaces."
69
+ }
70
+ },
36
71
  "filePath": "src/tokens/functional/size/size-coarse.json5",
37
72
  "isSource": true,
38
73
  "original": {
39
74
  "$value": "{base.size.16}",
40
75
  "$type": "dimension",
76
+ "$description": "Gap between stacked controls in small density layouts for touch devices",
77
+ "$extensions": {
78
+ "org.primer.llm": {
79
+ "usage": ["touch-control-spacing", "mobile-form-gap", "stacked-buttons"],
80
+ "rules": "Use for spacing between interactive controls on touch devices in compact layouts. Provides adequate touch separation. Do NOT use for desktop/mouse interfaces."
81
+ }
82
+ },
41
83
  "key": "{controlStack.small.gap.auto}"
42
84
  },
43
85
  "name": "controlStack-small-gap-auto",
@@ -1,13 +1,27 @@
1
1
  {
2
2
  "control-minTarget-auto": {
3
3
  "key": "{control.minTarget.auto}",
4
- "$value": ["0.0625rem", "1px"],
4
+ "$value": ["1rem", "16px"],
5
5
  "$type": "dimension",
6
+ "$description": "Minimum target size for fine pointer devices (mouse)",
7
+ "$extensions": {
8
+ "org.primer.llm": {
9
+ "usage": ["mouse-target", "desktop-button", "click-area"],
10
+ "rules": "Use as minimum size for interactive elements on desktop/mouse interfaces. Smaller than touch targets for denser layouts. Do NOT use for touch/mobile contexts."
11
+ }
12
+ },
6
13
  "filePath": "src/tokens/functional/size/size-fine.json5",
7
14
  "isSource": true,
8
15
  "original": {
9
16
  "$value": "{base.size.16}",
10
17
  "$type": "dimension",
18
+ "$description": "Minimum target size for fine pointer devices (mouse)",
19
+ "$extensions": {
20
+ "org.primer.llm": {
21
+ "usage": ["mouse-target", "desktop-button", "click-area"],
22
+ "rules": "Use as minimum size for interactive elements on desktop/mouse interfaces. Smaller than touch targets for denser layouts. Do NOT use for touch/mobile contexts."
23
+ }
24
+ },
11
25
  "key": "{control.minTarget.auto}"
12
26
  },
13
27
  "name": "control-minTarget-auto",
@@ -16,13 +30,27 @@
16
30
  },
17
31
  "controlStack-medium-gap-auto": {
18
32
  "key": "{controlStack.medium.gap.auto}",
19
- "$value": ["0.03125rem", "0.5px"],
33
+ "$value": ["0.5rem", "8px"],
20
34
  "$type": "dimension",
35
+ "$description": "Gap between stacked controls in medium density layouts for mouse interfaces",
36
+ "$extensions": {
37
+ "org.primer.llm": {
38
+ "usage": ["desktop-control-spacing", "form-gap", "stacked-buttons"],
39
+ "rules": "Use for spacing between interactive controls on desktop in standard layouts. Do NOT use for mobile/touch interfaces."
40
+ }
41
+ },
21
42
  "filePath": "src/tokens/functional/size/size-fine.json5",
22
43
  "isSource": true,
23
44
  "original": {
24
45
  "$value": "{base.size.8}",
25
46
  "$type": "dimension",
47
+ "$description": "Gap between stacked controls in medium density layouts for mouse interfaces",
48
+ "$extensions": {
49
+ "org.primer.llm": {
50
+ "usage": ["desktop-control-spacing", "form-gap", "stacked-buttons"],
51
+ "rules": "Use for spacing between interactive controls on desktop in standard layouts. Do NOT use for mobile/touch interfaces."
52
+ }
53
+ },
26
54
  "key": "{controlStack.medium.gap.auto}"
27
55
  },
28
56
  "name": "controlStack-medium-gap-auto",
@@ -31,13 +59,27 @@
31
59
  },
32
60
  "controlStack-small-gap-auto": {
33
61
  "key": "{controlStack.small.gap.auto}",
34
- "$value": ["0.03125rem", "0.5px"],
62
+ "$value": ["0.5rem", "8px"],
35
63
  "$type": "dimension",
64
+ "$description": "Gap between stacked controls in small density layouts for mouse interfaces",
65
+ "$extensions": {
66
+ "org.primer.llm": {
67
+ "usage": ["desktop-control-spacing", "form-gap", "stacked-buttons"],
68
+ "rules": "Use for spacing between interactive controls on desktop in compact layouts. Tighter spacing than touch devices. Do NOT use for mobile/touch interfaces."
69
+ }
70
+ },
36
71
  "filePath": "src/tokens/functional/size/size-fine.json5",
37
72
  "isSource": true,
38
73
  "original": {
39
74
  "$value": "{base.size.8}",
40
75
  "$type": "dimension",
76
+ "$description": "Gap between stacked controls in small density layouts for mouse interfaces",
77
+ "$extensions": {
78
+ "org.primer.llm": {
79
+ "usage": ["desktop-control-spacing", "form-gap", "stacked-buttons"],
80
+ "rules": "Use for spacing between interactive controls on desktop in compact layouts. Tighter spacing than touch devices. Do NOT use for mobile/touch interfaces."
81
+ }
82
+ },
41
83
  "key": "{controlStack.small.gap.auto}"
42
84
  },
43
85
  "name": "controlStack-small-gap-auto",