@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
@@ -2,51 +2,51 @@
2
2
  base: {
3
3
  duration: {
4
4
  '0': {
5
- $value: '0ms',
5
+ $value: {value: 0, unit: 'ms'},
6
6
  $type: 'duration',
7
7
  },
8
8
  '50': {
9
- $value: '50ms',
9
+ $value: {value: 50, unit: 'ms'},
10
10
  $type: 'duration',
11
11
  },
12
12
  '100': {
13
- $value: '100ms',
13
+ $value: {value: 100, unit: 'ms'},
14
14
  $type: 'duration',
15
15
  },
16
16
  '200': {
17
- $value: '200ms',
17
+ $value: {value: 200, unit: 'ms'},
18
18
  $type: 'duration',
19
19
  },
20
20
  '300': {
21
- $value: '300ms',
21
+ $value: {value: 300, unit: 'ms'},
22
22
  $type: 'duration',
23
23
  },
24
24
  '400': {
25
- $value: '400ms',
25
+ $value: {value: 400, unit: 'ms'},
26
26
  $type: 'duration',
27
27
  },
28
28
  '500': {
29
- $value: '500ms',
29
+ $value: {value: 500, unit: 'ms'},
30
30
  $type: 'duration',
31
31
  },
32
32
  '600': {
33
- $value: '600ms',
33
+ $value: {value: 600, unit: 'ms'},
34
34
  $type: 'duration',
35
35
  },
36
36
  '700': {
37
- $value: '700ms',
37
+ $value: {value: 700, unit: 'ms'},
38
38
  $type: 'duration',
39
39
  },
40
40
  '800': {
41
- $value: '800ms',
41
+ $value: {value: 800, unit: 'ms'},
42
42
  $type: 'duration',
43
43
  },
44
44
  '900': {
45
- $value: '900ms',
45
+ $value: {value: 900, unit: 'ms'},
46
46
  $type: 'duration',
47
47
  },
48
48
  '1000': {
49
- $value: '1000ms',
49
+ $value: {value: 1000, unit: 'ms'},
50
50
  $type: 'duration',
51
51
  },
52
52
  },
@@ -2,7 +2,7 @@
2
2
  "base": {
3
3
  "size": {
4
4
  "2": {
5
- "$value": "2px",
5
+ "$value": { "value": 2, "unit": "px" },
6
6
  "$type": "dimension",
7
7
  "$extensions": {
8
8
  "org.primer.figma": {
@@ -12,7 +12,7 @@
12
12
  }
13
13
  },
14
14
  "4": {
15
- "$value": "4px",
15
+ "$value": { "value": 4, "unit": "px" },
16
16
  "$type": "dimension",
17
17
  "$extensions": {
18
18
  "org.primer.figma": {
@@ -22,7 +22,7 @@
22
22
  }
23
23
  },
24
24
  "6": {
25
- "$value": "6px",
25
+ "$value": { "value": 6, "unit": "px" },
26
26
  "$type": "dimension",
27
27
  "$extensions": {
28
28
  "org.primer.figma": {
@@ -32,7 +32,7 @@
32
32
  }
33
33
  },
34
34
  "8": {
35
- "$value": "8px",
35
+ "$value": { "value": 8, "unit": "px" },
36
36
  "$type": "dimension",
37
37
  "$extensions": {
38
38
  "org.primer.figma": {
@@ -42,7 +42,7 @@
42
42
  }
43
43
  },
44
44
  "12": {
45
- "$value": "12px",
45
+ "$value": { "value": 12, "unit": "px" },
46
46
  "$type": "dimension",
47
47
  "$extensions": {
48
48
  "org.primer.figma": {
@@ -52,7 +52,7 @@
52
52
  }
53
53
  },
54
54
  "16": {
55
- "$value": "16px",
55
+ "$value": { "value": 16, "unit": "px" },
56
56
  "$type": "dimension",
57
57
  "$extensions": {
58
58
  "org.primer.figma": {
@@ -62,7 +62,7 @@
62
62
  }
63
63
  },
64
64
  "20": {
65
- "$value": "20px",
65
+ "$value": { "value": 20, "unit": "px" },
66
66
  "$type": "dimension",
67
67
  "$extensions": {
68
68
  "org.primer.figma": {
@@ -72,7 +72,7 @@
72
72
  }
73
73
  },
74
74
  "24": {
75
- "$value": "24px",
75
+ "$value": { "value": 24, "unit": "px" },
76
76
  "$type": "dimension",
77
77
  "$extensions": {
78
78
  "org.primer.figma": {
@@ -82,7 +82,7 @@
82
82
  }
83
83
  },
84
84
  "28": {
85
- "$value": "28px",
85
+ "$value": { "value": 28, "unit": "px" },
86
86
  "$type": "dimension",
87
87
  "$extensions": {
88
88
  "org.primer.figma": {
@@ -92,7 +92,7 @@
92
92
  }
93
93
  },
94
94
  "32": {
95
- "$value": "32px",
95
+ "$value": { "value": 32, "unit": "px" },
96
96
  "$type": "dimension",
97
97
  "$extensions": {
98
98
  "org.primer.figma": {
@@ -102,7 +102,7 @@
102
102
  }
103
103
  },
104
104
  "36": {
105
- "$value": "36px",
105
+ "$value": { "value": 36, "unit": "px" },
106
106
  "$type": "dimension",
107
107
  "$extensions": {
108
108
  "org.primer.figma": {
@@ -112,7 +112,7 @@
112
112
  }
113
113
  },
114
114
  "40": {
115
- "$value": "40px",
115
+ "$value": { "value": 40, "unit": "px" },
116
116
  "$type": "dimension",
117
117
  "$extensions": {
118
118
  "org.primer.figma": {
@@ -122,7 +122,7 @@
122
122
  }
123
123
  },
124
124
  "44": {
125
- "$value": "44px",
125
+ "$value": { "value": 44, "unit": "px" },
126
126
  "$type": "dimension",
127
127
  "$extensions": {
128
128
  "org.primer.figma": {
@@ -132,7 +132,7 @@
132
132
  }
133
133
  },
134
134
  "48": {
135
- "$value": "48px",
135
+ "$value": { "value": 48, "unit": "px" },
136
136
  "$type": "dimension",
137
137
  "$extensions": {
138
138
  "org.primer.figma": {
@@ -142,7 +142,7 @@
142
142
  }
143
143
  },
144
144
  "64": {
145
- "$value": "64px",
145
+ "$value": { "value": 64, "unit": "px" },
146
146
  "$type": "dimension",
147
147
  "$extensions": {
148
148
  "org.primer.figma": {
@@ -152,7 +152,7 @@
152
152
  }
153
153
  },
154
154
  "80": {
155
- "$value": "80px",
155
+ "$value": { "value": 80, "unit": "px" },
156
156
  "$type": "dimension",
157
157
  "$extensions": {
158
158
  "org.primer.figma": {
@@ -162,7 +162,7 @@
162
162
  }
163
163
  },
164
164
  "96": {
165
- "$value": "96px",
165
+ "$value": { "value": 96, "unit": "px" },
166
166
  "$type": "dimension",
167
167
  "$extensions": {
168
168
  "org.primer.figma": {
@@ -172,7 +172,7 @@
172
172
  }
173
173
  },
174
174
  "112": {
175
- "$value": "112px",
175
+ "$value": { "value": 112, "unit": "px" },
176
176
  "$type": "dimension",
177
177
  "$extensions": {
178
178
  "org.primer.figma": {
@@ -182,7 +182,7 @@
182
182
  }
183
183
  },
184
184
  "128": {
185
- "$value": "128px",
185
+ "$value": { "value": 128, "unit": "px" },
186
186
  "$type": "dimension",
187
187
  "$extensions": {
188
188
  "org.primer.figma": {
@@ -3,7 +3,7 @@
3
3
  text: {
4
4
  size: {
5
5
  xs: {
6
- $value: '0.75rem',
6
+ $value: {value: 0.75, unit: 'rem'},
7
7
  $type: 'dimension',
8
8
  $description: '12px - Smallest text size for captions and compact UI elements.',
9
9
  $extensions: {
@@ -14,7 +14,7 @@
14
14
  },
15
15
  },
16
16
  sm: {
17
- $value: '0.875rem',
17
+ $value: {value: 0.875, unit: 'rem'},
18
18
  $type: 'dimension',
19
19
  $description: '14px - Default body text size for UI.',
20
20
  $extensions: {
@@ -25,7 +25,7 @@
25
25
  },
26
26
  },
27
27
  md: {
28
- $value: '1rem',
28
+ $value: {value: 1, unit: 'rem'},
29
29
  $type: 'dimension',
30
30
  $description: '16px - Large body text and small titles.',
31
31
  $extensions: {
@@ -36,7 +36,7 @@
36
36
  },
37
37
  },
38
38
  lg: {
39
- $value: '1.25rem',
39
+ $value: {value: 1.25, unit: 'rem'},
40
40
  $type: 'dimension',
41
41
  $description: '20px - Medium titles and subtitles.',
42
42
  $extensions: {
@@ -47,7 +47,7 @@
47
47
  },
48
48
  },
49
49
  xl: {
50
- $value: '2rem',
50
+ $value: {value: 2, unit: 'rem'},
51
51
  $type: 'dimension',
52
52
  $description: '32px - Large titles and page headings.',
53
53
  $extensions: {
@@ -58,7 +58,7 @@
58
58
  },
59
59
  },
60
60
  '2xl': {
61
- $value: '2.5rem',
61
+ $value: {value: 2.5, unit: 'rem'},
62
62
  $type: 'dimension',
63
63
  $description: '40px - Display text for hero sections.',
64
64
  $extensions: {
@@ -7,9 +7,23 @@
7
7
  width: '2px',
8
8
  },
9
9
  $type: 'border',
10
+ $description: 'Focus ring outline for keyboard navigation and accessibility.',
11
+ $extensions: {
12
+ 'org.primer.llm': {
13
+ usage: ['focus-ring', 'keyboard-navigation', 'accessibility-indicator'],
14
+ rules: 'Always ensure focus states are visible. Do not override with custom focus styles that reduce visibility. Use for interactive elements like buttons, links, and form controls.',
15
+ },
16
+ },
10
17
  },
11
18
  },
12
19
  border: {
20
+ $description: 'Semantic border tokens combining color, style, and width for consistent UI boundaries.',
21
+ $extensions: {
22
+ 'org.primer.llm': {
23
+ usage: ['container-border', 'card-border', 'divider', 'input-border', 'panel-border'],
24
+ rules: 'Use default for standard container borders. Use muted for subtle dividers and low-emphasis boundaries. Use emphasis when borders need to stand out. Match status border colors to their semantic meaning (danger for errors, success for positive states). Use disabled only for non-interactive or disabled elements. Prefer semantic variants (open/closed, done) over raw color variants when the context matches.',
25
+ },
26
+ },
13
27
  default: {
14
28
  $value: {
15
29
  color: '{borderColor.default}',
@@ -51,6 +65,7 @@
51
65
  $type: 'border',
52
66
  },
53
67
  neutral: {
68
+ $description: 'Neutral gray borders for non-semantic boundaries and subtle UI separation.',
54
69
  emphasis: {
55
70
  $value: {
56
71
  color: '{borderColor.neutral.emphasis}',
@@ -69,6 +84,7 @@
69
84
  },
70
85
  },
71
86
  accent: {
87
+ $description: 'Accent-colored borders for selected, focused, or highlighted elements.',
72
88
  emphasis: {
73
89
  $value: {
74
90
  color: '{borderColor.accent.emphasis}',
@@ -87,6 +103,7 @@
87
103
  },
88
104
  },
89
105
  success: {
106
+ $description: 'Green borders for positive states, confirmations, and successful operations.',
90
107
  emphasis: {
91
108
  $value: {
92
109
  color: '{borderColor.success.emphasis}',
@@ -105,6 +122,7 @@
105
122
  },
106
123
  },
107
124
  open: {
125
+ $description: 'Borders for open state indicators. Use for open pull requests, issues, and discussions. Aliases border.success.',
108
126
  emphasis: {
109
127
  $value: '{border.success.emphasis}',
110
128
  $type: 'border',
@@ -115,6 +133,7 @@
115
133
  },
116
134
  },
117
135
  danger: {
136
+ $description: 'Red borders for errors, destructive actions, and critical warnings.',
118
137
  emphasis: {
119
138
  $value: {
120
139
  color: '{borderColor.danger.emphasis}',
@@ -133,6 +152,7 @@
133
152
  },
134
153
  },
135
154
  closed: {
155
+ $description: 'Borders for closed state indicators. Use for closed pull requests, issues, and discussions. Aliases border.danger.',
136
156
  emphasis: {
137
157
  $value: '{border.danger.emphasis}',
138
158
  $type: 'border',
@@ -143,6 +163,7 @@
143
163
  },
144
164
  },
145
165
  attention: {
166
+ $description: 'Yellow borders for warnings, caution states, and items requiring user attention.',
146
167
  emphasis: {
147
168
  $value: {
148
169
  color: '{borderColor.attention.emphasis}',
@@ -161,6 +182,7 @@
161
182
  },
162
183
  },
163
184
  severe: {
185
+ $description: 'Orange borders for severe warnings, more urgent than attention but less critical than danger.',
164
186
  emphasis: {
165
187
  $value: {
166
188
  color: '{borderColor.severe.emphasis}',
@@ -179,6 +201,7 @@
179
201
  },
180
202
  },
181
203
  done: {
204
+ $description: 'Purple borders for completed or merged states. Use for merged pull requests and completed items.',
182
205
  emphasis: {
183
206
  $value: {
184
207
  color: '{borderColor.done.emphasis}',
@@ -197,6 +220,7 @@
197
220
  },
198
221
  },
199
222
  upsell: {
223
+ $description: 'Borders for promotional content and feature upsells. Use for upgrade prompts and premium feature highlights.',
200
224
  emphasis: {
201
225
  $value: {
202
226
  color: '{borderColor.upsell.emphasis}',
@@ -215,6 +239,7 @@
215
239
  },
216
240
  },
217
241
  sponsors: {
242
+ $description: 'Borders for GitHub Sponsors content and sponsor-related UI elements.',
218
243
  emphasis: {
219
244
  $value: {
220
245
  color: '{borderColor.sponsors.emphasis}',