@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.
- package/DESIGN_TOKENS_GUIDE.md +185 -0
- package/DESIGN_TOKENS_SPEC.md +565 -0
- package/dist/build/filters/hasLlmExtensions.d.ts +7 -0
- package/dist/build/filters/hasLlmExtensions.js +11 -0
- package/dist/build/filters/index.d.ts +1 -0
- package/dist/build/filters/index.js +1 -0
- package/dist/build/formats/index.d.ts +1 -0
- package/dist/build/formats/index.js +1 -0
- package/dist/build/formats/markdownLlmGuidelines.d.ts +11 -0
- package/dist/build/formats/markdownLlmGuidelines.js +1168 -0
- package/dist/build/platforms/index.d.ts +1 -0
- package/dist/build/platforms/index.js +1 -0
- package/dist/build/platforms/llmGuidelines.d.ts +2 -0
- package/dist/build/platforms/llmGuidelines.js +17 -0
- package/dist/build/preprocessors/inheritGroupProperties.d.ts +7 -0
- package/dist/build/preprocessors/inheritGroupProperties.js +70 -0
- package/dist/build/primerStyleDictionary.js +7 -1
- package/dist/build/schemas/borderToken.d.ts +22 -2
- package/dist/build/schemas/borderToken.js +6 -0
- package/dist/build/schemas/colorToken.d.ts +4 -0
- package/dist/build/schemas/colorToken.js +2 -0
- package/dist/build/schemas/cubicBezierToken.d.ts +6 -0
- package/dist/build/schemas/cubicBezierToken.js +10 -2
- package/dist/build/schemas/designToken.d.ts +1 -1
- package/dist/build/schemas/designToken.js +113 -21
- package/dist/build/schemas/dimensionToken.d.ts +14 -3
- package/dist/build/schemas/dimensionToken.js +6 -2
- package/dist/build/schemas/dimensionValue.d.ts +24 -1
- package/dist/build/schemas/dimensionValue.js +20 -1
- package/dist/build/schemas/durationToken.d.ts +13 -1
- package/dist/build/schemas/durationToken.js +6 -0
- package/dist/build/schemas/durationValue.d.ts +11 -1
- package/dist/build/schemas/durationValue.js +13 -3
- package/dist/build/schemas/fontFamilyToken.d.ts +4 -0
- package/dist/build/schemas/fontFamilyToken.js +2 -0
- package/dist/build/schemas/fontWeightToken.d.ts +4 -0
- package/dist/build/schemas/fontWeightToken.js +2 -0
- package/dist/build/schemas/gradientToken.d.ts +4 -0
- package/dist/build/schemas/gradientToken.js +2 -0
- package/dist/build/schemas/llmExtension.d.ts +9 -0
- package/dist/build/schemas/llmExtension.js +11 -0
- package/dist/build/schemas/numberToken.d.ts +4 -0
- package/dist/build/schemas/numberToken.js +2 -0
- package/dist/build/schemas/shadowToken.d.ts +676 -84
- package/dist/build/schemas/shadowToken.js +2 -0
- package/dist/build/schemas/stringToken.d.ts +6 -0
- package/dist/build/schemas/stringToken.js +6 -0
- package/dist/build/schemas/transitionToken.d.ts +20 -2
- package/dist/build/schemas/transitionToken.js +6 -0
- package/dist/build/schemas/typographyToken.d.ts +38 -4
- package/dist/build/schemas/typographyToken.js +6 -0
- package/dist/build/schemas/validTokenType.d.ts +5 -1
- package/dist/build/schemas/validTokenType.js +71 -17
- package/dist/build/schemas/viewportRangeToken.d.ts +6 -0
- package/dist/build/schemas/viewportRangeToken.js +6 -0
- package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
- package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
- package/dist/build/transformers/dimensionToRem.d.ts +2 -1
- package/dist/build/transformers/dimensionToRem.js +21 -22
- package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
- package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
- package/dist/build/transformers/durationToCss.d.ts +2 -1
- package/dist/build/transformers/durationToCss.js +18 -11
- package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
- package/dist/build/transformers/utilities/parseDimension.js +31 -0
- package/dist/build/types/dimensionTokenValue.d.ts +9 -0
- package/dist/css/base/motion/motion.css +5 -4
- package/dist/css/functional/size/border.css +9 -14
- package/dist/css/functional/size/radius.css +7 -0
- package/dist/css/functional/size/size-coarse.css +3 -3
- package/dist/css/functional/size/size-fine.css +3 -3
- package/dist/css/functional/size/viewport.css +1 -1
- package/dist/css/functional/themes/dark-colorblind-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-colorblind.css +194 -190
- package/dist/css/functional/themes/dark-dimmed-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-dimmed.css +194 -190
- package/dist/css/functional/themes/dark-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-tritanopia.css +194 -190
- package/dist/css/functional/themes/dark.css +194 -190
- package/dist/css/functional/themes/light-colorblind-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-colorblind.css +194 -190
- package/dist/css/functional/themes/light-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-tritanopia-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-tritanopia.css +194 -190
- package/dist/css/functional/themes/light.css +194 -190
- package/dist/css/functional/typography/typography.css +4 -4
- package/dist/css/primitives.css +5 -0
- package/dist/docs/base/motion/motion.json +181 -32
- package/dist/docs/base/size/size.json +76 -19
- package/dist/docs/base/typography/typography.json +24 -6
- package/dist/docs/functional/size/border.json +62 -182
- package/dist/docs/functional/size/breakpoints.json +24 -6
- package/dist/docs/functional/size/radius.json +221 -0
- package/dist/docs/functional/size/size-coarse.json +45 -3
- package/dist/docs/functional/size/size-fine.json +45 -3
- package/dist/docs/functional/size/size.json +60 -15
- package/dist/docs/functional/size/viewport.json +2 -2
- package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-colorblind.json +1043 -97
- package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-dimmed.json +1081 -135
- package/dist/docs/functional/themes/dark-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-tritanopia.json +1043 -97
- package/dist/docs/functional/themes/dark.json +1043 -97
- package/dist/docs/functional/themes/light-colorblind-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-colorblind.json +1049 -103
- package/dist/docs/functional/themes/light-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-tritanopia.json +1049 -103
- package/dist/docs/functional/themes/light.json +1049 -103
- package/dist/docs/functional/typography/typography.json +180 -10
- package/dist/fallbacks/base/motion/motion.json +49 -12
- package/dist/fallbacks/functional/size/border.json +0 -5
- package/dist/fallbacks/functional/size/radius.json +7 -0
- package/dist/fallbacks/functional/size/viewport.json +1 -1
- package/dist/figma/dimension/dimension.json +30 -20
- package/dist/figma/themes/dark-colorblind.json +85 -0
- package/dist/figma/themes/dark-dimmed.json +134 -49
- package/dist/figma/themes/dark-high-contrast.json +85 -0
- package/dist/figma/themes/dark-tritanopia.json +85 -0
- package/dist/figma/themes/dark.json +85 -0
- package/dist/figma/themes/light-colorblind.json +89 -4
- package/dist/figma/themes/light-high-contrast.json +89 -4
- package/dist/figma/themes/light-tritanopia.json +89 -4
- package/dist/figma/themes/light.json +89 -4
- package/dist/figma/typography/typography.json +44 -40
- package/dist/internalCss/dark-colorblind-high-contrast.css +208 -218
- package/dist/internalCss/dark-colorblind.css +208 -218
- package/dist/internalCss/dark-dimmed-high-contrast.css +208 -218
- package/dist/internalCss/dark-dimmed.css +208 -218
- package/dist/internalCss/dark-high-contrast.css +208 -218
- package/dist/internalCss/dark-tritanopia-high-contrast.css +208 -218
- package/dist/internalCss/dark-tritanopia.css +208 -218
- package/dist/internalCss/dark.css +208 -218
- package/dist/internalCss/light-colorblind-high-contrast.css +208 -218
- package/dist/internalCss/light-colorblind.css +208 -218
- package/dist/internalCss/light-high-contrast.css +208 -218
- package/dist/internalCss/light-tritanopia-high-contrast.css +208 -218
- package/dist/internalCss/light-tritanopia.css +208 -218
- package/dist/internalCss/light.css +208 -218
- package/dist/styleLint/base/motion/motion.json +181 -32
- package/dist/styleLint/base/size/size.json +76 -19
- package/dist/styleLint/base/typography/typography.json +30 -12
- package/dist/styleLint/functional/size/border.json +55 -175
- package/dist/styleLint/functional/size/breakpoints.json +24 -6
- package/dist/styleLint/functional/size/radius.json +221 -0
- package/dist/styleLint/functional/size/size-coarse.json +45 -3
- package/dist/styleLint/functional/size/size-fine.json +45 -3
- package/dist/styleLint/functional/size/size.json +111 -66
- package/dist/styleLint/functional/size/viewport.json +2 -2
- package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-colorblind.json +975 -29
- package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-dimmed.json +1013 -67
- package/dist/styleLint/functional/themes/dark-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-tritanopia.json +975 -29
- package/dist/styleLint/functional/themes/dark.json +975 -29
- package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-colorblind.json +981 -35
- package/dist/styleLint/functional/themes/light-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-tritanopia.json +981 -35
- package/dist/styleLint/functional/themes/light.json +981 -35
- package/dist/styleLint/functional/typography/typography.json +196 -26
- package/package.json +6 -3
- package/src/tokens/base/motion/easing.json5 +39 -4
- package/src/tokens/base/motion/timing.json5 +12 -12
- package/src/tokens/base/size/size.json5 +19 -19
- package/src/tokens/base/typography/typography.json5 +6 -6
- package/src/tokens/functional/border/border.json5 +25 -0
- package/src/tokens/functional/color/bgColor.json5 +165 -0
- package/src/tokens/functional/color/borderColor.json5 +146 -0
- package/src/tokens/functional/color/control.json5 +24 -0
- package/src/tokens/functional/color/data-vis.json5 +7 -0
- package/src/tokens/functional/color/display.json5 +7 -0
- package/src/tokens/functional/color/fgColor.json5 +101 -1
- package/src/tokens/functional/color/focus.json5 +5 -0
- package/src/tokens/functional/color/selection.json5 +5 -0
- package/src/tokens/functional/color/syntax.json5 +14 -0
- package/src/tokens/functional/shadow/shadow.json5 +49 -4
- package/src/tokens/functional/size/border.json5 +22 -74
- package/src/tokens/functional/size/breakpoints.json5 +6 -6
- package/src/tokens/functional/size/radius.json5 +90 -0
- package/src/tokens/functional/size/size-coarse.json5 +24 -3
- package/src/tokens/functional/size/size-fine.json5 +45 -24
- package/src/tokens/functional/size/size.json5 +50 -15
- package/src/tokens/functional/size/viewport.json5 +1 -1
- package/src/tokens/functional/typography/font-stack.json5 +60 -0
- package/src/tokens/functional/typography/typography.json5 +71 -44
- package/dist/build/parsers/index.d.ts +0 -1
- package/dist/build/parsers/index.js +0 -1
- package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
- package/dist/build/parsers/w3cJsonParser.js +0 -25
- package/dist/removed/testing.json5 +0 -4
- package/src/tokens/removed/testing.json5 +0 -4
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
default: {
|
|
4
4
|
$value: '{base.color.neutral.6}',
|
|
5
5
|
$type: 'color',
|
|
6
|
+
$description: 'Default border color for most UI elements',
|
|
6
7
|
$extensions: {
|
|
7
8
|
'org.primer.overrides': {
|
|
8
9
|
dark: '{base.color.neutral.7}',
|
|
@@ -23,11 +24,16 @@
|
|
|
23
24
|
web: 'var(--borderColor-default) /* utility class: .color-border-default */',
|
|
24
25
|
},
|
|
25
26
|
},
|
|
27
|
+
'org.primer.llm': {
|
|
28
|
+
usage: ['default-border', 'card-border', 'input-border', 'divider'],
|
|
29
|
+
rules: 'RECOMMENDED default for all borders. Use for cards, inputs, and dividers.',
|
|
30
|
+
},
|
|
26
31
|
},
|
|
27
32
|
},
|
|
28
33
|
muted: {
|
|
29
34
|
$value: '{borderColor.default}',
|
|
30
35
|
$type: 'color',
|
|
36
|
+
$description: 'Subtle border for secondary elements and light separators',
|
|
31
37
|
$extensions: {
|
|
32
38
|
'org.primer.figma': {
|
|
33
39
|
collection: 'mode',
|
|
@@ -71,12 +77,17 @@
|
|
|
71
77
|
alpha: 1,
|
|
72
78
|
},
|
|
73
79
|
},
|
|
80
|
+
'org.primer.llm': {
|
|
81
|
+
usage: ['subtle-border', 'light-divider', 'secondary-border'],
|
|
82
|
+
rules: 'Use for subtle borders and separators. Less prominent than borderColor.default.',
|
|
83
|
+
},
|
|
74
84
|
},
|
|
75
85
|
alpha: 0.7,
|
|
76
86
|
},
|
|
77
87
|
emphasis: {
|
|
78
88
|
$value: '{base.color.neutral.8}',
|
|
79
89
|
$type: 'color',
|
|
90
|
+
$description: 'Strong border for emphasis and visual weight',
|
|
80
91
|
$extensions: {
|
|
81
92
|
'org.primer.figma': {
|
|
82
93
|
collection: 'mode',
|
|
@@ -92,11 +103,16 @@
|
|
|
92
103
|
'dark-tritanopia-high-contrast': '{borderColor.default}',
|
|
93
104
|
'dark-protanopia-deuteranopia-high-contrast': '{borderColor.default}',
|
|
94
105
|
},
|
|
106
|
+
'org.primer.llm': {
|
|
107
|
+
usage: ['emphasis-border', 'strong-border', 'selected-border'],
|
|
108
|
+
rules: 'Use for borders needing more visual weight. Darker than borderColor.default.',
|
|
109
|
+
},
|
|
95
110
|
},
|
|
96
111
|
},
|
|
97
112
|
disabled: {
|
|
98
113
|
$value: '{base.color.neutral.8}',
|
|
99
114
|
$type: 'color',
|
|
115
|
+
$description: 'Border color for disabled interactive elements',
|
|
100
116
|
$extensions: {
|
|
101
117
|
'org.primer.figma': {
|
|
102
118
|
collection: 'mode',
|
|
@@ -125,12 +141,17 @@
|
|
|
125
141
|
alpha: 0.12,
|
|
126
142
|
},
|
|
127
143
|
},
|
|
144
|
+
'org.primer.llm': {
|
|
145
|
+
usage: ['disabled-border', 'inactive-border', 'unavailable'],
|
|
146
|
+
rules: 'MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements.',
|
|
147
|
+
},
|
|
128
148
|
},
|
|
129
149
|
alpha: 0.1,
|
|
130
150
|
},
|
|
131
151
|
transparent: {
|
|
132
152
|
$value: '{base.color.transparent}',
|
|
133
153
|
$type: 'color',
|
|
154
|
+
$description: 'Fully transparent border',
|
|
134
155
|
$extensions: {
|
|
135
156
|
'org.primer.figma': {
|
|
136
157
|
collection: 'mode',
|
|
@@ -142,6 +163,7 @@
|
|
|
142
163
|
translucent: {
|
|
143
164
|
$value: '{base.color.neutral.13}',
|
|
144
165
|
$type: 'color',
|
|
166
|
+
$description: 'Semi-transparent border for overlays and layered elements',
|
|
145
167
|
$extensions: {
|
|
146
168
|
'org.primer.figma': {
|
|
147
169
|
collection: 'mode',
|
|
@@ -178,6 +200,10 @@
|
|
|
178
200
|
alpha: 1,
|
|
179
201
|
},
|
|
180
202
|
},
|
|
203
|
+
'org.primer.llm': {
|
|
204
|
+
usage: ['overlay-border', 'translucent-border'],
|
|
205
|
+
rules: 'Use for semi-transparent borders on overlays. Works well with translucent backgrounds.',
|
|
206
|
+
},
|
|
181
207
|
},
|
|
182
208
|
alpha: 0.15,
|
|
183
209
|
},
|
|
@@ -185,6 +211,7 @@
|
|
|
185
211
|
muted: {
|
|
186
212
|
$value: '{borderColor.muted}',
|
|
187
213
|
$type: 'color',
|
|
214
|
+
$description: 'Subtle neutral semantic border',
|
|
188
215
|
$extensions: {
|
|
189
216
|
'org.primer.figma': {
|
|
190
217
|
collection: 'mode',
|
|
@@ -201,11 +228,16 @@
|
|
|
201
228
|
alpha: 1,
|
|
202
229
|
},
|
|
203
230
|
},
|
|
231
|
+
'org.primer.llm': {
|
|
232
|
+
usage: ['neutral-muted', 'neutral-secondary'],
|
|
233
|
+
rules: 'Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use.',
|
|
234
|
+
},
|
|
204
235
|
},
|
|
205
236
|
},
|
|
206
237
|
emphasis: {
|
|
207
238
|
$value: '{base.color.neutral.9}',
|
|
208
239
|
$type: 'color',
|
|
240
|
+
$description: 'Strong neutral semantic border',
|
|
209
241
|
$extensions: {
|
|
210
242
|
'org.primer.figma': {
|
|
211
243
|
collection: 'mode',
|
|
@@ -215,6 +247,10 @@
|
|
|
215
247
|
'org.primer.overrides': {
|
|
216
248
|
dark: '{borderColor.emphasis}',
|
|
217
249
|
},
|
|
250
|
+
'org.primer.llm': {
|
|
251
|
+
usage: ['neutral-emphasis', 'neutral-strong'],
|
|
252
|
+
rules: 'Use for emphasized neutral semantic borders. Stronger than neutral.muted.',
|
|
253
|
+
},
|
|
218
254
|
},
|
|
219
255
|
},
|
|
220
256
|
},
|
|
@@ -222,6 +258,7 @@
|
|
|
222
258
|
muted: {
|
|
223
259
|
$value: '{base.color.blue.3}',
|
|
224
260
|
$type: 'color',
|
|
261
|
+
$description: 'Subtle accent border for selected or focused elements',
|
|
225
262
|
$extensions: {
|
|
226
263
|
'org.primer.figma': {
|
|
227
264
|
collection: 'mode',
|
|
@@ -262,12 +299,17 @@
|
|
|
262
299
|
alpha: 1,
|
|
263
300
|
},
|
|
264
301
|
},
|
|
302
|
+
'org.primer.llm': {
|
|
303
|
+
usage: ['accent-muted', 'selected-muted', 'info-muted'],
|
|
304
|
+
rules: 'Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted.',
|
|
305
|
+
},
|
|
265
306
|
},
|
|
266
307
|
alpha: 0.4,
|
|
267
308
|
},
|
|
268
309
|
emphasis: {
|
|
269
310
|
$value: '{base.color.blue.5}',
|
|
270
311
|
$type: 'color',
|
|
312
|
+
$description: 'Strong accent border for selected or focused elements',
|
|
271
313
|
$extensions: {
|
|
272
314
|
'org.primer.figma': {
|
|
273
315
|
collection: 'mode',
|
|
@@ -280,6 +322,10 @@
|
|
|
280
322
|
'org.primer.overrides': {
|
|
281
323
|
'dark-dimmed-high-contrast': '{base.color.blue.2}',
|
|
282
324
|
},
|
|
325
|
+
'org.primer.llm': {
|
|
326
|
+
usage: ['accent-emphasis', 'selected-border', 'focus-border'],
|
|
327
|
+
rules: 'Use for selected elements and focus states. Strong visual emphasis.',
|
|
328
|
+
},
|
|
283
329
|
},
|
|
284
330
|
},
|
|
285
331
|
},
|
|
@@ -287,6 +333,7 @@
|
|
|
287
333
|
muted: {
|
|
288
334
|
$value: '{base.color.green.3}',
|
|
289
335
|
$type: 'color',
|
|
336
|
+
$description: 'Subtle success border for positive feedback elements',
|
|
290
337
|
$extensions: {
|
|
291
338
|
'org.primer.figma': {
|
|
292
339
|
collection: 'mode',
|
|
@@ -342,12 +389,17 @@
|
|
|
342
389
|
alpha: 1,
|
|
343
390
|
},
|
|
344
391
|
},
|
|
392
|
+
'org.primer.llm': {
|
|
393
|
+
usage: ['success-muted', 'valid-muted', 'positive-muted'],
|
|
394
|
+
rules: 'Use for success state borders. Pair with bgColor.success.muted.',
|
|
395
|
+
},
|
|
345
396
|
},
|
|
346
397
|
alpha: 0.4,
|
|
347
398
|
},
|
|
348
399
|
emphasis: {
|
|
349
400
|
$value: '{base.color.green.5}',
|
|
350
401
|
$type: 'color',
|
|
402
|
+
$description: 'Strong success border for prominent positive elements',
|
|
351
403
|
$extensions: {
|
|
352
404
|
'org.primer.figma': {
|
|
353
405
|
collection: 'mode',
|
|
@@ -368,6 +420,10 @@
|
|
|
368
420
|
'light-protanopia-deuteranopia-high-contrast': '{base.color.blue.5}',
|
|
369
421
|
'dark-dimmed-high-contrast': '{base.color.green.2}',
|
|
370
422
|
},
|
|
423
|
+
'org.primer.llm': {
|
|
424
|
+
usage: ['success-emphasis', 'confirmed', 'positive-emphasis'],
|
|
425
|
+
rules: 'Use for emphasized success borders. Pair with bgColor.success.emphasis.',
|
|
426
|
+
},
|
|
371
427
|
},
|
|
372
428
|
},
|
|
373
429
|
},
|
|
@@ -375,6 +431,7 @@
|
|
|
375
431
|
muted: {
|
|
376
432
|
$value: '{borderColor.success.muted}',
|
|
377
433
|
$type: 'color',
|
|
434
|
+
$description: 'Subtle border for open state indicators',
|
|
378
435
|
$extensions: {
|
|
379
436
|
'org.primer.figma': {
|
|
380
437
|
collection: 'mode',
|
|
@@ -418,11 +475,16 @@
|
|
|
418
475
|
alpha: 1,
|
|
419
476
|
},
|
|
420
477
|
},
|
|
478
|
+
'org.primer.llm': {
|
|
479
|
+
usage: ['open-muted', 'open-issue', 'open-pr'],
|
|
480
|
+
rules: 'Use for open/active status borders. Specifically for GitHub issues and PRs.',
|
|
481
|
+
},
|
|
421
482
|
},
|
|
422
483
|
},
|
|
423
484
|
emphasis: {
|
|
424
485
|
$value: '{borderColor.success.emphasis}',
|
|
425
486
|
$type: 'color',
|
|
487
|
+
$description: 'Strong border for open state badges',
|
|
426
488
|
$extensions: {
|
|
427
489
|
'org.primer.figma': {
|
|
428
490
|
collection: 'mode',
|
|
@@ -442,6 +504,10 @@
|
|
|
442
504
|
'light-protanopia-deuteranopia': '{base.color.orange.5}',
|
|
443
505
|
'light-protanopia-deuteranopia-high-contrast': '{base.color.orange.5}',
|
|
444
506
|
},
|
|
507
|
+
'org.primer.llm': {
|
|
508
|
+
usage: ['open-emphasis', 'open-status'],
|
|
509
|
+
rules: 'Use for emphasized open state borders. Pair with bgColor.open.emphasis.',
|
|
510
|
+
},
|
|
445
511
|
},
|
|
446
512
|
},
|
|
447
513
|
},
|
|
@@ -449,6 +515,7 @@
|
|
|
449
515
|
muted: {
|
|
450
516
|
$value: '{base.color.yellow.3}',
|
|
451
517
|
$type: 'color',
|
|
518
|
+
$description: 'Subtle attention border for warnings and caution states',
|
|
452
519
|
$extensions: {
|
|
453
520
|
'org.primer.figma': {
|
|
454
521
|
collection: 'mode',
|
|
@@ -489,12 +556,17 @@
|
|
|
489
556
|
alpha: 1,
|
|
490
557
|
},
|
|
491
558
|
},
|
|
559
|
+
'org.primer.llm': {
|
|
560
|
+
usage: ['attention-muted', 'warning-muted', 'caution-muted'],
|
|
561
|
+
rules: 'Use for warning state borders. Pair with bgColor.attention.muted.',
|
|
562
|
+
},
|
|
492
563
|
},
|
|
493
564
|
alpha: 0.4,
|
|
494
565
|
},
|
|
495
566
|
emphasis: {
|
|
496
567
|
$value: '{base.color.yellow.5}',
|
|
497
568
|
$type: 'color',
|
|
569
|
+
$description: 'Strong attention border for prominent warnings',
|
|
498
570
|
$extensions: {
|
|
499
571
|
'org.primer.figma': {
|
|
500
572
|
collection: 'mode',
|
|
@@ -507,6 +579,10 @@
|
|
|
507
579
|
'org.primer.overrides': {
|
|
508
580
|
'dark-dimmed-high-contrast': '{base.color.yellow.2}',
|
|
509
581
|
},
|
|
582
|
+
'org.primer.llm': {
|
|
583
|
+
usage: ['attention-emphasis', 'warning-emphasis', 'caution-emphasis'],
|
|
584
|
+
rules: 'Use for emphasized warning borders. Pair with bgColor.attention.emphasis.',
|
|
585
|
+
},
|
|
510
586
|
},
|
|
511
587
|
},
|
|
512
588
|
},
|
|
@@ -514,6 +590,7 @@
|
|
|
514
590
|
muted: {
|
|
515
591
|
$value: '{base.color.orange.3}',
|
|
516
592
|
$type: 'color',
|
|
593
|
+
$description: 'Subtle severe border for high-priority warnings',
|
|
517
594
|
$extensions: {
|
|
518
595
|
'org.primer.figma': {
|
|
519
596
|
collection: 'mode',
|
|
@@ -552,12 +629,17 @@
|
|
|
552
629
|
alpha: 1,
|
|
553
630
|
},
|
|
554
631
|
},
|
|
632
|
+
'org.primer.llm': {
|
|
633
|
+
usage: ['severe-muted', 'urgent-muted'],
|
|
634
|
+
rules: 'Use for severe warning borders. More critical than attention, less than danger.',
|
|
635
|
+
},
|
|
555
636
|
},
|
|
556
637
|
alpha: 0.4,
|
|
557
638
|
},
|
|
558
639
|
emphasis: {
|
|
559
640
|
$value: '{base.color.orange.5}',
|
|
560
641
|
$type: 'color',
|
|
642
|
+
$description: 'Strong severe border for prominent high-priority warnings',
|
|
561
643
|
$extensions: {
|
|
562
644
|
'org.primer.figma': {
|
|
563
645
|
collection: 'mode',
|
|
@@ -573,6 +655,10 @@
|
|
|
573
655
|
'light-tritanopia-high-contrast': '{base.color.red.5}',
|
|
574
656
|
'dark-dimmed-high-contrast': '{base.color.orange.2}',
|
|
575
657
|
},
|
|
658
|
+
'org.primer.llm': {
|
|
659
|
+
usage: ['severe-emphasis', 'urgent-emphasis'],
|
|
660
|
+
rules: 'Use for emphasized severe borders. Pair with bgColor.severe.emphasis.',
|
|
661
|
+
},
|
|
576
662
|
},
|
|
577
663
|
},
|
|
578
664
|
},
|
|
@@ -580,6 +666,7 @@
|
|
|
580
666
|
muted: {
|
|
581
667
|
$value: '{base.color.red.3}',
|
|
582
668
|
$type: 'color',
|
|
669
|
+
$description: 'Subtle danger border for errors and destructive contexts',
|
|
583
670
|
$extensions: {
|
|
584
671
|
'org.primer.figma': {
|
|
585
672
|
collection: 'mode',
|
|
@@ -627,12 +714,17 @@
|
|
|
627
714
|
alpha: 1,
|
|
628
715
|
},
|
|
629
716
|
},
|
|
717
|
+
'org.primer.llm': {
|
|
718
|
+
usage: ['danger-muted', 'error-muted', 'destructive-muted'],
|
|
719
|
+
rules: 'Use for error state borders. Pair with bgColor.danger.muted.',
|
|
720
|
+
},
|
|
630
721
|
},
|
|
631
722
|
alpha: 0.4,
|
|
632
723
|
},
|
|
633
724
|
emphasis: {
|
|
634
725
|
$value: '{base.color.red.5}',
|
|
635
726
|
$type: 'color',
|
|
727
|
+
$description: 'Strong danger border for destructive actions and errors',
|
|
636
728
|
$extensions: {
|
|
637
729
|
'org.primer.figma': {
|
|
638
730
|
collection: 'mode',
|
|
@@ -657,6 +749,10 @@
|
|
|
657
749
|
},
|
|
658
750
|
'dark-dimmed-high-contrast': '{base.color.red.2}',
|
|
659
751
|
},
|
|
752
|
+
'org.primer.llm': {
|
|
753
|
+
usage: ['danger-emphasis', 'error-emphasis', 'destructive-emphasis'],
|
|
754
|
+
rules: 'MUST use for destructive action borders. Pair with bgColor.danger.emphasis.',
|
|
755
|
+
},
|
|
660
756
|
},
|
|
661
757
|
},
|
|
662
758
|
},
|
|
@@ -664,6 +760,7 @@
|
|
|
664
760
|
muted: {
|
|
665
761
|
$value: '{borderColor.danger.muted}',
|
|
666
762
|
$type: 'color',
|
|
763
|
+
$description: 'Subtle border for closed state indicators',
|
|
667
764
|
$extensions: {
|
|
668
765
|
'org.primer.figma': {
|
|
669
766
|
collection: 'mode',
|
|
@@ -707,11 +804,16 @@
|
|
|
707
804
|
alpha: 1,
|
|
708
805
|
},
|
|
709
806
|
},
|
|
807
|
+
'org.primer.llm': {
|
|
808
|
+
usage: ['closed-muted', 'closed-issue', 'closed-pr'],
|
|
809
|
+
rules: 'Use for closed/declined status borders. Specifically for GitHub issues and PRs.',
|
|
810
|
+
},
|
|
710
811
|
},
|
|
711
812
|
},
|
|
712
813
|
emphasis: {
|
|
713
814
|
$value: '{borderColor.danger.emphasis}',
|
|
714
815
|
$type: 'color',
|
|
816
|
+
$description: 'Strong border for closed state badges',
|
|
715
817
|
$extensions: {
|
|
716
818
|
'org.primer.figma': {
|
|
717
819
|
collection: 'mode',
|
|
@@ -731,6 +833,10 @@
|
|
|
731
833
|
'light-tritanopia': '{borderColor.emphasis}',
|
|
732
834
|
'light-tritanopia-high-contrast': '{borderColor.emphasis}',
|
|
733
835
|
},
|
|
836
|
+
'org.primer.llm': {
|
|
837
|
+
usage: ['closed-emphasis', 'closed-status'],
|
|
838
|
+
rules: 'Use for emphasized closed state borders. Pair with bgColor.closed.emphasis.',
|
|
839
|
+
},
|
|
734
840
|
},
|
|
735
841
|
},
|
|
736
842
|
},
|
|
@@ -738,6 +844,7 @@
|
|
|
738
844
|
muted: {
|
|
739
845
|
$value: '{borderColor.neutral.muted}',
|
|
740
846
|
$type: 'color',
|
|
847
|
+
$description: 'Subtle border for draft state indicators',
|
|
741
848
|
$extensions: {
|
|
742
849
|
'org.primer.figma': {
|
|
743
850
|
collection: 'mode',
|
|
@@ -781,11 +888,16 @@
|
|
|
781
888
|
alpha: 1,
|
|
782
889
|
},
|
|
783
890
|
},
|
|
891
|
+
'org.primer.llm': {
|
|
892
|
+
usage: ['draft-muted', 'draft-pr', 'draft-issue'],
|
|
893
|
+
rules: 'Use for draft/WIP status borders. Conveys incomplete or pending state.',
|
|
894
|
+
},
|
|
784
895
|
},
|
|
785
896
|
},
|
|
786
897
|
emphasis: {
|
|
787
898
|
$value: '{borderColor.neutral.emphasis}',
|
|
788
899
|
$type: 'color',
|
|
900
|
+
$description: 'Strong border for draft state badges',
|
|
789
901
|
$extensions: {
|
|
790
902
|
'org.primer.figma': {
|
|
791
903
|
collection: 'mode',
|
|
@@ -795,6 +907,10 @@
|
|
|
795
907
|
web: 'var(--borderColor-draft-emphasis)',
|
|
796
908
|
},
|
|
797
909
|
},
|
|
910
|
+
'org.primer.llm': {
|
|
911
|
+
usage: ['draft-emphasis', 'draft-status'],
|
|
912
|
+
rules: 'Use for emphasized draft state borders. Pair with bgColor.draft.emphasis.',
|
|
913
|
+
},
|
|
798
914
|
},
|
|
799
915
|
},
|
|
800
916
|
},
|
|
@@ -802,6 +918,7 @@
|
|
|
802
918
|
muted: {
|
|
803
919
|
$value: '{base.color.purple.3}',
|
|
804
920
|
$type: 'color',
|
|
921
|
+
$description: 'Subtle border for completed/done state indicators',
|
|
805
922
|
$extensions: {
|
|
806
923
|
'org.primer.figma': {
|
|
807
924
|
collection: 'mode',
|
|
@@ -842,12 +959,17 @@
|
|
|
842
959
|
alpha: 1,
|
|
843
960
|
},
|
|
844
961
|
},
|
|
962
|
+
'org.primer.llm': {
|
|
963
|
+
usage: ['done-muted', 'merged', 'completed'],
|
|
964
|
+
rules: 'Use for completed/done status borders. Conveys finished or merged state.',
|
|
965
|
+
},
|
|
845
966
|
},
|
|
846
967
|
alpha: 0.4,
|
|
847
968
|
},
|
|
848
969
|
emphasis: {
|
|
849
970
|
$value: '{base.color.purple.5}',
|
|
850
971
|
$type: 'color',
|
|
972
|
+
$description: 'Strong border for completed/done state badges',
|
|
851
973
|
$extensions: {
|
|
852
974
|
'org.primer.figma': {
|
|
853
975
|
collection: 'mode',
|
|
@@ -860,6 +982,10 @@
|
|
|
860
982
|
'org.primer.overrides': {
|
|
861
983
|
'dark-dimmed-high-contrast': '{base.color.purple.2}',
|
|
862
984
|
},
|
|
985
|
+
'org.primer.llm': {
|
|
986
|
+
usage: ['done-emphasis', 'merged-status'],
|
|
987
|
+
rules: 'Use for emphasized done state borders. Pair with bgColor.done.emphasis.',
|
|
988
|
+
},
|
|
863
989
|
},
|
|
864
990
|
},
|
|
865
991
|
},
|
|
@@ -867,6 +993,7 @@
|
|
|
867
993
|
muted: {
|
|
868
994
|
$value: '{borderColor.done.muted}',
|
|
869
995
|
$type: 'color',
|
|
996
|
+
$description: 'Subtle border for upsell and promotional content',
|
|
870
997
|
$extensions: {
|
|
871
998
|
'org.primer.figma': {
|
|
872
999
|
collection: 'mode',
|
|
@@ -876,11 +1003,16 @@
|
|
|
876
1003
|
web: 'var(--borderColor-upsell-muted)',
|
|
877
1004
|
},
|
|
878
1005
|
},
|
|
1006
|
+
'org.primer.llm': {
|
|
1007
|
+
usage: ['upsell-muted', 'premium-muted'],
|
|
1008
|
+
rules: 'Use for upgrade prompts and premium feature borders. Do NOT use for regular content.',
|
|
1009
|
+
},
|
|
879
1010
|
},
|
|
880
1011
|
},
|
|
881
1012
|
emphasis: {
|
|
882
1013
|
$value: '{borderColor.done.emphasis}',
|
|
883
1014
|
$type: 'color',
|
|
1015
|
+
$description: 'Strong border for prominent upsell elements',
|
|
884
1016
|
$extensions: {
|
|
885
1017
|
'org.primer.figma': {
|
|
886
1018
|
collection: 'mode',
|
|
@@ -890,6 +1022,10 @@
|
|
|
890
1022
|
web: 'var(--borderColor-upsell-emphasis)',
|
|
891
1023
|
},
|
|
892
1024
|
},
|
|
1025
|
+
'org.primer.llm': {
|
|
1026
|
+
usage: ['upsell-emphasis', 'premium-emphasis'],
|
|
1027
|
+
rules: 'Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis.',
|
|
1028
|
+
},
|
|
893
1029
|
},
|
|
894
1030
|
},
|
|
895
1031
|
},
|
|
@@ -897,6 +1033,7 @@
|
|
|
897
1033
|
muted: {
|
|
898
1034
|
$value: '{base.color.pink.3}',
|
|
899
1035
|
$type: 'color',
|
|
1036
|
+
$description: 'Subtle border for GitHub Sponsors content',
|
|
900
1037
|
$extensions: {
|
|
901
1038
|
'org.primer.figma': {
|
|
902
1039
|
collection: 'mode',
|
|
@@ -937,12 +1074,17 @@
|
|
|
937
1074
|
alpha: 1,
|
|
938
1075
|
},
|
|
939
1076
|
},
|
|
1077
|
+
'org.primer.llm': {
|
|
1078
|
+
usage: ['sponsors-muted', 'funding-muted'],
|
|
1079
|
+
rules: 'Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements.',
|
|
1080
|
+
},
|
|
940
1081
|
},
|
|
941
1082
|
alpha: 0.4,
|
|
942
1083
|
},
|
|
943
1084
|
emphasis: {
|
|
944
1085
|
$value: '{base.color.pink.5}',
|
|
945
1086
|
$type: 'color',
|
|
1087
|
+
$description: 'Strong border for prominent GitHub Sponsors elements',
|
|
946
1088
|
$extensions: {
|
|
947
1089
|
'org.primer.figma': {
|
|
948
1090
|
collection: 'mode',
|
|
@@ -955,6 +1097,10 @@
|
|
|
955
1097
|
'org.primer.overrides': {
|
|
956
1098
|
'dark-dimmed-high-contrast': '{base.color.pink.3}',
|
|
957
1099
|
},
|
|
1100
|
+
'org.primer.llm': {
|
|
1101
|
+
usage: ['sponsors-emphasis', 'funding-emphasis'],
|
|
1102
|
+
rules: 'Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis.',
|
|
1103
|
+
},
|
|
958
1104
|
},
|
|
959
1105
|
},
|
|
960
1106
|
},
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
control: {
|
|
3
|
+
$description: 'Colors for interactive form controls like buttons, inputs, selects, and checkboxes.',
|
|
4
|
+
$extensions: {
|
|
5
|
+
'org.primer.llm': {
|
|
6
|
+
usage: ['button', 'input', 'select', 'checkbox', 'radio', 'form-control'],
|
|
7
|
+
rules: 'Use control tokens for interactive form elements. Match states (rest, hover, active, disabled) to user interactions. Use transparent variants for ghost/tertiary buttons. Use danger variants for destructive actions. Use checked variants for selected checkboxes and radios.',
|
|
8
|
+
},
|
|
9
|
+
},
|
|
3
10
|
bgColor: {
|
|
4
11
|
rest: {
|
|
5
12
|
$value: '{base.color.neutral.1}',
|
|
@@ -345,6 +352,7 @@
|
|
|
345
352
|
},
|
|
346
353
|
},
|
|
347
354
|
transparent: {
|
|
355
|
+
$description: 'Transparent control colors for ghost buttons and tertiary actions with no visible background at rest.',
|
|
348
356
|
bgColor: {
|
|
349
357
|
rest: {
|
|
350
358
|
$value: '{base.color.transparent}',
|
|
@@ -613,6 +621,7 @@
|
|
|
613
621
|
},
|
|
614
622
|
},
|
|
615
623
|
danger: {
|
|
624
|
+
$description: 'Danger control colors for destructive actions like delete buttons and remove actions.',
|
|
616
625
|
fgColor: {
|
|
617
626
|
rest: {
|
|
618
627
|
$value: '{fgColor.danger}',
|
|
@@ -752,6 +761,7 @@
|
|
|
752
761
|
},
|
|
753
762
|
},
|
|
754
763
|
checked: {
|
|
764
|
+
$description: 'Colors for checked/selected state of checkboxes, radio buttons, and toggle switches.',
|
|
755
765
|
bgColor: {
|
|
756
766
|
rest: {
|
|
757
767
|
$value: '{bgColor.accent.emphasis}',
|
|
@@ -1009,6 +1019,13 @@
|
|
|
1009
1019
|
},
|
|
1010
1020
|
},
|
|
1011
1021
|
controlTrack: {
|
|
1022
|
+
$description: 'Colors for toggle switch tracks (the background rail that the knob slides along).',
|
|
1023
|
+
$extensions: {
|
|
1024
|
+
'org.primer.llm': {
|
|
1025
|
+
usage: ['toggle-track', 'switch-track', 'slider-track'],
|
|
1026
|
+
rules: 'Use for the track/rail element of toggle switches and sliders. Pair with controlKnob tokens for the movable handle.',
|
|
1027
|
+
},
|
|
1028
|
+
},
|
|
1012
1029
|
bgColor: {
|
|
1013
1030
|
rest: {
|
|
1014
1031
|
$value: '{base.color.neutral.3}',
|
|
@@ -1234,6 +1251,13 @@
|
|
|
1234
1251
|
},
|
|
1235
1252
|
},
|
|
1236
1253
|
controlKnob: {
|
|
1254
|
+
$description: 'Colors for toggle switch knobs (the circular handle that moves along the track).',
|
|
1255
|
+
$extensions: {
|
|
1256
|
+
'org.primer.llm': {
|
|
1257
|
+
usage: ['toggle-knob', 'switch-handle', 'slider-thumb'],
|
|
1258
|
+
rules: 'Use for the movable handle/thumb of toggle switches and sliders. Pair with controlTrack tokens for the background rail.',
|
|
1259
|
+
},
|
|
1260
|
+
},
|
|
1237
1261
|
bgColor: {
|
|
1238
1262
|
rest: {
|
|
1239
1263
|
$value: '{base.color.neutral.0}',
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
data: {
|
|
3
|
+
$description: 'Colors for data visualization including charts, graphs, and diagrams. Use these colors to differentiate data series. Emphasis variants are for lines, bars, and borders. Muted variants are for area fills and backgrounds.',
|
|
4
|
+
$extensions: {
|
|
5
|
+
'org.primer.llm': {
|
|
6
|
+
usage: ['chart-series', 'graph-line', 'bar-fill', 'pie-segment', 'area-chart', 'data-point'],
|
|
7
|
+
rules: 'Use data colors for visualizations only. Do NOT use for semantic meaning (use bgColor.success/danger instead). When using multiple series, ensure sufficient contrast between adjacent colors. Pair emphasis with muted variants of the same color for cohesive styling.',
|
|
8
|
+
},
|
|
9
|
+
},
|
|
3
10
|
blue: {
|
|
4
11
|
color: {
|
|
5
12
|
emphasis: {
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
display: {
|
|
3
|
+
$description: 'Decorative colors for categorization and visual distinction without semantic meaning. Use for labels, tags, avatars, status indicators, and user-assigned colors. Do NOT use for success/error/warning states—use semantic colors (bgColor.success/danger/attention) instead.',
|
|
4
|
+
$extensions: {
|
|
5
|
+
'org.primer.llm': {
|
|
6
|
+
usage: ['label', 'tag', 'avatar', 'badge', 'category-indicator', 'user-assigned-color', 'project-color', 'decorative-element'],
|
|
7
|
+
rules: 'Use display colors for arbitrary categorization where the color has no inherent meaning (e.g., project labels, user avatars). For meaningful states like success, error, or warning, use semantic colors instead. Scales 0-2 are lighter (backgrounds), 3-5 are mid-tones, 6-9 are darker (foregrounds/borders).',
|
|
8
|
+
},
|
|
9
|
+
},
|
|
3
10
|
blue: {
|
|
4
11
|
scale: {
|
|
5
12
|
'0': {
|