@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
@@ -297,6 +297,7 @@
297
297
  "key": "{bgColor.accent.emphasis}",
298
298
  "$value": "#194fb1",
299
299
  "$type": "color",
300
+ "$description": "Strong accent background for active states and focused states",
300
301
  "$extensions": {
301
302
  "org.primer.figma": {
302
303
  "collection": "mode",
@@ -312,6 +313,10 @@
312
313
  "dark-dimmed-high-contrast": "#2672f3",
313
314
  "dark-tritanopia-high-contrast": "#194fb1",
314
315
  "dark-protanopia-deuteranopia-high-contrast": "#194fb1"
316
+ },
317
+ "org.primer.llm": {
318
+ "usage": ["active-states", "current", "selected", "active-toggle"],
319
+ "rules": "MUST use for selected or active states. Pair with fgColor.onEmphasis for text."
315
320
  }
316
321
  },
317
322
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -319,6 +324,7 @@
319
324
  "original": {
320
325
  "$value": "{base.color.blue.9}",
321
326
  "$type": "color",
327
+ "$description": "Strong accent background for active states and focused states",
322
328
  "$extensions": {
323
329
  "org.primer.figma": {
324
330
  "collection": "mode",
@@ -334,6 +340,10 @@
334
340
  "dark-dimmed-high-contrast": "{base.color.blue.7}",
335
341
  "dark-tritanopia-high-contrast": "{base.color.blue.9}",
336
342
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.blue.9}"
343
+ },
344
+ "org.primer.llm": {
345
+ "usage": ["active-states", "current", "selected", "active-toggle"],
346
+ "rules": "MUST use for selected or active states. Pair with fgColor.onEmphasis for text."
337
347
  }
338
348
  },
339
349
  "key": "{bgColor.accent.emphasis}"
@@ -346,6 +356,7 @@
346
356
  "key": "{bgColor.accent.muted}",
347
357
  "$value": "#5cacff1a",
348
358
  "$type": "color",
359
+ "$description": "Subtle accent background for informational or selected elements",
349
360
  "$extensions": {
350
361
  "org.primer.figma": {
351
362
  "collection": "mode",
@@ -363,6 +374,10 @@
363
374
  "isSource": true,
364
375
  "$type": "color"
365
376
  }
377
+ },
378
+ "org.primer.llm": {
379
+ "usage": ["selected-row", "info-banner", "active-nav-item", "highlight"],
380
+ "rules": "Use for selected states or informational highlights. Pair with fgColor.accent for text."
366
381
  }
367
382
  },
368
383
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -371,6 +386,7 @@
371
386
  "original": {
372
387
  "$value": "{base.color.blue.4}",
373
388
  "$type": "color",
389
+ "$description": "Subtle accent background for informational or selected elements",
374
390
  "$extensions": {
375
391
  "org.primer.figma": {
376
392
  "collection": "mode",
@@ -388,6 +404,10 @@
388
404
  "isSource": true,
389
405
  "$type": "color"
390
406
  }
407
+ },
408
+ "org.primer.llm": {
409
+ "usage": ["selected-row", "info-banner", "active-nav-item", "highlight"],
410
+ "rules": "Use for selected states or informational highlights. Pair with fgColor.accent for text."
391
411
  }
392
412
  },
393
413
  "alpha": 0.1,
@@ -401,6 +421,7 @@
401
421
  "key": "{bgColor.attention.emphasis}",
402
422
  "$value": "#7b4900",
403
423
  "$type": "color",
424
+ "$description": "Strong attention background for prominent warnings",
404
425
  "$extensions": {
405
426
  "org.primer.figma": {
406
427
  "collection": "mode",
@@ -415,6 +436,10 @@
415
436
  "dark-dimmed-high-contrast": "#ae7104",
416
437
  "dark-protanopia-deuteranopia-high-contrast": "#7b4900",
417
438
  "dark-tritanopia-high-contrast": "#7b4900"
439
+ },
440
+ "org.primer.llm": {
441
+ "usage": ["warning-badge", "caution-label", "attention-indicator"],
442
+ "rules": "Use for prominent warnings. Consider fgColor.default for text due to yellow contrast."
418
443
  }
419
444
  },
420
445
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -422,6 +447,7 @@
422
447
  "original": {
423
448
  "$value": "{base.color.yellow.9}",
424
449
  "$type": "color",
450
+ "$description": "Strong attention background for prominent warnings",
425
451
  "$extensions": {
426
452
  "org.primer.figma": {
427
453
  "collection": "mode",
@@ -436,6 +462,10 @@
436
462
  "dark-dimmed-high-contrast": "{base.color.yellow.7}",
437
463
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.yellow.9}",
438
464
  "dark-tritanopia-high-contrast": "{base.color.yellow.9}"
465
+ },
466
+ "org.primer.llm": {
467
+ "usage": ["warning-badge", "caution-label", "attention-indicator"],
468
+ "rules": "Use for prominent warnings. Consider fgColor.default for text due to yellow contrast."
439
469
  }
440
470
  },
441
471
  "key": "{bgColor.attention.emphasis}"
@@ -448,6 +478,7 @@
448
478
  "key": "{bgColor.attention.muted}",
449
479
  "$value": "#edaa2726",
450
480
  "$type": "color",
481
+ "$description": "Subtle attention background for warnings and caution states",
451
482
  "$extensions": {
452
483
  "org.primer.figma": {
453
484
  "collection": "mode",
@@ -465,6 +496,10 @@
465
496
  "isSource": true,
466
497
  "$type": "color"
467
498
  }
499
+ },
500
+ "org.primer.llm": {
501
+ "usage": ["warning-banner", "caution-message", "pending-state"],
502
+ "rules": "Use for warnings that need user attention. Pair with fgColor.attention for text."
468
503
  }
469
504
  },
470
505
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -473,6 +508,7 @@
473
508
  "original": {
474
509
  "$value": "{base.color.yellow.4}",
475
510
  "$type": "color",
511
+ "$description": "Subtle attention background for warnings and caution states",
476
512
  "$extensions": {
477
513
  "org.primer.figma": {
478
514
  "collection": "mode",
@@ -490,6 +526,10 @@
490
526
  "isSource": true,
491
527
  "$type": "color"
492
528
  }
529
+ },
530
+ "org.primer.llm": {
531
+ "usage": ["warning-banner", "caution-message", "pending-state"],
532
+ "rules": "Use for warnings that need user attention. Pair with fgColor.attention for text."
493
533
  }
494
534
  },
495
535
  "alpha": 0.15,
@@ -503,6 +543,7 @@
503
543
  "key": "{bgColor.black}",
504
544
  "$value": "#010409",
505
545
  "$type": "color",
546
+ "$description": "Pure black background",
506
547
  "$extensions": {
507
548
  "org.primer.figma": {
508
549
  "collection": "mode",
@@ -511,6 +552,10 @@
511
552
  },
512
553
  "org.primer.overrides": {
513
554
  "dark": "#010409"
555
+ },
556
+ "org.primer.llm": {
557
+ "doNotUse": true,
558
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
514
559
  }
515
560
  },
516
561
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -518,6 +563,7 @@
518
563
  "original": {
519
564
  "$value": "{base.color.neutral.0}",
520
565
  "$type": "color",
566
+ "$description": "Pure black background",
521
567
  "$extensions": {
522
568
  "org.primer.figma": {
523
569
  "collection": "mode",
@@ -526,6 +572,10 @@
526
572
  },
527
573
  "org.primer.overrides": {
528
574
  "dark": "{base.color.neutral.0}"
575
+ },
576
+ "org.primer.llm": {
577
+ "doNotUse": true,
578
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
529
579
  }
530
580
  },
531
581
  "key": "{bgColor.black}"
@@ -538,6 +588,7 @@
538
588
  "key": "{bgColor.closed.emphasis}",
539
589
  "$value": "#3d444d",
540
590
  "$type": "color",
591
+ "$description": "Strong background for closed state badges and labels",
541
592
  "$extensions": {
542
593
  "org.primer.figma": {
543
594
  "collection": "mode",
@@ -556,6 +607,10 @@
556
607
  "light-protanopia-deuteranopia-high-contrast": "#3d444d",
557
608
  "dark-protanopia-deuteranopia": "#3d444d",
558
609
  "dark-protanopia-deuteranopia-high-contrast": "#3d444d"
610
+ },
611
+ "org.primer.llm": {
612
+ "usage": ["closed-badge", "closed-label", "declined-status-badge"],
613
+ "rules": "Use for prominent closed/declined state indicators. Pair with fgColor.onEmphasis for text."
559
614
  }
560
615
  },
561
616
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -563,6 +618,7 @@
563
618
  "original": {
564
619
  "$value": "{bgColor.neutral.emphasis}",
565
620
  "$type": "color",
621
+ "$description": "Strong background for closed state badges and labels",
566
622
  "$extensions": {
567
623
  "org.primer.figma": {
568
624
  "collection": "mode",
@@ -581,6 +637,10 @@
581
637
  "light-protanopia-deuteranopia-high-contrast": "{bgColor.neutral.emphasis}",
582
638
  "dark-protanopia-deuteranopia": "{bgColor.neutral.emphasis}",
583
639
  "dark-protanopia-deuteranopia-high-contrast": "{bgColor.neutral.emphasis}"
640
+ },
641
+ "org.primer.llm": {
642
+ "usage": ["closed-badge", "closed-label", "declined-status-badge"],
643
+ "rules": "Use for prominent closed/declined state indicators. Pair with fgColor.onEmphasis for text."
584
644
  }
585
645
  },
586
646
  "key": "{bgColor.closed.emphasis}"
@@ -593,6 +653,7 @@
593
653
  "key": "{bgColor.closed.muted}",
594
654
  "$value": "#2128301a",
595
655
  "$type": "color",
656
+ "$description": "Subtle background for closed state indicators (issues, PRs)",
596
657
  "$extensions": {
597
658
  "org.primer.figma": {
598
659
  "collection": "mode",
@@ -628,6 +689,10 @@
628
689
  "isSource": true,
629
690
  "$type": "color"
630
691
  }
692
+ },
693
+ "org.primer.llm": {
694
+ "usage": ["closed-issue", "closed-pr", "declined-state"],
695
+ "rules": "Use for closed/declined status indicators. Specifically for GitHub issues and PRs."
631
696
  }
632
697
  },
633
698
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -636,6 +701,7 @@
636
701
  "original": {
637
702
  "$value": "{bgColor.neutral.muted}",
638
703
  "$type": "color",
704
+ "$description": "Subtle background for closed state indicators (issues, PRs)",
639
705
  "$extensions": {
640
706
  "org.primer.figma": {
641
707
  "collection": "mode",
@@ -671,6 +737,10 @@
671
737
  "isSource": true,
672
738
  "$type": "color"
673
739
  }
740
+ },
741
+ "org.primer.llm": {
742
+ "usage": ["closed-issue", "closed-pr", "declined-state"],
743
+ "rules": "Use for closed/declined status indicators. Specifically for GitHub issues and PRs."
674
744
  }
675
745
  },
676
746
  "alpha": 0.1,
@@ -684,6 +754,7 @@
684
754
  "key": "{bgColor.danger.emphasis}",
685
755
  "$value": "#8f3c00",
686
756
  "$type": "color",
757
+ "$description": "Emphasized danger background for critical errors and delete confirmations",
687
758
  "$extensions": {
688
759
  "org.primer.figma": {
689
760
  "collection": "mode",
@@ -701,6 +772,10 @@
701
772
  "dark-high-contrast": "#ad0116",
702
773
  "dark-dimmed-high-contrast": "#e82a2f",
703
774
  "dark-tritanopia-high-contrast": "#ad0116"
775
+ },
776
+ "org.primer.llm": {
777
+ "usage": ["delete-button", "critical-alert", "destructive-confirmation"],
778
+ "rules": "MUST use for destructive action buttons like delete. Use fgColor.onEmphasis for text on this background."
704
779
  }
705
780
  },
706
781
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -708,6 +783,7 @@
708
783
  "original": {
709
784
  "$value": "{base.color.orange.9}",
710
785
  "$type": "color",
786
+ "$description": "Emphasized danger background for critical errors and delete confirmations",
711
787
  "$extensions": {
712
788
  "org.primer.figma": {
713
789
  "collection": "mode",
@@ -725,6 +801,10 @@
725
801
  "dark-high-contrast": "{base.color.red.9}",
726
802
  "dark-dimmed-high-contrast": "{base.color.red.7}",
727
803
  "dark-tritanopia-high-contrast": "{base.color.red.9}"
804
+ },
805
+ "org.primer.llm": {
806
+ "usage": ["delete-button", "critical-alert", "destructive-confirmation"],
807
+ "rules": "MUST use for destructive action buttons like delete. Use fgColor.onEmphasis for text on this background."
728
808
  }
729
809
  },
730
810
  "key": "{bgColor.danger.emphasis}"
@@ -737,6 +817,7 @@
737
817
  "key": "{bgColor.danger.muted}",
738
818
  "$value": "#ff80801a",
739
819
  "$type": "color",
820
+ "$description": "Muted danger background for error states and destructive action contexts",
740
821
  "$extensions": {
741
822
  "org.primer.figma": {
742
823
  "collection": "mode",
@@ -763,6 +844,10 @@
763
844
  "isSource": true,
764
845
  "$type": "color"
765
846
  }
847
+ },
848
+ "org.primer.llm": {
849
+ "usage": ["error-message", "destructive-action", "validation-error"],
850
+ "rules": "Use for error states and destructive action backgrounds. Pair with fgColor.danger for text."
766
851
  }
767
852
  },
768
853
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -771,6 +856,7 @@
771
856
  "original": {
772
857
  "$value": "{base.color.red.4}",
773
858
  "$type": "color",
859
+ "$description": "Muted danger background for error states and destructive action contexts",
774
860
  "$extensions": {
775
861
  "org.primer.figma": {
776
862
  "collection": "mode",
@@ -797,6 +883,10 @@
797
883
  "isSource": true,
798
884
  "$type": "color"
799
885
  }
886
+ },
887
+ "org.primer.llm": {
888
+ "usage": ["error-message", "destructive-action", "validation-error"],
889
+ "rules": "Use for error states and destructive action backgrounds. Pair with fgColor.danger for text."
800
890
  }
801
891
  },
802
892
  "alpha": 0.1,
@@ -810,6 +900,7 @@
810
900
  "key": "{bgColor.default}",
811
901
  "$value": "#010409",
812
902
  "$type": "color",
903
+ "$description": "Default background color for pages and main content areas",
813
904
  "$extensions": {
814
905
  "org.primer.figma": {
815
906
  "collection": "mode",
@@ -826,6 +917,10 @@
826
917
  "dark-high-contrast": "#010409",
827
918
  "dark-tritanopia-high-contrast": "#010409",
828
919
  "dark-protanopia-deuteranopia-high-contrast": "#010409"
920
+ },
921
+ "org.primer.llm": {
922
+ "usage": ["page-background", "main-content", "card-background"],
923
+ "rules": "Use as the primary background for pages and content areas. Do NOT use for emphasis or highlighting."
829
924
  }
830
925
  },
831
926
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -833,6 +928,7 @@
833
928
  "original": {
834
929
  "$value": "{base.color.neutral.0}",
835
930
  "$type": "color",
931
+ "$description": "Default background color for pages and main content areas",
836
932
  "$extensions": {
837
933
  "org.primer.figma": {
838
934
  "collection": "mode",
@@ -849,6 +945,10 @@
849
945
  "dark-high-contrast": "{base.color.neutral.0}",
850
946
  "dark-tritanopia-high-contrast": "{base.color.neutral.0}",
851
947
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.0}"
948
+ },
949
+ "org.primer.llm": {
950
+ "usage": ["page-background", "main-content", "card-background"],
951
+ "rules": "Use as the primary background for pages and content areas. Do NOT use for emphasis or highlighting."
852
952
  }
853
953
  },
854
954
  "key": "{bgColor.default}"
@@ -861,6 +961,7 @@
861
961
  "key": "{bgColor.disabled}",
862
962
  "$value": "#262c36",
863
963
  "$type": "color",
964
+ "$description": "Background for disabled interactive elements",
864
965
  "$extensions": {
865
966
  "org.primer.figma": {
866
967
  "collection": "mode",
@@ -877,6 +978,10 @@
877
978
  "dark-high-contrast": "#262c36",
878
979
  "dark-tritanopia-high-contrast": "#262c36",
879
980
  "dark-protanopia-deuteranopia-high-contrast": "#262c36"
981
+ },
982
+ "org.primer.llm": {
983
+ "usage": ["disabled-button", "disabled-input", "inactive-element"],
984
+ "rules": "MUST use for disabled state backgrounds. Pair with fgColor.disabled for text. Do NOT use for active elements."
880
985
  }
881
986
  },
882
987
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -884,6 +989,7 @@
884
989
  "original": {
885
990
  "$value": "{base.color.neutral.4}",
886
991
  "$type": "color",
992
+ "$description": "Background for disabled interactive elements",
887
993
  "$extensions": {
888
994
  "org.primer.figma": {
889
995
  "collection": "mode",
@@ -900,6 +1006,10 @@
900
1006
  "dark-high-contrast": "{base.color.neutral.4}",
901
1007
  "dark-tritanopia-high-contrast": "{base.color.neutral.4}",
902
1008
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.4}"
1009
+ },
1010
+ "org.primer.llm": {
1011
+ "usage": ["disabled-button", "disabled-input", "inactive-element"],
1012
+ "rules": "MUST use for disabled state backgrounds. Pair with fgColor.disabled for text. Do NOT use for active elements."
903
1013
  }
904
1014
  },
905
1015
  "key": "{bgColor.disabled}"
@@ -912,6 +1022,7 @@
912
1022
  "key": "{bgColor.done.emphasis}",
913
1023
  "$value": "#6921d7",
914
1024
  "$type": "color",
1025
+ "$description": "Strong background for completed/done state badges and labels",
915
1026
  "$extensions": {
916
1027
  "org.primer.figma": {
917
1028
  "collection": "mode",
@@ -926,6 +1037,10 @@
926
1037
  "dark-dimmed-high-contrast": "#954ffd",
927
1038
  "dark-tritanopia-high-contrast": "#6921d7",
928
1039
  "dark-protanopia-deuteranopia-high-contrast": "#6921d7"
1040
+ },
1041
+ "org.primer.llm": {
1042
+ "usage": ["done-badge", "merged-label", "completed-indicator"],
1043
+ "rules": "Use for prominent done/completed state indicators. Pair with fgColor.onEmphasis for text."
929
1044
  }
930
1045
  },
931
1046
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -933,6 +1048,7 @@
933
1048
  "original": {
934
1049
  "$value": "{base.color.purple.9}",
935
1050
  "$type": "color",
1051
+ "$description": "Strong background for completed/done state badges and labels",
936
1052
  "$extensions": {
937
1053
  "org.primer.figma": {
938
1054
  "collection": "mode",
@@ -947,6 +1063,10 @@
947
1063
  "dark-dimmed-high-contrast": "{base.color.purple.7}",
948
1064
  "dark-tritanopia-high-contrast": "{base.color.purple.9}",
949
1065
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.purple.9}"
1066
+ },
1067
+ "org.primer.llm": {
1068
+ "usage": ["done-badge", "merged-label", "completed-indicator"],
1069
+ "rules": "Use for prominent done/completed state indicators. Pair with fgColor.onEmphasis for text."
950
1070
  }
951
1071
  },
952
1072
  "key": "{bgColor.done.emphasis}"
@@ -959,6 +1079,7 @@
959
1079
  "key": "{bgColor.done.muted}",
960
1080
  "$value": "#bf8fff26",
961
1081
  "$type": "color",
1082
+ "$description": "Subtle background for completed/done state indicators",
962
1083
  "$extensions": {
963
1084
  "org.primer.figma": {
964
1085
  "collection": "mode",
@@ -976,6 +1097,10 @@
976
1097
  "isSource": true,
977
1098
  "$type": "color"
978
1099
  }
1100
+ },
1101
+ "org.primer.llm": {
1102
+ "usage": ["completed-task", "merged-pr", "done-state"],
1103
+ "rules": "Use for completed/done status indicators. Conveys finished or merged state."
979
1104
  }
980
1105
  },
981
1106
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -984,6 +1109,7 @@
984
1109
  "original": {
985
1110
  "$value": "{base.color.purple.4}",
986
1111
  "$type": "color",
1112
+ "$description": "Subtle background for completed/done state indicators",
987
1113
  "$extensions": {
988
1114
  "org.primer.figma": {
989
1115
  "collection": "mode",
@@ -1001,6 +1127,10 @@
1001
1127
  "isSource": true,
1002
1128
  "$type": "color"
1003
1129
  }
1130
+ },
1131
+ "org.primer.llm": {
1132
+ "usage": ["completed-task", "merged-pr", "done-state"],
1133
+ "rules": "Use for completed/done status indicators. Conveys finished or merged state."
1004
1134
  }
1005
1135
  },
1006
1136
  "alpha": 0.15,
@@ -1014,6 +1144,7 @@
1014
1144
  "key": "{bgColor.draft.emphasis}",
1015
1145
  "$value": "#3d444d",
1016
1146
  "$type": "color",
1147
+ "$description": "Strong background for draft state badges and labels",
1017
1148
  "$extensions": {
1018
1149
  "org.primer.figma": {
1019
1150
  "collection": "mode",
@@ -1022,6 +1153,10 @@
1022
1153
  "codeSyntax": {
1023
1154
  "web": "var(--bgColor-draft-emphasis)"
1024
1155
  }
1156
+ },
1157
+ "org.primer.llm": {
1158
+ "usage": ["draft-badge", "draft-label", "wip-indicator"],
1159
+ "rules": "Use for prominent draft state indicators. Pair with fgColor.onEmphasis for text."
1025
1160
  }
1026
1161
  },
1027
1162
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1029,6 +1164,7 @@
1029
1164
  "original": {
1030
1165
  "$value": "{bgColor.neutral.emphasis}",
1031
1166
  "$type": "color",
1167
+ "$description": "Strong background for draft state badges and labels",
1032
1168
  "$extensions": {
1033
1169
  "org.primer.figma": {
1034
1170
  "collection": "mode",
@@ -1037,6 +1173,10 @@
1037
1173
  "codeSyntax": {
1038
1174
  "web": "var(--bgColor-draft-emphasis)"
1039
1175
  }
1176
+ },
1177
+ "org.primer.llm": {
1178
+ "usage": ["draft-badge", "draft-label", "wip-indicator"],
1179
+ "rules": "Use for prominent draft state indicators. Pair with fgColor.onEmphasis for text."
1040
1180
  }
1041
1181
  },
1042
1182
  "key": "{bgColor.draft.emphasis}"
@@ -1049,6 +1189,7 @@
1049
1189
  "key": "{bgColor.draft.muted}",
1050
1190
  "$value": "#2128301a",
1051
1191
  "$type": "color",
1192
+ "$description": "Subtle background for draft state indicators",
1052
1193
  "$extensions": {
1053
1194
  "org.primer.figma": {
1054
1195
  "collection": "mode",
@@ -1084,6 +1225,10 @@
1084
1225
  "isSource": true,
1085
1226
  "$type": "color"
1086
1227
  }
1228
+ },
1229
+ "org.primer.llm": {
1230
+ "usage": ["draft-pr", "draft-issue", "work-in-progress"],
1231
+ "rules": "Use for draft/WIP status indicators. Conveys incomplete or pending state."
1087
1232
  }
1088
1233
  },
1089
1234
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1092,6 +1237,7 @@
1092
1237
  "original": {
1093
1238
  "$value": "{bgColor.neutral.muted}",
1094
1239
  "$type": "color",
1240
+ "$description": "Subtle background for draft state indicators",
1095
1241
  "$extensions": {
1096
1242
  "org.primer.figma": {
1097
1243
  "collection": "mode",
@@ -1127,6 +1273,10 @@
1127
1273
  "isSource": true,
1128
1274
  "$type": "color"
1129
1275
  }
1276
+ },
1277
+ "org.primer.llm": {
1278
+ "usage": ["draft-pr", "draft-issue", "work-in-progress"],
1279
+ "rules": "Use for draft/WIP status indicators. Conveys incomplete or pending state."
1130
1280
  }
1131
1281
  },
1132
1282
  "alpha": 0.1,
@@ -1140,6 +1290,7 @@
1140
1290
  "key": "{bgColor.emphasis}",
1141
1291
  "$value": "#3d444d",
1142
1292
  "$type": "color",
1293
+ "$description": "High-emphasis dark background for strong visual contrast",
1143
1294
  "$extensions": {
1144
1295
  "org.primer.figma": {
1145
1296
  "collection": "mode",
@@ -1151,6 +1302,10 @@
1151
1302
  },
1152
1303
  "org.primer.overrides": {
1153
1304
  "dark": "#3d444d"
1305
+ },
1306
+ "org.primer.llm": {
1307
+ "usage": ["tooltip", "badge-background", "high-contrast-element"],
1308
+ "rules": "Use for elements needing strong visual emphasis. Pair with fgColor.onEmphasis for text. Do NOT use for large areas."
1154
1309
  }
1155
1310
  },
1156
1311
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1158,6 +1313,7 @@
1158
1313
  "original": {
1159
1314
  "$value": "{base.color.neutral.7}",
1160
1315
  "$type": "color",
1316
+ "$description": "High-emphasis dark background for strong visual contrast",
1161
1317
  "$extensions": {
1162
1318
  "org.primer.figma": {
1163
1319
  "collection": "mode",
@@ -1169,6 +1325,10 @@
1169
1325
  },
1170
1326
  "org.primer.overrides": {
1171
1327
  "dark": "{base.color.neutral.7}"
1328
+ },
1329
+ "org.primer.llm": {
1330
+ "usage": ["tooltip", "badge-background", "high-contrast-element"],
1331
+ "rules": "Use for elements needing strong visual emphasis. Pair with fgColor.onEmphasis for text. Do NOT use for large areas."
1172
1332
  }
1173
1333
  },
1174
1334
  "key": "{bgColor.emphasis}"
@@ -1181,6 +1341,7 @@
1181
1341
  "key": "{bgColor.inset}",
1182
1342
  "$value": "#010409",
1183
1343
  "$type": "color",
1344
+ "$description": "Inset background for recessed content areas like wells or sunken panels",
1184
1345
  "$extensions": {
1185
1346
  "org.primer.figma": {
1186
1347
  "collection": "mode",
@@ -1197,6 +1358,10 @@
1197
1358
  "light-high-contrast": "#151b23",
1198
1359
  "light-tritanopia-high-contrast": "#151b23",
1199
1360
  "light-protanopia-deuteranopia-high-contrast": "#151b23"
1361
+ },
1362
+ "org.primer.llm": {
1363
+ "usage": ["well", "sunken-panel", "recessed-area", "input-background"],
1364
+ "rules": "Use for visually recessed areas. Creates depth hierarchy. Suitable for input fields and wells."
1200
1365
  }
1201
1366
  },
1202
1367
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1204,6 +1369,7 @@
1204
1369
  "original": {
1205
1370
  "$value": "{base.color.neutral.0}",
1206
1371
  "$type": "color",
1372
+ "$description": "Inset background for recessed content areas like wells or sunken panels",
1207
1373
  "$extensions": {
1208
1374
  "org.primer.figma": {
1209
1375
  "collection": "mode",
@@ -1220,6 +1386,10 @@
1220
1386
  "light-high-contrast": "{base.color.neutral.2}",
1221
1387
  "light-tritanopia-high-contrast": "{base.color.neutral.2}",
1222
1388
  "light-protanopia-deuteranopia-high-contrast": "{base.color.neutral.2}"
1389
+ },
1390
+ "org.primer.llm": {
1391
+ "usage": ["well", "sunken-panel", "recessed-area", "input-background"],
1392
+ "rules": "Use for visually recessed areas. Creates depth hierarchy. Suitable for input fields and wells."
1223
1393
  }
1224
1394
  },
1225
1395
  "key": "{bgColor.inset}"
@@ -1232,6 +1402,7 @@
1232
1402
  "key": "{bgColor.inverse}",
1233
1403
  "$value": "#ffffff",
1234
1404
  "$type": "color",
1405
+ "$description": "Inverse background that flips between light and dark modes",
1235
1406
  "$extensions": {
1236
1407
  "org.primer.figma": {
1237
1408
  "collection": "mode",
@@ -1240,6 +1411,10 @@
1240
1411
  },
1241
1412
  "org.primer.overrides": {
1242
1413
  "dark": "#ffffff"
1414
+ },
1415
+ "org.primer.llm": {
1416
+ "usage": ["overlay-content", "inverse-theme-element"],
1417
+ "rules": "Use when you need opposite theme background. Pair with fgColor.onInverse for text."
1243
1418
  }
1244
1419
  },
1245
1420
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1247,6 +1422,7 @@
1247
1422
  "original": {
1248
1423
  "$value": "{base.color.neutral.13}",
1249
1424
  "$type": "color",
1425
+ "$description": "Inverse background that flips between light and dark modes",
1250
1426
  "$extensions": {
1251
1427
  "org.primer.figma": {
1252
1428
  "collection": "mode",
@@ -1255,6 +1431,10 @@
1255
1431
  },
1256
1432
  "org.primer.overrides": {
1257
1433
  "dark": "{base.color.neutral.13}"
1434
+ },
1435
+ "org.primer.llm": {
1436
+ "usage": ["overlay-content", "inverse-theme-element"],
1437
+ "rules": "Use when you need opposite theme background. Pair with fgColor.onInverse for text."
1258
1438
  }
1259
1439
  },
1260
1440
  "key": "{bgColor.inverse}"
@@ -1267,6 +1447,7 @@
1267
1447
  "key": "{bgColor.muted}",
1268
1448
  "$value": "#151b23",
1269
1449
  "$type": "color",
1450
+ "$description": "Muted background for secondary content areas and subtle grouping",
1270
1451
  "$extensions": {
1271
1452
  "org.primer.figma": {
1272
1453
  "collection": "mode",
@@ -1286,6 +1467,10 @@
1286
1467
  "dark-high-contrast": "#151b23",
1287
1468
  "dark-tritanopia-high-contrast": "#151b23",
1288
1469
  "dark-protanopia-deuteranopia-high-contrast": "#151b23"
1470
+ },
1471
+ "org.primer.llm": {
1472
+ "usage": ["secondary-content", "code-block-background", "table-header", "sidebar"],
1473
+ "rules": "Use for secondary content areas or to create visual grouping. Do NOT use for primary page backgrounds."
1289
1474
  }
1290
1475
  },
1291
1476
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1293,6 +1478,7 @@
1293
1478
  "original": {
1294
1479
  "$value": "{base.color.neutral.2}",
1295
1480
  "$type": "color",
1481
+ "$description": "Muted background for secondary content areas and subtle grouping",
1296
1482
  "$extensions": {
1297
1483
  "org.primer.figma": {
1298
1484
  "collection": "mode",
@@ -1312,6 +1498,10 @@
1312
1498
  "dark-high-contrast": "{base.color.neutral.2}",
1313
1499
  "dark-tritanopia-high-contrast": "{base.color.neutral.2}",
1314
1500
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.2}"
1501
+ },
1502
+ "org.primer.llm": {
1503
+ "usage": ["secondary-content", "code-block-background", "table-header", "sidebar"],
1504
+ "rules": "Use for secondary content areas or to create visual grouping. Do NOT use for primary page backgrounds."
1315
1505
  }
1316
1506
  },
1317
1507
  "key": "{bgColor.muted}"
@@ -1324,6 +1514,7 @@
1324
1514
  "key": "{bgColor.neutral.emphasis}",
1325
1515
  "$value": "#3d444d",
1326
1516
  "$type": "color",
1517
+ "$description": "Strong neutral background for prominent neutral elements",
1327
1518
  "$extensions": {
1328
1519
  "org.primer.figma": {
1329
1520
  "collection": "mode",
@@ -1340,6 +1531,10 @@
1340
1531
  "dark-high-contrast": "#3d444d",
1341
1532
  "dark-tritanopia-high-contrast": "#3d444d",
1342
1533
  "dark-protanopia-deuteranopia-high-contrast": "#3d444d"
1534
+ },
1535
+ "org.primer.llm": {
1536
+ "usage": ["neutral-button", "secondary-action", "neutral-indicator"],
1537
+ "rules": "Use for emphasized neutral elements. Pair with fgColor.onEmphasis for text."
1343
1538
  }
1344
1539
  },
1345
1540
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1347,6 +1542,7 @@
1347
1542
  "original": {
1348
1543
  "$value": "{base.color.neutral.7}",
1349
1544
  "$type": "color",
1545
+ "$description": "Strong neutral background for prominent neutral elements",
1350
1546
  "$extensions": {
1351
1547
  "org.primer.figma": {
1352
1548
  "collection": "mode",
@@ -1363,6 +1559,10 @@
1363
1559
  "dark-high-contrast": "{base.color.neutral.7}",
1364
1560
  "dark-tritanopia-high-contrast": "{base.color.neutral.7}",
1365
1561
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.7}"
1562
+ },
1563
+ "org.primer.llm": {
1564
+ "usage": ["neutral-button", "secondary-action", "neutral-indicator"],
1565
+ "rules": "Use for emphasized neutral elements. Pair with fgColor.onEmphasis for text."
1366
1566
  }
1367
1567
  },
1368
1568
  "key": "{bgColor.neutral.emphasis}"
@@ -1375,6 +1575,7 @@
1375
1575
  "key": "{bgColor.neutral.muted}",
1376
1576
  "$value": "#212830",
1377
1577
  "$type": "color",
1578
+ "$description": "Subtle neutral background for tags, labels, and secondary UI elements",
1378
1579
  "$extensions": {
1379
1580
  "org.primer.figma": {
1380
1581
  "collection": "mode",
@@ -1402,6 +1603,10 @@
1402
1603
  "dark-high-contrast": "#212830",
1403
1604
  "dark-tritanopia-high-contrast": "#212830",
1404
1605
  "dark-protanopia-deuteranopia-high-contrast": "#212830"
1606
+ },
1607
+ "org.primer.llm": {
1608
+ "usage": ["neutral-label", "neutral-badge", "secondary-tag", "counter"],
1609
+ "rules": "Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators."
1405
1610
  }
1406
1611
  },
1407
1612
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1409,6 +1614,7 @@
1409
1614
  "original": {
1410
1615
  "$value": "{base.color.neutral.3}",
1411
1616
  "$type": "color",
1617
+ "$description": "Subtle neutral background for tags, labels, and secondary UI elements",
1412
1618
  "$extensions": {
1413
1619
  "org.primer.figma": {
1414
1620
  "collection": "mode",
@@ -1436,6 +1642,10 @@
1436
1642
  "dark-high-contrast": "{base.color.neutral.3}",
1437
1643
  "dark-tritanopia-high-contrast": "{base.color.neutral.3}",
1438
1644
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.3}"
1645
+ },
1646
+ "org.primer.llm": {
1647
+ "usage": ["neutral-label", "neutral-badge", "secondary-tag", "counter"],
1648
+ "rules": "Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators."
1439
1649
  }
1440
1650
  },
1441
1651
  "key": "{bgColor.neutral.muted}"
@@ -1448,6 +1658,7 @@
1448
1658
  "key": "{bgColor.open.emphasis}",
1449
1659
  "$value": "#8f3c00",
1450
1660
  "$type": "color",
1661
+ "$description": "Strong background for open state badges and labels",
1451
1662
  "$extensions": {
1452
1663
  "org.primer.figma": {
1453
1664
  "collection": "mode",
@@ -1466,6 +1677,10 @@
1466
1677
  "light-protanopia-deuteranopia-high-contrast": "#e7811d",
1467
1678
  "dark-protanopia-deuteranopia": "#e7811d",
1468
1679
  "dark-protanopia-deuteranopia-high-contrast": "#8f3c00"
1680
+ },
1681
+ "org.primer.llm": {
1682
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1683
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1469
1684
  }
1470
1685
  },
1471
1686
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1473,6 +1688,7 @@
1473
1688
  "original": {
1474
1689
  "$value": "{base.color.orange.9}",
1475
1690
  "$type": "color",
1691
+ "$description": "Strong background for open state badges and labels",
1476
1692
  "$extensions": {
1477
1693
  "org.primer.figma": {
1478
1694
  "collection": "mode",
@@ -1491,6 +1707,10 @@
1491
1707
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
1492
1708
  "dark-protanopia-deuteranopia": "{base.color.orange.5}",
1493
1709
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1710
+ },
1711
+ "org.primer.llm": {
1712
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1713
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1494
1714
  }
1495
1715
  },
1496
1716
  "key": "{bgColor.open.emphasis}"
@@ -1503,6 +1723,7 @@
1503
1723
  "key": "{bgColor.open.muted}",
1504
1724
  "$value": "#f48b251a",
1505
1725
  "$type": "color",
1726
+ "$description": "Subtle background for open state indicators (issues, PRs)",
1506
1727
  "$extensions": {
1507
1728
  "org.primer.figma": {
1508
1729
  "collection": "mode",
@@ -1545,6 +1766,10 @@
1545
1766
  "isSource": true,
1546
1767
  "$type": "color"
1547
1768
  }
1769
+ },
1770
+ "org.primer.llm": {
1771
+ "usage": ["open-issue", "open-pr", "active-status"],
1772
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1548
1773
  }
1549
1774
  },
1550
1775
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1553,6 +1778,7 @@
1553
1778
  "original": {
1554
1779
  "$value": "{base.color.orange.4}",
1555
1780
  "$type": "color",
1781
+ "$description": "Subtle background for open state indicators (issues, PRs)",
1556
1782
  "$extensions": {
1557
1783
  "org.primer.figma": {
1558
1784
  "collection": "mode",
@@ -1595,6 +1821,10 @@
1595
1821
  "isSource": true,
1596
1822
  "$type": "color"
1597
1823
  }
1824
+ },
1825
+ "org.primer.llm": {
1826
+ "usage": ["open-issue", "open-pr", "active-status"],
1827
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1598
1828
  }
1599
1829
  },
1600
1830
  "alpha": 0.1,
@@ -1608,6 +1838,7 @@
1608
1838
  "key": "{bgColor.severe.emphasis}",
1609
1839
  "$value": "#8f3c00",
1610
1840
  "$type": "color",
1841
+ "$description": "Strong severe background for prominent high-priority warnings",
1611
1842
  "$extensions": {
1612
1843
  "org.primer.figma": {
1613
1844
  "collection": "mode",
@@ -1625,6 +1856,10 @@
1625
1856
  "dark-high-contrast": "#8f3c00",
1626
1857
  "dark-dimmed-high-contrast": "#bf5e0a",
1627
1858
  "dark-protanopia-deuteranopia-high-contrast": "#8f3c00"
1859
+ },
1860
+ "org.primer.llm": {
1861
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1862
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1628
1863
  }
1629
1864
  },
1630
1865
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1632,6 +1867,7 @@
1632
1867
  "original": {
1633
1868
  "$value": "{base.color.orange.9}",
1634
1869
  "$type": "color",
1870
+ "$description": "Strong severe background for prominent high-priority warnings",
1635
1871
  "$extensions": {
1636
1872
  "org.primer.figma": {
1637
1873
  "collection": "mode",
@@ -1649,6 +1885,10 @@
1649
1885
  "dark-high-contrast": "{base.color.orange.9}",
1650
1886
  "dark-dimmed-high-contrast": "{base.color.orange.7}",
1651
1887
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1888
+ },
1889
+ "org.primer.llm": {
1890
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1891
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1652
1892
  }
1653
1893
  },
1654
1894
  "key": "{bgColor.severe.emphasis}"
@@ -1661,6 +1901,7 @@
1661
1901
  "key": "{bgColor.severe.muted}",
1662
1902
  "$value": "#f48b251a",
1663
1903
  "$type": "color",
1904
+ "$description": "Subtle severe background for high-priority warnings",
1664
1905
  "$extensions": {
1665
1906
  "org.primer.figma": {
1666
1907
  "collection": "mode",
@@ -1687,6 +1928,10 @@
1687
1928
  "isSource": true,
1688
1929
  "$type": "color"
1689
1930
  }
1931
+ },
1932
+ "org.primer.llm": {
1933
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1934
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1690
1935
  }
1691
1936
  },
1692
1937
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1695,6 +1940,7 @@
1695
1940
  "original": {
1696
1941
  "$value": "{base.color.orange.4}",
1697
1942
  "$type": "color",
1943
+ "$description": "Subtle severe background for high-priority warnings",
1698
1944
  "$extensions": {
1699
1945
  "org.primer.figma": {
1700
1946
  "collection": "mode",
@@ -1721,6 +1967,10 @@
1721
1967
  "isSource": true,
1722
1968
  "$type": "color"
1723
1969
  }
1970
+ },
1971
+ "org.primer.llm": {
1972
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1973
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1724
1974
  }
1725
1975
  },
1726
1976
  "alpha": 0.1,
@@ -1734,6 +1984,7 @@
1734
1984
  "key": "{bgColor.sponsors.emphasis}",
1735
1985
  "$value": "#9c1d6a",
1736
1986
  "$type": "color",
1987
+ "$description": "Strong background for prominent GitHub Sponsors elements",
1737
1988
  "$extensions": {
1738
1989
  "org.primer.figma": {
1739
1990
  "collection": "mode",
@@ -1748,6 +1999,10 @@
1748
1999
  "dark-dimmed-high-contrast": "#d23d91",
1749
2000
  "dark-tritanopia-high-contrast": "#9c1d6a",
1750
2001
  "dark-protanopia-deuteranopia-high-contrast": "#9c1d6a"
2002
+ },
2003
+ "org.primer.llm": {
2004
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
2005
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1751
2006
  }
1752
2007
  },
1753
2008
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1755,6 +2010,7 @@
1755
2010
  "original": {
1756
2011
  "$value": "{base.color.pink.9}",
1757
2012
  "$type": "color",
2013
+ "$description": "Strong background for prominent GitHub Sponsors elements",
1758
2014
  "$extensions": {
1759
2015
  "org.primer.figma": {
1760
2016
  "collection": "mode",
@@ -1769,6 +2025,10 @@
1769
2025
  "dark-dimmed-high-contrast": "{base.color.pink.7}",
1770
2026
  "dark-tritanopia-high-contrast": "{base.color.pink.9}",
1771
2027
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.pink.9}"
2028
+ },
2029
+ "org.primer.llm": {
2030
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
2031
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1772
2032
  }
1773
2033
  },
1774
2034
  "key": "{bgColor.sponsors.emphasis}"
@@ -1781,6 +2041,7 @@
1781
2041
  "key": "{bgColor.sponsors.muted}",
1782
2042
  "$value": "#f87cbd1a",
1783
2043
  "$type": "color",
2044
+ "$description": "Subtle background for GitHub Sponsors content",
1784
2045
  "$extensions": {
1785
2046
  "org.primer.figma": {
1786
2047
  "collection": "mode",
@@ -1805,6 +2066,10 @@
1805
2066
  "isSource": true,
1806
2067
  "$type": "color"
1807
2068
  }
2069
+ },
2070
+ "org.primer.llm": {
2071
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2072
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1808
2073
  }
1809
2074
  },
1810
2075
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1813,6 +2078,7 @@
1813
2078
  "original": {
1814
2079
  "$value": "{base.color.pink.4}",
1815
2080
  "$type": "color",
2081
+ "$description": "Subtle background for GitHub Sponsors content",
1816
2082
  "$extensions": {
1817
2083
  "org.primer.figma": {
1818
2084
  "collection": "mode",
@@ -1837,6 +2103,10 @@
1837
2103
  "isSource": true,
1838
2104
  "$type": "color"
1839
2105
  }
2106
+ },
2107
+ "org.primer.llm": {
2108
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2109
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1840
2110
  }
1841
2111
  },
1842
2112
  "alpha": 0.1,
@@ -1850,6 +2120,7 @@
1850
2120
  "key": "{bgColor.success.emphasis}",
1851
2121
  "$value": "#194fb1",
1852
2122
  "$type": "color",
2123
+ "$description": "Strong success background for prominent positive actions",
1853
2124
  "$extensions": {
1854
2125
  "org.primer.figma": {
1855
2126
  "collection": "mode",
@@ -1872,6 +2143,10 @@
1872
2143
  "light-high-contrast": "#09b43a",
1873
2144
  "dark-high-contrast": "#006222",
1874
2145
  "dark-dimmed-high-contrast": "#008c2c"
2146
+ },
2147
+ "org.primer.llm": {
2148
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2149
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1875
2150
  }
1876
2151
  },
1877
2152
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1879,6 +2154,7 @@
1879
2154
  "original": {
1880
2155
  "$value": "{base.color.blue.9}",
1881
2156
  "$type": "color",
2157
+ "$description": "Strong success background for prominent positive actions",
1882
2158
  "$extensions": {
1883
2159
  "org.primer.figma": {
1884
2160
  "collection": "mode",
@@ -1901,6 +2177,10 @@
1901
2177
  "light-high-contrast": "{base.color.green.5}",
1902
2178
  "dark-high-contrast": "{base.color.green.9}",
1903
2179
  "dark-dimmed-high-contrast": "{base.color.green.7}"
2180
+ },
2181
+ "org.primer.llm": {
2182
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2183
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1904
2184
  }
1905
2185
  },
1906
2186
  "key": "{bgColor.success.emphasis}"
@@ -1913,6 +2193,7 @@
1913
2193
  "key": "{bgColor.success.muted}",
1914
2194
  "$value": "#5cacff33",
1915
2195
  "$type": "color",
2196
+ "$description": "Subtle success background for positive feedback and completed states",
1916
2197
  "$extensions": {
1917
2198
  "org.primer.figma": {
1918
2199
  "collection": "mode",
@@ -1962,6 +2243,10 @@
1962
2243
  "isSource": true,
1963
2244
  "$type": "color"
1964
2245
  }
2246
+ },
2247
+ "org.primer.llm": {
2248
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2249
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
1965
2250
  }
1966
2251
  },
1967
2252
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1970,6 +2255,7 @@
1970
2255
  "original": {
1971
2256
  "$value": "{base.color.blue.4}",
1972
2257
  "$type": "color",
2258
+ "$description": "Subtle success background for positive feedback and completed states",
1973
2259
  "$extensions": {
1974
2260
  "org.primer.figma": {
1975
2261
  "collection": "mode",
@@ -2019,6 +2305,10 @@
2019
2305
  "isSource": true,
2020
2306
  "$type": "color"
2021
2307
  }
2308
+ },
2309
+ "org.primer.llm": {
2310
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2311
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
2022
2312
  }
2023
2313
  },
2024
2314
  "alpha": 0.2,
@@ -2032,6 +2322,7 @@
2032
2322
  "key": "{bgColor.transparent}",
2033
2323
  "$value": "#00000000",
2034
2324
  "$type": "color",
2325
+ "$description": "Fully transparent background",
2035
2326
  "$extensions": {
2036
2327
  "org.primer.figma": {
2037
2328
  "collection": "mode",
@@ -2040,6 +2331,10 @@
2040
2331
  "codeSyntax": {
2041
2332
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2042
2333
  }
2334
+ },
2335
+ "org.primer.llm": {
2336
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2337
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2043
2338
  }
2044
2339
  },
2045
2340
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2047,6 +2342,7 @@
2047
2342
  "original": {
2048
2343
  "$value": "{base.color.transparent}",
2049
2344
  "$type": "color",
2345
+ "$description": "Fully transparent background",
2050
2346
  "$extensions": {
2051
2347
  "org.primer.figma": {
2052
2348
  "collection": "mode",
@@ -2055,6 +2351,10 @@
2055
2351
  "codeSyntax": {
2056
2352
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2057
2353
  }
2354
+ },
2355
+ "org.primer.llm": {
2356
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2357
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2058
2358
  }
2059
2359
  },
2060
2360
  "key": "{bgColor.transparent}"
@@ -2067,6 +2367,7 @@
2067
2367
  "key": "{bgColor.upsell.emphasis}",
2068
2368
  "$value": "#6921d7",
2069
2369
  "$type": "color",
2370
+ "$description": "Strong background for prominent upsell elements",
2070
2371
  "$extensions": {
2071
2372
  "org.primer.figma": {
2072
2373
  "collection": "mode",
@@ -2075,6 +2376,10 @@
2075
2376
  "codeSyntax": {
2076
2377
  "web": "var(--bgColor-upsell-emphasis)"
2077
2378
  }
2379
+ },
2380
+ "org.primer.llm": {
2381
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2382
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2078
2383
  }
2079
2384
  },
2080
2385
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2082,6 +2387,7 @@
2082
2387
  "original": {
2083
2388
  "$value": "{bgColor.done.emphasis}",
2084
2389
  "$type": "color",
2390
+ "$description": "Strong background for prominent upsell elements",
2085
2391
  "$extensions": {
2086
2392
  "org.primer.figma": {
2087
2393
  "collection": "mode",
@@ -2090,6 +2396,10 @@
2090
2396
  "codeSyntax": {
2091
2397
  "web": "var(--bgColor-upsell-emphasis)"
2092
2398
  }
2399
+ },
2400
+ "org.primer.llm": {
2401
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2402
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2093
2403
  }
2094
2404
  },
2095
2405
  "key": "{bgColor.upsell.emphasis}"
@@ -2102,6 +2412,7 @@
2102
2412
  "key": "{bgColor.upsell.muted}",
2103
2413
  "$value": "#bf8fff26",
2104
2414
  "$type": "color",
2415
+ "$description": "Subtle background for upsell and promotional content",
2105
2416
  "$extensions": {
2106
2417
  "org.primer.figma": {
2107
2418
  "collection": "mode",
@@ -2110,6 +2421,10 @@
2110
2421
  "codeSyntax": {
2111
2422
  "web": "var(--bgColor-upsell-muted)"
2112
2423
  }
2424
+ },
2425
+ "org.primer.llm": {
2426
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2427
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2113
2428
  }
2114
2429
  },
2115
2430
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2117,6 +2432,7 @@
2117
2432
  "original": {
2118
2433
  "$value": "{bgColor.done.muted}",
2119
2434
  "$type": "color",
2435
+ "$description": "Subtle background for upsell and promotional content",
2120
2436
  "$extensions": {
2121
2437
  "org.primer.figma": {
2122
2438
  "collection": "mode",
@@ -2125,6 +2441,10 @@
2125
2441
  "codeSyntax": {
2126
2442
  "web": "var(--bgColor-upsell-muted)"
2127
2443
  }
2444
+ },
2445
+ "org.primer.llm": {
2446
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2447
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2128
2448
  }
2129
2449
  },
2130
2450
  "key": "{bgColor.upsell.muted}"
@@ -2137,6 +2457,7 @@
2137
2457
  "key": "{bgColor.white}",
2138
2458
  "$value": "#ffffff",
2139
2459
  "$type": "color",
2460
+ "$description": "Pure white background",
2140
2461
  "$extensions": {
2141
2462
  "org.primer.figma": {
2142
2463
  "collection": "mode",
@@ -2145,6 +2466,10 @@
2145
2466
  },
2146
2467
  "org.primer.overrides": {
2147
2468
  "dark": "#ffffff"
2469
+ },
2470
+ "org.primer.llm": {
2471
+ "doNotUse": true,
2472
+ "rules": "Avoid using raw white. Use semantic alternatives: bgColor.default for standard backgrounds, bgColor.inset for recessed areas, or bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
2148
2473
  }
2149
2474
  },
2150
2475
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2152,6 +2477,7 @@
2152
2477
  "original": {
2153
2478
  "$value": "{base.color.neutral.13}",
2154
2479
  "$type": "color",
2480
+ "$description": "Pure white background",
2155
2481
  "$extensions": {
2156
2482
  "org.primer.figma": {
2157
2483
  "collection": "mode",
@@ -2160,6 +2486,10 @@
2160
2486
  },
2161
2487
  "org.primer.overrides": {
2162
2488
  "dark": "{base.color.neutral.13}"
2489
+ },
2490
+ "org.primer.llm": {
2491
+ "doNotUse": true,
2492
+ "rules": "Avoid using raw white. Use semantic alternatives: bgColor.default for standard backgrounds, bgColor.inset for recessed areas, or bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
2163
2493
  }
2164
2494
  },
2165
2495
  "key": "{bgColor.white}"
@@ -2170,7 +2500,7 @@
2170
2500
  },
2171
2501
  "border-accent-emphasis": {
2172
2502
  "key": "{border.accent.emphasis}",
2173
- "$value": "0.00390625rem,0.0625px solid #409eff",
2503
+ "$value": "0.0625rem,1px solid #409eff",
2174
2504
  "$type": "border",
2175
2505
  "filePath": "src/tokens/functional/border/border.json5",
2176
2506
  "isSource": true,
@@ -2189,7 +2519,7 @@
2189
2519
  },
2190
2520
  "border-accent-muted": {
2191
2521
  "key": "{border.accent.muted}",
2192
- "$value": "0.00390625rem,0.0625px solid #5cacff",
2522
+ "$value": "0.0625rem,1px solid #5cacff",
2193
2523
  "$type": "border",
2194
2524
  "filePath": "src/tokens/functional/border/border.json5",
2195
2525
  "isSource": true,
@@ -2208,7 +2538,7 @@
2208
2538
  },
2209
2539
  "border-attention-emphasis": {
2210
2540
  "key": "{border.attention.emphasis}",
2211
- "$value": "0.00390625rem,0.0625px solid #e09b13",
2541
+ "$value": "0.0625rem,1px solid #e09b13",
2212
2542
  "$type": "border",
2213
2543
  "filePath": "src/tokens/functional/border/border.json5",
2214
2544
  "isSource": true,
@@ -2227,7 +2557,7 @@
2227
2557
  },
2228
2558
  "border-attention-muted": {
2229
2559
  "key": "{border.attention.muted}",
2230
- "$value": "0.00390625rem,0.0625px solid #edaa27",
2560
+ "$value": "0.0625rem,1px solid #edaa27",
2231
2561
  "$type": "border",
2232
2562
  "filePath": "src/tokens/functional/border/border.json5",
2233
2563
  "isSource": true,
@@ -2246,7 +2576,7 @@
2246
2576
  },
2247
2577
  "border-closed-emphasis": {
2248
2578
  "key": "{border.closed.emphasis}",
2249
- "$value": "0.00390625rem,0.0625px solid #e7811d",
2579
+ "$value": "0.0625rem,1px solid #e7811d",
2250
2580
  "$type": "border",
2251
2581
  "filePath": "src/tokens/functional/border/border.json5",
2252
2582
  "isSource": true,
@@ -2261,7 +2591,7 @@
2261
2591
  },
2262
2592
  "border-closed-muted": {
2263
2593
  "key": "{border.closed.muted}",
2264
- "$value": "0.00390625rem,0.0625px solid #f48b25",
2594
+ "$value": "0.0625rem,1px solid #f48b25",
2265
2595
  "$type": "border",
2266
2596
  "filePath": "src/tokens/functional/border/border.json5",
2267
2597
  "isSource": true,
@@ -2276,7 +2606,7 @@
2276
2606
  },
2277
2607
  "border-danger-emphasis": {
2278
2608
  "key": "{border.danger.emphasis}",
2279
- "$value": "0.00390625rem,0.0625px solid #e7811d",
2609
+ "$value": "0.0625rem,1px solid #e7811d",
2280
2610
  "$type": "border",
2281
2611
  "filePath": "src/tokens/functional/border/border.json5",
2282
2612
  "isSource": true,
@@ -2295,7 +2625,7 @@
2295
2625
  },
2296
2626
  "border-danger-muted": {
2297
2627
  "key": "{border.danger.muted}",
2298
- "$value": "0.00390625rem,0.0625px solid #f48b25",
2628
+ "$value": "0.0625rem,1px solid #f48b25",
2299
2629
  "$type": "border",
2300
2630
  "filePath": "src/tokens/functional/border/border.json5",
2301
2631
  "isSource": true,
@@ -2314,7 +2644,7 @@
2314
2644
  },
2315
2645
  "border-default": {
2316
2646
  "key": "{border.default}",
2317
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2647
+ "$value": "0.0625rem,1px solid #b7bdc8",
2318
2648
  "$type": "border",
2319
2649
  "filePath": "src/tokens/functional/border/border.json5",
2320
2650
  "isSource": true,
@@ -2333,7 +2663,7 @@
2333
2663
  },
2334
2664
  "border-disabled": {
2335
2665
  "key": "{border.disabled}",
2336
- "$value": "0.00390625rem,0.0625px solid #656c761a",
2666
+ "$value": "0.0625rem,1px solid #656c761a",
2337
2667
  "$type": "border",
2338
2668
  "filePath": "src/tokens/functional/border/border.json5",
2339
2669
  "isSource": true,
@@ -2352,7 +2682,7 @@
2352
2682
  },
2353
2683
  "border-done-emphasis": {
2354
2684
  "key": "{border.done.emphasis}",
2355
- "$value": "0.00390625rem,0.0625px solid #b87fff",
2685
+ "$value": "0.0625rem,1px solid #b87fff",
2356
2686
  "$type": "border",
2357
2687
  "filePath": "src/tokens/functional/border/border.json5",
2358
2688
  "isSource": true,
@@ -2371,7 +2701,7 @@
2371
2701
  },
2372
2702
  "border-done-muted": {
2373
2703
  "key": "{border.done.muted}",
2374
- "$value": "0.00390625rem,0.0625px solid #bf8fff",
2704
+ "$value": "0.0625rem,1px solid #bf8fff",
2375
2705
  "$type": "border",
2376
2706
  "filePath": "src/tokens/functional/border/border.json5",
2377
2707
  "isSource": true,
@@ -2390,7 +2720,7 @@
2390
2720
  },
2391
2721
  "border-emphasis": {
2392
2722
  "key": "{border.emphasis}",
2393
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2723
+ "$value": "0.0625rem,1px solid #b7bdc8",
2394
2724
  "$type": "border",
2395
2725
  "filePath": "src/tokens/functional/border/border.json5",
2396
2726
  "isSource": true,
@@ -2409,7 +2739,7 @@
2409
2739
  },
2410
2740
  "border-muted": {
2411
2741
  "key": "{border.muted}",
2412
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2742
+ "$value": "0.0625rem,1px solid #b7bdc8",
2413
2743
  "$type": "border",
2414
2744
  "filePath": "src/tokens/functional/border/border.json5",
2415
2745
  "isSource": true,
@@ -2428,7 +2758,7 @@
2428
2758
  },
2429
2759
  "border-neutral-emphasis": {
2430
2760
  "key": "{border.neutral.emphasis}",
2431
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2761
+ "$value": "0.0625rem,1px solid #b7bdc8",
2432
2762
  "$type": "border",
2433
2763
  "filePath": "src/tokens/functional/border/border.json5",
2434
2764
  "isSource": true,
@@ -2447,7 +2777,7 @@
2447
2777
  },
2448
2778
  "border-neutral-muted": {
2449
2779
  "key": "{border.neutral.muted}",
2450
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2780
+ "$value": "0.0625rem,1px solid #b7bdc8",
2451
2781
  "$type": "border",
2452
2782
  "filePath": "src/tokens/functional/border/border.json5",
2453
2783
  "isSource": true,
@@ -2466,7 +2796,7 @@
2466
2796
  },
2467
2797
  "border-open-emphasis": {
2468
2798
  "key": "{border.open.emphasis}",
2469
- "$value": "0.00390625rem,0.0625px solid #409eff",
2799
+ "$value": "0.0625rem,1px solid #409eff",
2470
2800
  "$type": "border",
2471
2801
  "filePath": "src/tokens/functional/border/border.json5",
2472
2802
  "isSource": true,
@@ -2481,7 +2811,7 @@
2481
2811
  },
2482
2812
  "border-open-muted": {
2483
2813
  "key": "{border.open.muted}",
2484
- "$value": "0.00390625rem,0.0625px solid #5cacff",
2814
+ "$value": "0.0625rem,1px solid #5cacff",
2485
2815
  "$type": "border",
2486
2816
  "filePath": "src/tokens/functional/border/border.json5",
2487
2817
  "isSource": true,
@@ -2496,7 +2826,7 @@
2496
2826
  },
2497
2827
  "border-severe-emphasis": {
2498
2828
  "key": "{border.severe.emphasis}",
2499
- "$value": "0.00390625rem,0.0625px solid #e7811d",
2829
+ "$value": "0.0625rem,1px solid #e7811d",
2500
2830
  "$type": "border",
2501
2831
  "filePath": "src/tokens/functional/border/border.json5",
2502
2832
  "isSource": true,
@@ -2515,7 +2845,7 @@
2515
2845
  },
2516
2846
  "border-severe-muted": {
2517
2847
  "key": "{border.severe.muted}",
2518
- "$value": "0.00390625rem,0.0625px solid #e7811d",
2848
+ "$value": "0.0625rem,1px solid #e7811d",
2519
2849
  "$type": "border",
2520
2850
  "filePath": "src/tokens/functional/border/border.json5",
2521
2851
  "isSource": true,
@@ -2534,7 +2864,7 @@
2534
2864
  },
2535
2865
  "border-sponsors-emphasis": {
2536
2866
  "key": "{border.sponsors.emphasis}",
2537
- "$value": "0.00390625rem,0.0625px solid #ef6eb1",
2867
+ "$value": "0.0625rem,1px solid #ef6eb1",
2538
2868
  "$type": "border",
2539
2869
  "filePath": "src/tokens/functional/border/border.json5",
2540
2870
  "isSource": true,
@@ -2553,7 +2883,7 @@
2553
2883
  },
2554
2884
  "border-sponsors-muted": {
2555
2885
  "key": "{border.sponsors.muted}",
2556
- "$value": "0.00390625rem,0.0625px solid #f87cbd",
2886
+ "$value": "0.0625rem,1px solid #f87cbd",
2557
2887
  "$type": "border",
2558
2888
  "filePath": "src/tokens/functional/border/border.json5",
2559
2889
  "isSource": true,
@@ -2572,7 +2902,7 @@
2572
2902
  },
2573
2903
  "border-success-emphasis": {
2574
2904
  "key": "{border.success.emphasis}",
2575
- "$value": "0.00390625rem,0.0625px solid #409eff",
2905
+ "$value": "0.0625rem,1px solid #409eff",
2576
2906
  "$type": "border",
2577
2907
  "filePath": "src/tokens/functional/border/border.json5",
2578
2908
  "isSource": true,
@@ -2591,7 +2921,7 @@
2591
2921
  },
2592
2922
  "border-success-muted": {
2593
2923
  "key": "{border.success.muted}",
2594
- "$value": "0.00390625rem,0.0625px solid #5cacff",
2924
+ "$value": "0.0625rem,1px solid #5cacff",
2595
2925
  "$type": "border",
2596
2926
  "filePath": "src/tokens/functional/border/border.json5",
2597
2927
  "isSource": true,
@@ -2610,7 +2940,7 @@
2610
2940
  },
2611
2941
  "border-transparent": {
2612
2942
  "key": "{border.transparent}",
2613
- "$value": "0.00390625rem,0.0625px solid #00000000",
2943
+ "$value": "0.0625rem,1px solid #00000000",
2614
2944
  "$type": "border",
2615
2945
  "filePath": "src/tokens/functional/border/border.json5",
2616
2946
  "isSource": true,
@@ -2629,7 +2959,7 @@
2629
2959
  },
2630
2960
  "border-upsell-emphasis": {
2631
2961
  "key": "{border.upsell.emphasis}",
2632
- "$value": "0.00390625rem,0.0625px solid #b87fff",
2962
+ "$value": "0.0625rem,1px solid #b87fff",
2633
2963
  "$type": "border",
2634
2964
  "filePath": "src/tokens/functional/border/border.json5",
2635
2965
  "isSource": true,
@@ -2648,7 +2978,7 @@
2648
2978
  },
2649
2979
  "border-upsell-muted": {
2650
2980
  "key": "{border.upsell.muted}",
2651
- "$value": "0.00390625rem,0.0625px solid #bf8fff",
2981
+ "$value": "0.0625rem,1px solid #bf8fff",
2652
2982
  "$type": "border",
2653
2983
  "filePath": "src/tokens/functional/border/border.json5",
2654
2984
  "isSource": true,
@@ -2669,6 +2999,7 @@
2669
2999
  "key": "{borderColor.accent.emphasis}",
2670
3000
  "$value": "#409eff",
2671
3001
  "$type": "color",
3002
+ "$description": "Strong accent border for selected or focused elements",
2672
3003
  "$extensions": {
2673
3004
  "org.primer.figma": {
2674
3005
  "collection": "mode",
@@ -2680,6 +3011,10 @@
2680
3011
  },
2681
3012
  "org.primer.overrides": {
2682
3013
  "dark-dimmed-high-contrast": "#91cbff"
3014
+ },
3015
+ "org.primer.llm": {
3016
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3017
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2683
3018
  }
2684
3019
  },
2685
3020
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2687,6 +3022,7 @@
2687
3022
  "original": {
2688
3023
  "$value": "{base.color.blue.5}",
2689
3024
  "$type": "color",
3025
+ "$description": "Strong accent border for selected or focused elements",
2690
3026
  "$extensions": {
2691
3027
  "org.primer.figma": {
2692
3028
  "collection": "mode",
@@ -2698,6 +3034,10 @@
2698
3034
  },
2699
3035
  "org.primer.overrides": {
2700
3036
  "dark-dimmed-high-contrast": "{base.color.blue.2}"
3037
+ },
3038
+ "org.primer.llm": {
3039
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3040
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2701
3041
  }
2702
3042
  },
2703
3043
  "key": "{borderColor.accent.emphasis}"
@@ -2710,6 +3050,7 @@
2710
3050
  "key": "{borderColor.accent.muted}",
2711
3051
  "$value": "#5cacff",
2712
3052
  "$type": "color",
3053
+ "$description": "Subtle accent border for selected or focused elements",
2713
3054
  "$extensions": {
2714
3055
  "org.primer.figma": {
2715
3056
  "collection": "mode",
@@ -2770,6 +3111,10 @@
2770
3111
  "isSource": true,
2771
3112
  "$type": "color"
2772
3113
  }
3114
+ },
3115
+ "org.primer.llm": {
3116
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3117
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2773
3118
  }
2774
3119
  },
2775
3120
  "alpha": 1,
@@ -2778,6 +3123,7 @@
2778
3123
  "original": {
2779
3124
  "$value": "{base.color.blue.4}",
2780
3125
  "$type": "color",
3126
+ "$description": "Subtle accent border for selected or focused elements",
2781
3127
  "$extensions": {
2782
3128
  "org.primer.figma": {
2783
3129
  "collection": "mode",
@@ -2838,6 +3184,10 @@
2838
3184
  "isSource": true,
2839
3185
  "$type": "color"
2840
3186
  }
3187
+ },
3188
+ "org.primer.llm": {
3189
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3190
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2841
3191
  }
2842
3192
  },
2843
3193
  "alpha": 1,
@@ -2851,6 +3201,7 @@
2851
3201
  "key": "{borderColor.attention.emphasis}",
2852
3202
  "$value": "#e09b13",
2853
3203
  "$type": "color",
3204
+ "$description": "Strong attention border for prominent warnings",
2854
3205
  "$extensions": {
2855
3206
  "org.primer.figma": {
2856
3207
  "collection": "mode",
@@ -2862,6 +3213,10 @@
2862
3213
  },
2863
3214
  "org.primer.overrides": {
2864
3215
  "dark-dimmed-high-contrast": "#f7c843"
3216
+ },
3217
+ "org.primer.llm": {
3218
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3219
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2865
3220
  }
2866
3221
  },
2867
3222
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2869,6 +3224,7 @@
2869
3224
  "original": {
2870
3225
  "$value": "{base.color.yellow.5}",
2871
3226
  "$type": "color",
3227
+ "$description": "Strong attention border for prominent warnings",
2872
3228
  "$extensions": {
2873
3229
  "org.primer.figma": {
2874
3230
  "collection": "mode",
@@ -2880,6 +3236,10 @@
2880
3236
  },
2881
3237
  "org.primer.overrides": {
2882
3238
  "dark-dimmed-high-contrast": "{base.color.yellow.2}"
3239
+ },
3240
+ "org.primer.llm": {
3241
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3242
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2883
3243
  }
2884
3244
  },
2885
3245
  "key": "{borderColor.attention.emphasis}"
@@ -2892,6 +3252,7 @@
2892
3252
  "key": "{borderColor.attention.muted}",
2893
3253
  "$value": "#edaa27",
2894
3254
  "$type": "color",
3255
+ "$description": "Subtle attention border for warnings and caution states",
2895
3256
  "$extensions": {
2896
3257
  "org.primer.figma": {
2897
3258
  "collection": "mode",
@@ -2952,6 +3313,10 @@
2952
3313
  "isSource": true,
2953
3314
  "$type": "color"
2954
3315
  }
3316
+ },
3317
+ "org.primer.llm": {
3318
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3319
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
2955
3320
  }
2956
3321
  },
2957
3322
  "alpha": 1,
@@ -2960,6 +3325,7 @@
2960
3325
  "original": {
2961
3326
  "$value": "{base.color.yellow.4}",
2962
3327
  "$type": "color",
3328
+ "$description": "Subtle attention border for warnings and caution states",
2963
3329
  "$extensions": {
2964
3330
  "org.primer.figma": {
2965
3331
  "collection": "mode",
@@ -3020,6 +3386,10 @@
3020
3386
  "isSource": true,
3021
3387
  "$type": "color"
3022
3388
  }
3389
+ },
3390
+ "org.primer.llm": {
3391
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3392
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
3023
3393
  }
3024
3394
  },
3025
3395
  "alpha": 1,
@@ -3033,6 +3403,7 @@
3033
3403
  "key": "{borderColor.closed.emphasis}",
3034
3404
  "$value": "#b7bdc8",
3035
3405
  "$type": "color",
3406
+ "$description": "Strong border for closed state badges",
3036
3407
  "$extensions": {
3037
3408
  "org.primer.figma": {
3038
3409
  "collection": "mode",
@@ -3051,6 +3422,10 @@
3051
3422
  "dark-tritanopia-high-contrast": "#b7bdc8",
3052
3423
  "light-tritanopia": "#b7bdc8",
3053
3424
  "light-tritanopia-high-contrast": "#b7bdc8"
3425
+ },
3426
+ "org.primer.llm": {
3427
+ "usage": ["closed-emphasis", "closed-status"],
3428
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3054
3429
  }
3055
3430
  },
3056
3431
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3058,6 +3433,7 @@
3058
3433
  "original": {
3059
3434
  "$value": "{borderColor.emphasis}",
3060
3435
  "$type": "color",
3436
+ "$description": "Strong border for closed state badges",
3061
3437
  "$extensions": {
3062
3438
  "org.primer.figma": {
3063
3439
  "collection": "mode",
@@ -3076,6 +3452,10 @@
3076
3452
  "dark-tritanopia-high-contrast": "{borderColor.emphasis}",
3077
3453
  "light-tritanopia": "{borderColor.emphasis}",
3078
3454
  "light-tritanopia-high-contrast": "{borderColor.emphasis}"
3455
+ },
3456
+ "org.primer.llm": {
3457
+ "usage": ["closed-emphasis", "closed-status"],
3458
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3079
3459
  }
3080
3460
  },
3081
3461
  "key": "{borderColor.closed.emphasis}"
@@ -3088,6 +3468,7 @@
3088
3468
  "key": "{borderColor.closed.muted}",
3089
3469
  "$value": "#b7bdc8",
3090
3470
  "$type": "color",
3471
+ "$description": "Subtle border for closed state indicators",
3091
3472
  "$extensions": {
3092
3473
  "org.primer.figma": {
3093
3474
  "collection": "mode",
@@ -3154,6 +3535,10 @@
3154
3535
  "isSource": true,
3155
3536
  "$type": "color"
3156
3537
  }
3538
+ },
3539
+ "org.primer.llm": {
3540
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3541
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3157
3542
  }
3158
3543
  },
3159
3544
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3162,6 +3547,7 @@
3162
3547
  "original": {
3163
3548
  "$value": "{borderColor.default}",
3164
3549
  "$type": "color",
3550
+ "$description": "Subtle border for closed state indicators",
3165
3551
  "$extensions": {
3166
3552
  "org.primer.figma": {
3167
3553
  "collection": "mode",
@@ -3228,6 +3614,10 @@
3228
3614
  "isSource": true,
3229
3615
  "$type": "color"
3230
3616
  }
3617
+ },
3618
+ "org.primer.llm": {
3619
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3620
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3231
3621
  }
3232
3622
  },
3233
3623
  "alpha": 1,
@@ -3241,6 +3631,7 @@
3241
3631
  "key": "{borderColor.danger.emphasis}",
3242
3632
  "$value": "#e7811d",
3243
3633
  "$type": "color",
3634
+ "$description": "Strong danger border for destructive actions and errors",
3244
3635
  "$extensions": {
3245
3636
  "org.primer.figma": {
3246
3637
  "collection": "mode",
@@ -3276,6 +3667,10 @@
3276
3667
  "$type": "color"
3277
3668
  },
3278
3669
  "dark-dimmed-high-contrast": "#ffb1af"
3670
+ },
3671
+ "org.primer.llm": {
3672
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3673
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3279
3674
  }
3280
3675
  },
3281
3676
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3283,6 +3678,7 @@
3283
3678
  "original": {
3284
3679
  "$value": "{base.color.orange.5}",
3285
3680
  "$type": "color",
3681
+ "$description": "Strong danger border for destructive actions and errors",
3286
3682
  "$extensions": {
3287
3683
  "org.primer.figma": {
3288
3684
  "collection": "mode",
@@ -3318,6 +3714,10 @@
3318
3714
  "$type": "color"
3319
3715
  },
3320
3716
  "dark-dimmed-high-contrast": "{base.color.red.2}"
3717
+ },
3718
+ "org.primer.llm": {
3719
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3720
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3321
3721
  }
3322
3722
  },
3323
3723
  "key": "{borderColor.danger.emphasis}"
@@ -3330,6 +3730,7 @@
3330
3730
  "key": "{borderColor.danger.muted}",
3331
3731
  "$value": "#f48b25",
3332
3732
  "$type": "color",
3733
+ "$description": "Subtle danger border for errors and destructive contexts",
3333
3734
  "$extensions": {
3334
3735
  "org.primer.figma": {
3335
3736
  "collection": "mode",
@@ -3403,6 +3804,10 @@
3403
3804
  "isSource": true,
3404
3805
  "$type": "color"
3405
3806
  }
3807
+ },
3808
+ "org.primer.llm": {
3809
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3810
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3406
3811
  }
3407
3812
  },
3408
3813
  "alpha": 1,
@@ -3411,6 +3816,7 @@
3411
3816
  "original": {
3412
3817
  "$value": "{base.color.orange.4}",
3413
3818
  "$type": "color",
3819
+ "$description": "Subtle danger border for errors and destructive contexts",
3414
3820
  "$extensions": {
3415
3821
  "org.primer.figma": {
3416
3822
  "collection": "mode",
@@ -3484,6 +3890,10 @@
3484
3890
  "isSource": true,
3485
3891
  "$type": "color"
3486
3892
  }
3893
+ },
3894
+ "org.primer.llm": {
3895
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3896
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3487
3897
  }
3488
3898
  },
3489
3899
  "alpha": 1,
@@ -3497,6 +3907,7 @@
3497
3907
  "key": "{borderColor.default}",
3498
3908
  "$value": "#b7bdc8",
3499
3909
  "$type": "color",
3910
+ "$description": "Default border color for most UI elements",
3500
3911
  "$extensions": {
3501
3912
  "org.primer.overrides": {
3502
3913
  "dark": "#3d444d",
@@ -3516,6 +3927,10 @@
3516
3927
  "codeSyntax": {
3517
3928
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3518
3929
  }
3930
+ },
3931
+ "org.primer.llm": {
3932
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3933
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3519
3934
  }
3520
3935
  },
3521
3936
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3523,6 +3938,7 @@
3523
3938
  "original": {
3524
3939
  "$value": "{base.color.neutral.10}",
3525
3940
  "$type": "color",
3941
+ "$description": "Default border color for most UI elements",
3526
3942
  "$extensions": {
3527
3943
  "org.primer.overrides": {
3528
3944
  "dark": "{base.color.neutral.7}",
@@ -3542,6 +3958,10 @@
3542
3958
  "codeSyntax": {
3543
3959
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3544
3960
  }
3961
+ },
3962
+ "org.primer.llm": {
3963
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3964
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3545
3965
  }
3546
3966
  },
3547
3967
  "key": "{borderColor.default}"
@@ -3554,6 +3974,7 @@
3554
3974
  "key": "{borderColor.disabled}",
3555
3975
  "$value": "#656c761a",
3556
3976
  "$type": "color",
3977
+ "$description": "Border color for disabled interactive elements",
3557
3978
  "$extensions": {
3558
3979
  "org.primer.figma": {
3559
3980
  "collection": "mode",
@@ -3596,6 +4017,10 @@
3596
4017
  "isSource": true,
3597
4018
  "$type": "color"
3598
4019
  }
4020
+ },
4021
+ "org.primer.llm": {
4022
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4023
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3599
4024
  }
3600
4025
  },
3601
4026
  "alpha": 0.1,
@@ -3604,6 +4029,7 @@
3604
4029
  "original": {
3605
4030
  "$value": "{base.color.neutral.8}",
3606
4031
  "$type": "color",
4032
+ "$description": "Border color for disabled interactive elements",
3607
4033
  "$extensions": {
3608
4034
  "org.primer.figma": {
3609
4035
  "collection": "mode",
@@ -3646,6 +4072,10 @@
3646
4072
  "isSource": true,
3647
4073
  "$type": "color"
3648
4074
  }
4075
+ },
4076
+ "org.primer.llm": {
4077
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4078
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3649
4079
  }
3650
4080
  },
3651
4081
  "alpha": 0.1,
@@ -3659,6 +4089,7 @@
3659
4089
  "key": "{borderColor.done.emphasis}",
3660
4090
  "$value": "#b87fff",
3661
4091
  "$type": "color",
4092
+ "$description": "Strong border for completed/done state badges",
3662
4093
  "$extensions": {
3663
4094
  "org.primer.figma": {
3664
4095
  "collection": "mode",
@@ -3670,6 +4101,10 @@
3670
4101
  },
3671
4102
  "org.primer.overrides": {
3672
4103
  "dark-dimmed-high-contrast": "#dbb7ff"
4104
+ },
4105
+ "org.primer.llm": {
4106
+ "usage": ["done-emphasis", "merged-status"],
4107
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3673
4108
  }
3674
4109
  },
3675
4110
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3677,6 +4112,7 @@
3677
4112
  "original": {
3678
4113
  "$value": "{base.color.purple.5}",
3679
4114
  "$type": "color",
4115
+ "$description": "Strong border for completed/done state badges",
3680
4116
  "$extensions": {
3681
4117
  "org.primer.figma": {
3682
4118
  "collection": "mode",
@@ -3688,6 +4124,10 @@
3688
4124
  },
3689
4125
  "org.primer.overrides": {
3690
4126
  "dark-dimmed-high-contrast": "{base.color.purple.2}"
4127
+ },
4128
+ "org.primer.llm": {
4129
+ "usage": ["done-emphasis", "merged-status"],
4130
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3691
4131
  }
3692
4132
  },
3693
4133
  "key": "{borderColor.done.emphasis}"
@@ -3700,6 +4140,7 @@
3700
4140
  "key": "{borderColor.done.muted}",
3701
4141
  "$value": "#bf8fff",
3702
4142
  "$type": "color",
4143
+ "$description": "Subtle border for completed/done state indicators",
3703
4144
  "$extensions": {
3704
4145
  "org.primer.figma": {
3705
4146
  "collection": "mode",
@@ -3760,6 +4201,10 @@
3760
4201
  "isSource": true,
3761
4202
  "$type": "color"
3762
4203
  }
4204
+ },
4205
+ "org.primer.llm": {
4206
+ "usage": ["done-muted", "merged", "completed"],
4207
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3763
4208
  }
3764
4209
  },
3765
4210
  "alpha": 1,
@@ -3768,6 +4213,7 @@
3768
4213
  "original": {
3769
4214
  "$value": "{base.color.purple.4}",
3770
4215
  "$type": "color",
4216
+ "$description": "Subtle border for completed/done state indicators",
3771
4217
  "$extensions": {
3772
4218
  "org.primer.figma": {
3773
4219
  "collection": "mode",
@@ -3828,6 +4274,10 @@
3828
4274
  "isSource": true,
3829
4275
  "$type": "color"
3830
4276
  }
4277
+ },
4278
+ "org.primer.llm": {
4279
+ "usage": ["done-muted", "merged", "completed"],
4280
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3831
4281
  }
3832
4282
  },
3833
4283
  "alpha": 1,
@@ -3841,6 +4291,7 @@
3841
4291
  "key": "{borderColor.draft.emphasis}",
3842
4292
  "$value": "#b7bdc8",
3843
4293
  "$type": "color",
4294
+ "$description": "Strong border for draft state badges",
3844
4295
  "$extensions": {
3845
4296
  "org.primer.figma": {
3846
4297
  "collection": "mode",
@@ -3849,6 +4300,10 @@
3849
4300
  "codeSyntax": {
3850
4301
  "web": "var(--borderColor-draft-emphasis)"
3851
4302
  }
4303
+ },
4304
+ "org.primer.llm": {
4305
+ "usage": ["draft-emphasis", "draft-status"],
4306
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3852
4307
  }
3853
4308
  },
3854
4309
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3856,6 +4311,7 @@
3856
4311
  "original": {
3857
4312
  "$value": "{borderColor.neutral.emphasis}",
3858
4313
  "$type": "color",
4314
+ "$description": "Strong border for draft state badges",
3859
4315
  "$extensions": {
3860
4316
  "org.primer.figma": {
3861
4317
  "collection": "mode",
@@ -3864,6 +4320,10 @@
3864
4320
  "codeSyntax": {
3865
4321
  "web": "var(--borderColor-draft-emphasis)"
3866
4322
  }
4323
+ },
4324
+ "org.primer.llm": {
4325
+ "usage": ["draft-emphasis", "draft-status"],
4326
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3867
4327
  }
3868
4328
  },
3869
4329
  "key": "{borderColor.draft.emphasis}"
@@ -3876,6 +4336,7 @@
3876
4336
  "key": "{borderColor.draft.muted}",
3877
4337
  "$value": "#b7bdc8",
3878
4338
  "$type": "color",
4339
+ "$description": "Subtle border for draft state indicators",
3879
4340
  "$extensions": {
3880
4341
  "org.primer.figma": {
3881
4342
  "collection": "mode",
@@ -3942,6 +4403,10 @@
3942
4403
  "isSource": true,
3943
4404
  "$type": "color"
3944
4405
  }
4406
+ },
4407
+ "org.primer.llm": {
4408
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4409
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
3945
4410
  }
3946
4411
  },
3947
4412
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3950,6 +4415,7 @@
3950
4415
  "original": {
3951
4416
  "$value": "{borderColor.default}",
3952
4417
  "$type": "color",
4418
+ "$description": "Subtle border for draft state indicators",
3953
4419
  "$extensions": {
3954
4420
  "org.primer.figma": {
3955
4421
  "collection": "mode",
@@ -4016,6 +4482,10 @@
4016
4482
  "isSource": true,
4017
4483
  "$type": "color"
4018
4484
  }
4485
+ },
4486
+ "org.primer.llm": {
4487
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4488
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
4019
4489
  }
4020
4490
  },
4021
4491
  "alpha": 1,
@@ -4029,6 +4499,7 @@
4029
4499
  "key": "{borderColor.emphasis}",
4030
4500
  "$value": "#b7bdc8",
4031
4501
  "$type": "color",
4502
+ "$description": "Strong border for emphasis and visual weight",
4032
4503
  "$extensions": {
4033
4504
  "org.primer.figma": {
4034
4505
  "collection": "mode",
@@ -4043,6 +4514,10 @@
4043
4514
  "dark-dimmed-high-contrast": "#b7bdc8",
4044
4515
  "dark-tritanopia-high-contrast": "#b7bdc8",
4045
4516
  "dark-protanopia-deuteranopia-high-contrast": "#b7bdc8"
4517
+ },
4518
+ "org.primer.llm": {
4519
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4520
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4046
4521
  }
4047
4522
  },
4048
4523
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4050,6 +4525,7 @@
4050
4525
  "original": {
4051
4526
  "$value": "{borderColor.default}",
4052
4527
  "$type": "color",
4528
+ "$description": "Strong border for emphasis and visual weight",
4053
4529
  "$extensions": {
4054
4530
  "org.primer.figma": {
4055
4531
  "collection": "mode",
@@ -4064,6 +4540,10 @@
4064
4540
  "dark-dimmed-high-contrast": "{borderColor.default}",
4065
4541
  "dark-tritanopia-high-contrast": "{borderColor.default}",
4066
4542
  "dark-protanopia-deuteranopia-high-contrast": "{borderColor.default}"
4543
+ },
4544
+ "org.primer.llm": {
4545
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4546
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4067
4547
  }
4068
4548
  },
4069
4549
  "key": "{borderColor.emphasis}"
@@ -4076,6 +4556,7 @@
4076
4556
  "key": "{borderColor.muted}",
4077
4557
  "$value": "#b7bdc8",
4078
4558
  "$type": "color",
4559
+ "$description": "Subtle border for secondary elements and light separators",
4079
4560
  "$extensions": {
4080
4561
  "org.primer.figma": {
4081
4562
  "collection": "mode",
@@ -4142,6 +4623,10 @@
4142
4623
  "isSource": true,
4143
4624
  "$type": "color"
4144
4625
  }
4626
+ },
4627
+ "org.primer.llm": {
4628
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4629
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4145
4630
  }
4146
4631
  },
4147
4632
  "alpha": 1,
@@ -4150,6 +4635,7 @@
4150
4635
  "original": {
4151
4636
  "$value": "{borderColor.default}",
4152
4637
  "$type": "color",
4638
+ "$description": "Subtle border for secondary elements and light separators",
4153
4639
  "$extensions": {
4154
4640
  "org.primer.figma": {
4155
4641
  "collection": "mode",
@@ -4216,6 +4702,10 @@
4216
4702
  "isSource": true,
4217
4703
  "$type": "color"
4218
4704
  }
4705
+ },
4706
+ "org.primer.llm": {
4707
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4708
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4219
4709
  }
4220
4710
  },
4221
4711
  "alpha": 1,
@@ -4229,6 +4719,7 @@
4229
4719
  "key": "{borderColor.neutral.emphasis}",
4230
4720
  "$value": "#b7bdc8",
4231
4721
  "$type": "color",
4722
+ "$description": "Strong neutral semantic border",
4232
4723
  "$extensions": {
4233
4724
  "org.primer.figma": {
4234
4725
  "collection": "mode",
@@ -4237,6 +4728,10 @@
4237
4728
  },
4238
4729
  "org.primer.overrides": {
4239
4730
  "dark": "#b7bdc8"
4731
+ },
4732
+ "org.primer.llm": {
4733
+ "usage": ["neutral-emphasis", "neutral-strong"],
4734
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4240
4735
  }
4241
4736
  },
4242
4737
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4244,6 +4739,7 @@
4244
4739
  "original": {
4245
4740
  "$value": "{borderColor.emphasis}",
4246
4741
  "$type": "color",
4742
+ "$description": "Strong neutral semantic border",
4247
4743
  "$extensions": {
4248
4744
  "org.primer.figma": {
4249
4745
  "collection": "mode",
@@ -4252,6 +4748,10 @@
4252
4748
  },
4253
4749
  "org.primer.overrides": {
4254
4750
  "dark": "{borderColor.emphasis}"
4751
+ },
4752
+ "org.primer.llm": {
4753
+ "usage": ["neutral-emphasis", "neutral-strong"],
4754
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4255
4755
  }
4256
4756
  },
4257
4757
  "key": "{borderColor.neutral.emphasis}"
@@ -4264,6 +4764,7 @@
4264
4764
  "key": "{borderColor.neutral.muted}",
4265
4765
  "$value": "#b7bdc8",
4266
4766
  "$type": "color",
4767
+ "$description": "Subtle neutral semantic border",
4267
4768
  "$extensions": {
4268
4769
  "org.primer.figma": {
4269
4770
  "collection": "mode",
@@ -4285,6 +4786,10 @@
4285
4786
  "isSource": true,
4286
4787
  "$type": "color"
4287
4788
  }
4789
+ },
4790
+ "org.primer.llm": {
4791
+ "usage": ["neutral-muted", "neutral-secondary"],
4792
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4288
4793
  }
4289
4794
  },
4290
4795
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4292,6 +4797,7 @@
4292
4797
  "original": {
4293
4798
  "$value": "{borderColor.muted}",
4294
4799
  "$type": "color",
4800
+ "$description": "Subtle neutral semantic border",
4295
4801
  "$extensions": {
4296
4802
  "org.primer.figma": {
4297
4803
  "collection": "mode",
@@ -4313,6 +4819,10 @@
4313
4819
  "isSource": true,
4314
4820
  "$type": "color"
4315
4821
  }
4822
+ },
4823
+ "org.primer.llm": {
4824
+ "usage": ["neutral-muted", "neutral-secondary"],
4825
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4316
4826
  }
4317
4827
  },
4318
4828
  "key": "{borderColor.neutral.muted}"
@@ -4325,6 +4835,7 @@
4325
4835
  "key": "{borderColor.open.emphasis}",
4326
4836
  "$value": "#e7811d",
4327
4837
  "$type": "color",
4838
+ "$description": "Strong border for open state badges",
4328
4839
  "$extensions": {
4329
4840
  "org.primer.figma": {
4330
4841
  "collection": "mode",
@@ -4343,6 +4854,10 @@
4343
4854
  "dark-protanopia-deuteranopia-high-contrast": "#e7811d",
4344
4855
  "light-protanopia-deuteranopia": "#e7811d",
4345
4856
  "light-protanopia-deuteranopia-high-contrast": "#e7811d"
4857
+ },
4858
+ "org.primer.llm": {
4859
+ "usage": ["open-emphasis", "open-status"],
4860
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4346
4861
  }
4347
4862
  },
4348
4863
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4350,6 +4865,7 @@
4350
4865
  "original": {
4351
4866
  "$value": "{base.color.orange.5}",
4352
4867
  "$type": "color",
4868
+ "$description": "Strong border for open state badges",
4353
4869
  "$extensions": {
4354
4870
  "org.primer.figma": {
4355
4871
  "collection": "mode",
@@ -4368,6 +4884,10 @@
4368
4884
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
4369
4885
  "light-protanopia-deuteranopia": "{base.color.orange.5}",
4370
4886
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}"
4887
+ },
4888
+ "org.primer.llm": {
4889
+ "usage": ["open-emphasis", "open-status"],
4890
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4371
4891
  }
4372
4892
  },
4373
4893
  "key": "{borderColor.open.emphasis}"
@@ -4380,6 +4900,7 @@
4380
4900
  "key": "{borderColor.open.muted}",
4381
4901
  "$value": "#f48b25",
4382
4902
  "$type": "color",
4903
+ "$description": "Subtle border for open state indicators",
4383
4904
  "$extensions": {
4384
4905
  "org.primer.figma": {
4385
4906
  "collection": "mode",
@@ -4446,6 +4967,10 @@
4446
4967
  "isSource": true,
4447
4968
  "$type": "color"
4448
4969
  }
4970
+ },
4971
+ "org.primer.llm": {
4972
+ "usage": ["open-muted", "open-issue", "open-pr"],
4973
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4449
4974
  }
4450
4975
  },
4451
4976
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4454,6 +4979,7 @@
4454
4979
  "original": {
4455
4980
  "$value": "{base.color.orange.4}",
4456
4981
  "$type": "color",
4982
+ "$description": "Subtle border for open state indicators",
4457
4983
  "$extensions": {
4458
4984
  "org.primer.figma": {
4459
4985
  "collection": "mode",
@@ -4520,6 +5046,10 @@
4520
5046
  "isSource": true,
4521
5047
  "$type": "color"
4522
5048
  }
5049
+ },
5050
+ "org.primer.llm": {
5051
+ "usage": ["open-muted", "open-issue", "open-pr"],
5052
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4523
5053
  }
4524
5054
  },
4525
5055
  "alpha": 1,
@@ -4533,6 +5063,7 @@
4533
5063
  "key": "{borderColor.severe.emphasis}",
4534
5064
  "$value": "#e7811d",
4535
5065
  "$type": "color",
5066
+ "$description": "Strong severe border for prominent high-priority warnings",
4536
5067
  "$extensions": {
4537
5068
  "org.primer.figma": {
4538
5069
  "collection": "mode",
@@ -4547,6 +5078,10 @@
4547
5078
  "light-tritanopia": "#ff6a69",
4548
5079
  "light-tritanopia-high-contrast": "#ff6a69",
4549
5080
  "dark-dimmed-high-contrast": "#ffb757"
5081
+ },
5082
+ "org.primer.llm": {
5083
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5084
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4550
5085
  }
4551
5086
  },
4552
5087
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4554,6 +5089,7 @@
4554
5089
  "original": {
4555
5090
  "$value": "{base.color.orange.5}",
4556
5091
  "$type": "color",
5092
+ "$description": "Strong severe border for prominent high-priority warnings",
4557
5093
  "$extensions": {
4558
5094
  "org.primer.figma": {
4559
5095
  "collection": "mode",
@@ -4568,6 +5104,10 @@
4568
5104
  "light-tritanopia": "{base.color.red.5}",
4569
5105
  "light-tritanopia-high-contrast": "{base.color.red.5}",
4570
5106
  "dark-dimmed-high-contrast": "{base.color.orange.2}"
5107
+ },
5108
+ "org.primer.llm": {
5109
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5110
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4571
5111
  }
4572
5112
  },
4573
5113
  "key": "{borderColor.severe.emphasis}"
@@ -4580,6 +5120,7 @@
4580
5120
  "key": "{borderColor.severe.muted}",
4581
5121
  "$value": "#e7811d",
4582
5122
  "$type": "color",
5123
+ "$description": "Subtle severe border for high-priority warnings",
4583
5124
  "$extensions": {
4584
5125
  "org.primer.figma": {
4585
5126
  "collection": "mode",
@@ -4635,6 +5176,10 @@
4635
5176
  "isSource": true,
4636
5177
  "$type": "color"
4637
5178
  }
5179
+ },
5180
+ "org.primer.llm": {
5181
+ "usage": ["severe-muted", "urgent-muted"],
5182
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4638
5183
  }
4639
5184
  },
4640
5185
  "alpha": 1,
@@ -4643,6 +5188,7 @@
4643
5188
  "original": {
4644
5189
  "$value": "{base.color.orange.5}",
4645
5190
  "$type": "color",
5191
+ "$description": "Subtle severe border for high-priority warnings",
4646
5192
  "$extensions": {
4647
5193
  "org.primer.figma": {
4648
5194
  "collection": "mode",
@@ -4698,6 +5244,10 @@
4698
5244
  "isSource": true,
4699
5245
  "$type": "color"
4700
5246
  }
5247
+ },
5248
+ "org.primer.llm": {
5249
+ "usage": ["severe-muted", "urgent-muted"],
5250
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4701
5251
  }
4702
5252
  },
4703
5253
  "alpha": 1,
@@ -4711,6 +5261,7 @@
4711
5261
  "key": "{borderColor.sponsors.emphasis}",
4712
5262
  "$value": "#ef6eb1",
4713
5263
  "$type": "color",
5264
+ "$description": "Strong border for prominent GitHub Sponsors elements",
4714
5265
  "$extensions": {
4715
5266
  "org.primer.figma": {
4716
5267
  "collection": "mode",
@@ -4722,6 +5273,10 @@
4722
5273
  },
4723
5274
  "org.primer.overrides": {
4724
5275
  "dark-dimmed-high-contrast": "#ff8dc7"
5276
+ },
5277
+ "org.primer.llm": {
5278
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5279
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4725
5280
  }
4726
5281
  },
4727
5282
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4729,6 +5284,7 @@
4729
5284
  "original": {
4730
5285
  "$value": "{base.color.pink.5}",
4731
5286
  "$type": "color",
5287
+ "$description": "Strong border for prominent GitHub Sponsors elements",
4732
5288
  "$extensions": {
4733
5289
  "org.primer.figma": {
4734
5290
  "collection": "mode",
@@ -4740,6 +5296,10 @@
4740
5296
  },
4741
5297
  "org.primer.overrides": {
4742
5298
  "dark-dimmed-high-contrast": "{base.color.pink.3}"
5299
+ },
5300
+ "org.primer.llm": {
5301
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5302
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4743
5303
  }
4744
5304
  },
4745
5305
  "key": "{borderColor.sponsors.emphasis}"
@@ -4752,6 +5312,7 @@
4752
5312
  "key": "{borderColor.sponsors.muted}",
4753
5313
  "$value": "#f87cbd",
4754
5314
  "$type": "color",
5315
+ "$description": "Subtle border for GitHub Sponsors content",
4755
5316
  "$extensions": {
4756
5317
  "org.primer.figma": {
4757
5318
  "collection": "mode",
@@ -4812,6 +5373,10 @@
4812
5373
  "isSource": true,
4813
5374
  "$type": "color"
4814
5375
  }
5376
+ },
5377
+ "org.primer.llm": {
5378
+ "usage": ["sponsors-muted", "funding-muted"],
5379
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4815
5380
  }
4816
5381
  },
4817
5382
  "alpha": 1,
@@ -4820,6 +5385,7 @@
4820
5385
  "original": {
4821
5386
  "$value": "{base.color.pink.4}",
4822
5387
  "$type": "color",
5388
+ "$description": "Subtle border for GitHub Sponsors content",
4823
5389
  "$extensions": {
4824
5390
  "org.primer.figma": {
4825
5391
  "collection": "mode",
@@ -4880,6 +5446,10 @@
4880
5446
  "isSource": true,
4881
5447
  "$type": "color"
4882
5448
  }
5449
+ },
5450
+ "org.primer.llm": {
5451
+ "usage": ["sponsors-muted", "funding-muted"],
5452
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4883
5453
  }
4884
5454
  },
4885
5455
  "alpha": 1,
@@ -4893,6 +5463,7 @@
4893
5463
  "key": "{borderColor.success.emphasis}",
4894
5464
  "$value": "#409eff",
4895
5465
  "$type": "color",
5466
+ "$description": "Strong success border for prominent positive elements",
4896
5467
  "$extensions": {
4897
5468
  "org.primer.figma": {
4898
5469
  "collection": "mode",
@@ -4912,6 +5483,10 @@
4912
5483
  "light-protanopia-deuteranopia": "#409eff",
4913
5484
  "light-protanopia-deuteranopia-high-contrast": "#409eff",
4914
5485
  "dark-dimmed-high-contrast": "#4ae168"
5486
+ },
5487
+ "org.primer.llm": {
5488
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5489
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4915
5490
  }
4916
5491
  },
4917
5492
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4919,6 +5494,7 @@
4919
5494
  "original": {
4920
5495
  "$value": "{base.color.blue.5}",
4921
5496
  "$type": "color",
5497
+ "$description": "Strong success border for prominent positive elements",
4922
5498
  "$extensions": {
4923
5499
  "org.primer.figma": {
4924
5500
  "collection": "mode",
@@ -4938,6 +5514,10 @@
4938
5514
  "light-protanopia-deuteranopia": "{base.color.blue.5}",
4939
5515
  "light-protanopia-deuteranopia-high-contrast": "{base.color.blue.5}",
4940
5516
  "dark-dimmed-high-contrast": "{base.color.green.2}"
5517
+ },
5518
+ "org.primer.llm": {
5519
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5520
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4941
5521
  }
4942
5522
  },
4943
5523
  "key": "{borderColor.success.emphasis}"
@@ -4950,6 +5530,7 @@
4950
5530
  "key": "{borderColor.success.muted}",
4951
5531
  "$value": "#5cacff",
4952
5532
  "$type": "color",
5533
+ "$description": "Subtle success border for positive feedback elements",
4953
5534
  "$extensions": {
4954
5535
  "org.primer.figma": {
4955
5536
  "collection": "mode",
@@ -5037,6 +5618,10 @@
5037
5618
  "isSource": true,
5038
5619
  "$type": "color"
5039
5620
  }
5621
+ },
5622
+ "org.primer.llm": {
5623
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5624
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5040
5625
  }
5041
5626
  },
5042
5627
  "alpha": 1,
@@ -5045,6 +5630,7 @@
5045
5630
  "original": {
5046
5631
  "$value": "{base.color.blue.4}",
5047
5632
  "$type": "color",
5633
+ "$description": "Subtle success border for positive feedback elements",
5048
5634
  "$extensions": {
5049
5635
  "org.primer.figma": {
5050
5636
  "collection": "mode",
@@ -5132,6 +5718,10 @@
5132
5718
  "isSource": true,
5133
5719
  "$type": "color"
5134
5720
  }
5721
+ },
5722
+ "org.primer.llm": {
5723
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5724
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5135
5725
  }
5136
5726
  },
5137
5727
  "alpha": 1,
@@ -5145,6 +5735,7 @@
5145
5735
  "key": "{borderColor.translucent}",
5146
5736
  "$value": "#9198a1",
5147
5737
  "$type": "color",
5738
+ "$description": "Semi-transparent border for overlays and layered elements",
5148
5739
  "$extensions": {
5149
5740
  "org.primer.figma": {
5150
5741
  "collection": "mode",
@@ -5201,6 +5792,10 @@
5201
5792
  "isSource": true,
5202
5793
  "$type": "color"
5203
5794
  }
5795
+ },
5796
+ "org.primer.llm": {
5797
+ "usage": ["overlay-border", "translucent-border"],
5798
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5204
5799
  }
5205
5800
  },
5206
5801
  "alpha": 1,
@@ -5209,6 +5804,7 @@
5209
5804
  "original": {
5210
5805
  "$value": "{base.color.neutral.9}",
5211
5806
  "$type": "color",
5807
+ "$description": "Semi-transparent border for overlays and layered elements",
5212
5808
  "$extensions": {
5213
5809
  "org.primer.figma": {
5214
5810
  "collection": "mode",
@@ -5265,6 +5861,10 @@
5265
5861
  "isSource": true,
5266
5862
  "$type": "color"
5267
5863
  }
5864
+ },
5865
+ "org.primer.llm": {
5866
+ "usage": ["overlay-border", "translucent-border"],
5867
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5268
5868
  }
5269
5869
  },
5270
5870
  "alpha": 1,
@@ -5278,6 +5878,7 @@
5278
5878
  "key": "{borderColor.transparent}",
5279
5879
  "$value": "#00000000",
5280
5880
  "$type": "color",
5881
+ "$description": "Fully transparent border",
5281
5882
  "$extensions": {
5282
5883
  "org.primer.figma": {
5283
5884
  "collection": "mode",
@@ -5290,6 +5891,7 @@
5290
5891
  "original": {
5291
5892
  "$value": "{base.color.transparent}",
5292
5893
  "$type": "color",
5894
+ "$description": "Fully transparent border",
5293
5895
  "$extensions": {
5294
5896
  "org.primer.figma": {
5295
5897
  "collection": "mode",
@@ -5307,6 +5909,7 @@
5307
5909
  "key": "{borderColor.upsell.emphasis}",
5308
5910
  "$value": "#b87fff",
5309
5911
  "$type": "color",
5912
+ "$description": "Strong border for prominent upsell elements",
5310
5913
  "$extensions": {
5311
5914
  "org.primer.figma": {
5312
5915
  "collection": "mode",
@@ -5315,6 +5918,10 @@
5315
5918
  "codeSyntax": {
5316
5919
  "web": "var(--borderColor-upsell-emphasis)"
5317
5920
  }
5921
+ },
5922
+ "org.primer.llm": {
5923
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5924
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5318
5925
  }
5319
5926
  },
5320
5927
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5322,6 +5929,7 @@
5322
5929
  "original": {
5323
5930
  "$value": "{borderColor.done.emphasis}",
5324
5931
  "$type": "color",
5932
+ "$description": "Strong border for prominent upsell elements",
5325
5933
  "$extensions": {
5326
5934
  "org.primer.figma": {
5327
5935
  "collection": "mode",
@@ -5330,6 +5938,10 @@
5330
5938
  "codeSyntax": {
5331
5939
  "web": "var(--borderColor-upsell-emphasis)"
5332
5940
  }
5941
+ },
5942
+ "org.primer.llm": {
5943
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5944
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5333
5945
  }
5334
5946
  },
5335
5947
  "key": "{borderColor.upsell.emphasis}"
@@ -5342,6 +5954,7 @@
5342
5954
  "key": "{borderColor.upsell.muted}",
5343
5955
  "$value": "#bf8fff",
5344
5956
  "$type": "color",
5957
+ "$description": "Subtle border for upsell and promotional content",
5345
5958
  "$extensions": {
5346
5959
  "org.primer.figma": {
5347
5960
  "collection": "mode",
@@ -5350,6 +5963,10 @@
5350
5963
  "codeSyntax": {
5351
5964
  "web": "var(--borderColor-upsell-muted)"
5352
5965
  }
5966
+ },
5967
+ "org.primer.llm": {
5968
+ "usage": ["upsell-muted", "premium-muted"],
5969
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5353
5970
  }
5354
5971
  },
5355
5972
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5357,6 +5974,7 @@
5357
5974
  "original": {
5358
5975
  "$value": "{borderColor.done.muted}",
5359
5976
  "$type": "color",
5977
+ "$description": "Subtle border for upsell and promotional content",
5360
5978
  "$extensions": {
5361
5979
  "org.primer.figma": {
5362
5980
  "collection": "mode",
@@ -5365,6 +5983,10 @@
5365
5983
  "codeSyntax": {
5366
5984
  "web": "var(--borderColor-upsell-muted)"
5367
5985
  }
5986
+ },
5987
+ "org.primer.llm": {
5988
+ "usage": ["upsell-muted", "premium-muted"],
5989
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5368
5990
  }
5369
5991
  },
5370
5992
  "key": "{borderColor.upsell.muted}"
@@ -36515,6 +37137,7 @@
36515
37137
  "key": "{fgColor.accent}",
36516
37138
  "$value": "#74b9ff",
36517
37139
  "$type": "color",
37140
+ "$description": "Accent text for links and interactive elements",
36518
37141
  "$extensions": {
36519
37142
  "org.primer.figma": {
36520
37143
  "collection": "mode",
@@ -36534,6 +37157,10 @@
36534
37157
  "light-high-contrast": "#318bf8",
36535
37158
  "light-tritanopia-high-contrast": "#318bf8",
36536
37159
  "light-protanopia-deuteranopia-high-contrast": "#318bf8"
37160
+ },
37161
+ "org.primer.llm": {
37162
+ "usage": ["accent-text", "info-text", "accent-icon"],
37163
+ "rules": "Use for accent-colored text and icons. Pair with bgColor.accent.muted for backgrounds."
36537
37164
  }
36538
37165
  },
36539
37166
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36541,6 +37168,7 @@
36541
37168
  "original": {
36542
37169
  "$value": "#74B9FF",
36543
37170
  "$type": "color",
37171
+ "$description": "Accent text for links and interactive elements",
36544
37172
  "$extensions": {
36545
37173
  "org.primer.figma": {
36546
37174
  "collection": "mode",
@@ -36560,6 +37188,10 @@
36560
37188
  "light-high-contrast": "{base.color.blue.6}",
36561
37189
  "light-tritanopia-high-contrast": "{base.color.blue.6}",
36562
37190
  "light-protanopia-deuteranopia-high-contrast": "{base.color.blue.6}"
37191
+ },
37192
+ "org.primer.llm": {
37193
+ "usage": ["accent-text", "info-text", "accent-icon"],
37194
+ "rules": "Use for accent-colored text and icons. Pair with bgColor.accent.muted for backgrounds."
36563
37195
  }
36564
37196
  },
36565
37197
  "key": "{fgColor.accent}"
@@ -36572,6 +37204,7 @@
36572
37204
  "key": "{fgColor.attention}",
36573
37205
  "$value": "#f0b72f",
36574
37206
  "$type": "color",
37207
+ "$description": "Attention text for warnings and caution states",
36575
37208
  "$extensions": {
36576
37209
  "org.primer.figma": {
36577
37210
  "collection": "mode",
@@ -36587,6 +37220,10 @@
36587
37220
  "light-protanopia-deuteranopia-high-contrast": "#c88508",
36588
37221
  "light-tritanopia-high-contrast": "#c88508",
36589
37222
  "dark-dimmed-high-contrast": "#fbd669"
37223
+ },
37224
+ "org.primer.llm": {
37225
+ "usage": ["attention-text", "warning-text", "caution-text"],
37226
+ "rules": "Use for warning and caution text. Pair with bgColor.attention.muted for backgrounds."
36590
37227
  }
36591
37228
  },
36592
37229
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36594,6 +37231,7 @@
36594
37231
  "original": {
36595
37232
  "$value": "{base.color.yellow.3}",
36596
37233
  "$type": "color",
37234
+ "$description": "Attention text for warnings and caution states",
36597
37235
  "$extensions": {
36598
37236
  "org.primer.figma": {
36599
37237
  "collection": "mode",
@@ -36609,6 +37247,10 @@
36609
37247
  "light-protanopia-deuteranopia-high-contrast": "{base.color.yellow.6}",
36610
37248
  "light-tritanopia-high-contrast": "{base.color.yellow.6}",
36611
37249
  "dark-dimmed-high-contrast": "{base.color.yellow.1}"
37250
+ },
37251
+ "org.primer.llm": {
37252
+ "usage": ["attention-text", "warning-text", "caution-text"],
37253
+ "rules": "Use for warning and caution text. Pair with bgColor.attention.muted for backgrounds."
36612
37254
  }
36613
37255
  },
36614
37256
  "key": "{fgColor.attention}"
@@ -36621,6 +37263,7 @@
36621
37263
  "key": "{fgColor.black}",
36622
37264
  "$value": "#010409",
36623
37265
  "$type": "color",
37266
+ "$description": "Pure black text",
36624
37267
  "$extensions": {
36625
37268
  "org.primer.figma": {
36626
37269
  "collection": "mode",
@@ -36629,6 +37272,10 @@
36629
37272
  },
36630
37273
  "org.primer.overrides": {
36631
37274
  "dark": "#010409"
37275
+ },
37276
+ "org.primer.llm": {
37277
+ "doNotUse": true,
37278
+ "rules": "Avoid using raw black. Use semantic alternatives: fgColor.default for standard text, fgColor.muted for secondary text. Raw black/white ignore theme preferences and accessibility settings."
36632
37279
  }
36633
37280
  },
36634
37281
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36636,6 +37283,7 @@
36636
37283
  "original": {
36637
37284
  "$value": "{base.color.neutral.0}",
36638
37285
  "$type": "color",
37286
+ "$description": "Pure black text",
36639
37287
  "$extensions": {
36640
37288
  "org.primer.figma": {
36641
37289
  "collection": "mode",
@@ -36644,6 +37292,10 @@
36644
37292
  },
36645
37293
  "org.primer.overrides": {
36646
37294
  "dark": "{base.color.neutral.0}"
37295
+ },
37296
+ "org.primer.llm": {
37297
+ "doNotUse": true,
37298
+ "rules": "Avoid using raw black. Use semantic alternatives: fgColor.default for standard text, fgColor.muted for secondary text. Raw black/white ignore theme preferences and accessibility settings."
36647
37299
  }
36648
37300
  },
36649
37301
  "key": "{fgColor.black}"
@@ -36656,6 +37308,7 @@
36656
37308
  "key": "{fgColor.closed}",
36657
37309
  "$value": "#b7bdc8",
36658
37310
  "$type": "color",
37311
+ "$description": "Text color for closed state indicators (issues, PRs)",
36659
37312
  "$extensions": {
36660
37313
  "org.primer.figma": {
36661
37314
  "collection": "mode",
@@ -36674,6 +37327,10 @@
36674
37327
  "dark-tritanopia-high-contrast": "#b7bdc8",
36675
37328
  "light-tritanopia": "#b7bdc8",
36676
37329
  "light-tritanopia-high-contrast": "#b7bdc8"
37330
+ },
37331
+ "org.primer.llm": {
37332
+ "usage": ["closed-text", "closed-issue", "closed-pr"],
37333
+ "rules": "Use for closed/declined status text. Specifically for GitHub issues and PRs."
36677
37334
  }
36678
37335
  },
36679
37336
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36681,6 +37338,7 @@
36681
37338
  "original": {
36682
37339
  "$value": "{fgColor.muted}",
36683
37340
  "$type": "color",
37341
+ "$description": "Text color for closed state indicators (issues, PRs)",
36684
37342
  "$extensions": {
36685
37343
  "org.primer.figma": {
36686
37344
  "collection": "mode",
@@ -36699,6 +37357,10 @@
36699
37357
  "dark-tritanopia-high-contrast": "{fgColor.muted}",
36700
37358
  "light-tritanopia": "{fgColor.muted}",
36701
37359
  "light-tritanopia-high-contrast": "{fgColor.muted}"
37360
+ },
37361
+ "org.primer.llm": {
37362
+ "usage": ["closed-text", "closed-issue", "closed-pr"],
37363
+ "rules": "Use for closed/declined status text. Specifically for GitHub issues and PRs."
36702
37364
  }
36703
37365
  },
36704
37366
  "key": "{fgColor.closed}"
@@ -36711,6 +37373,7 @@
36711
37373
  "key": "{fgColor.danger}",
36712
37374
  "$value": "#ffb757",
36713
37375
  "$type": "color",
37376
+ "$description": "Danger text for errors and destructive actions",
36714
37377
  "$extensions": {
36715
37378
  "org.primer.figma": {
36716
37379
  "collection": "mode",
@@ -36731,6 +37394,10 @@
36731
37394
  "dark-tritanopia-high-contrast": "#ff9492",
36732
37395
  "light-high-contrast": "#ff4445",
36733
37396
  "light-tritanopia-high-contrast": "#ff4445"
37397
+ },
37398
+ "org.primer.llm": {
37399
+ "usage": ["danger-text", "error-text", "destructive-text"],
37400
+ "rules": "Use for error messages and destructive action text. Pair with bgColor.danger.muted for backgrounds."
36734
37401
  }
36735
37402
  },
36736
37403
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36738,6 +37405,7 @@
36738
37405
  "original": {
36739
37406
  "$value": "{base.color.orange.2}",
36740
37407
  "$type": "color",
37408
+ "$description": "Danger text for errors and destructive actions",
36741
37409
  "$extensions": {
36742
37410
  "org.primer.figma": {
36743
37411
  "collection": "mode",
@@ -36758,6 +37426,10 @@
36758
37426
  "dark-tritanopia-high-contrast": "{base.color.red.3}",
36759
37427
  "light-high-contrast": "{base.color.red.6}",
36760
37428
  "light-tritanopia-high-contrast": "{base.color.red.6}"
37429
+ },
37430
+ "org.primer.llm": {
37431
+ "usage": ["danger-text", "error-text", "destructive-text"],
37432
+ "rules": "Use for error messages and destructive action text. Pair with bgColor.danger.muted for backgrounds."
36761
37433
  }
36762
37434
  },
36763
37435
  "key": "{fgColor.danger}"
@@ -36770,6 +37442,7 @@
36770
37442
  "key": "{fgColor.default}",
36771
37443
  "$value": "#ffffff",
36772
37444
  "$type": "color",
37445
+ "$description": "Default text color for primary content and headings",
36773
37446
  "$extensions": {
36774
37447
  "org.primer.figma": {
36775
37448
  "collection": "mode",
@@ -36784,8 +37457,12 @@
36784
37457
  "dark-high-contrast": "#ffffff",
36785
37458
  "dark-tritanopia-high-contrast": "#ffffff",
36786
37459
  "dark-protanopia-deuteranopia-high-contrast": "#ffffff",
36787
- "dark-dimmed": "#d1d7e0",
37460
+ "dark-dimmed": "#f0f6fc",
36788
37461
  "dark-dimmed-high-contrast": "#f0f6fc"
37462
+ },
37463
+ "org.primer.llm": {
37464
+ "usage": ["default-text", "heading", "body-text"],
37465
+ "rules": "RECOMMENDED default for all text. Use for headings, body text, and primary labels."
36789
37466
  }
36790
37467
  },
36791
37468
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36793,6 +37470,7 @@
36793
37470
  "original": {
36794
37471
  "$value": "{base.color.neutral.13}",
36795
37472
  "$type": "color",
37473
+ "$description": "Default text color for primary content and headings",
36796
37474
  "$extensions": {
36797
37475
  "org.primer.figma": {
36798
37476
  "collection": "mode",
@@ -36807,8 +37485,12 @@
36807
37485
  "dark-high-contrast": "{base.color.neutral.13}",
36808
37486
  "dark-tritanopia-high-contrast": "{base.color.neutral.13}",
36809
37487
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.13}",
36810
- "dark-dimmed": "{base.color.neutral.11}",
37488
+ "dark-dimmed": "{base.color.neutral.12}",
36811
37489
  "dark-dimmed-high-contrast": "{base.color.neutral.12}"
37490
+ },
37491
+ "org.primer.llm": {
37492
+ "usage": ["default-text", "heading", "body-text"],
37493
+ "rules": "RECOMMENDED default for all text. Use for headings, body text, and primary labels."
36812
37494
  }
36813
37495
  },
36814
37496
  "key": "{fgColor.default}"
@@ -36821,6 +37503,7 @@
36821
37503
  "key": "{fgColor.disabled}",
36822
37504
  "$value": "#656c76",
36823
37505
  "$type": "color",
37506
+ "$description": "Text color for disabled interactive elements",
36824
37507
  "$extensions": {
36825
37508
  "org.primer.figma": {
36826
37509
  "collection": "mode",
@@ -36842,6 +37525,10 @@
36842
37525
  "dark-high-contrast": "#656c76",
36843
37526
  "dark-tritanopia-high-contrast": "#656c76",
36844
37527
  "dark-protanopia-deuteranopia-high-contrast": "#656c76"
37528
+ },
37529
+ "org.primer.llm": {
37530
+ "usage": ["disabled-text", "inactive-text", "unavailable"],
37531
+ "rules": "MUST use for disabled state text. Pair with bgColor.disabled. Do NOT use for active elements."
36845
37532
  }
36846
37533
  },
36847
37534
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36849,6 +37536,7 @@
36849
37536
  "original": {
36850
37537
  "$value": "{base.color.neutral.8}",
36851
37538
  "$type": "color",
37539
+ "$description": "Text color for disabled interactive elements",
36852
37540
  "$extensions": {
36853
37541
  "org.primer.figma": {
36854
37542
  "collection": "mode",
@@ -36870,6 +37558,10 @@
36870
37558
  "dark-high-contrast": "{base.color.neutral.8}",
36871
37559
  "dark-tritanopia-high-contrast": "{base.color.neutral.8}",
36872
37560
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.8}"
37561
+ },
37562
+ "org.primer.llm": {
37563
+ "usage": ["disabled-text", "inactive-text", "unavailable"],
37564
+ "rules": "MUST use for disabled state text. Pair with bgColor.disabled. Do NOT use for active elements."
36873
37565
  }
36874
37566
  },
36875
37567
  "key": "{fgColor.disabled}"
@@ -36882,6 +37574,7 @@
36882
37574
  "key": "{fgColor.done}",
36883
37575
  "$value": "#d3abff",
36884
37576
  "$type": "color",
37577
+ "$description": "Text color for completed/done state indicators",
36885
37578
  "$extensions": {
36886
37579
  "org.primer.figma": {
36887
37580
  "collection": "mode",
@@ -36900,6 +37593,10 @@
36900
37593
  "light-high-contrast": "#a66bff",
36901
37594
  "light-protanopia-deuteranopia-high-contrast": "#a66bff",
36902
37595
  "light-tritanopia-high-contrast": "#a66bff"
37596
+ },
37597
+ "org.primer.llm": {
37598
+ "usage": ["done-text", "merged", "completed"],
37599
+ "rules": "Use for completed/done status text. Conveys finished or merged state."
36903
37600
  }
36904
37601
  },
36905
37602
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36907,6 +37604,7 @@
36907
37604
  "original": {
36908
37605
  "$value": "#D3ABFF",
36909
37606
  "$type": "color",
37607
+ "$description": "Text color for completed/done state indicators",
36910
37608
  "$extensions": {
36911
37609
  "org.primer.figma": {
36912
37610
  "collection": "mode",
@@ -36925,6 +37623,10 @@
36925
37623
  "light-high-contrast": "{base.color.purple.6}",
36926
37624
  "light-protanopia-deuteranopia-high-contrast": "{base.color.purple.6}",
36927
37625
  "light-tritanopia-high-contrast": "{base.color.purple.6}"
37626
+ },
37627
+ "org.primer.llm": {
37628
+ "usage": ["done-text", "merged", "completed"],
37629
+ "rules": "Use for completed/done status text. Conveys finished or merged state."
36928
37630
  }
36929
37631
  },
36930
37632
  "key": "{fgColor.done}"
@@ -36937,6 +37639,7 @@
36937
37639
  "key": "{fgColor.draft}",
36938
37640
  "$value": "#d1d7e0",
36939
37641
  "$type": "color",
37642
+ "$description": "Text color for draft state indicators",
36940
37643
  "$extensions": {
36941
37644
  "org.primer.figma": {
36942
37645
  "collection": "mode",
@@ -36945,6 +37648,10 @@
36945
37648
  "codeSyntax": {
36946
37649
  "web": "var(--fgColor-draft)"
36947
37650
  }
37651
+ },
37652
+ "org.primer.llm": {
37653
+ "usage": ["draft-text", "draft-pr", "draft-issue"],
37654
+ "rules": "Use for draft/WIP status text. Conveys incomplete or pending state."
36948
37655
  }
36949
37656
  },
36950
37657
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36952,6 +37659,7 @@
36952
37659
  "original": {
36953
37660
  "$value": "{fgColor.neutral}",
36954
37661
  "$type": "color",
37662
+ "$description": "Text color for draft state indicators",
36955
37663
  "$extensions": {
36956
37664
  "org.primer.figma": {
36957
37665
  "collection": "mode",
@@ -36960,6 +37668,10 @@
36960
37668
  "codeSyntax": {
36961
37669
  "web": "var(--fgColor-draft)"
36962
37670
  }
37671
+ },
37672
+ "org.primer.llm": {
37673
+ "usage": ["draft-text", "draft-pr", "draft-issue"],
37674
+ "rules": "Use for draft/WIP status text. Conveys incomplete or pending state."
36963
37675
  }
36964
37676
  },
36965
37677
  "key": "{fgColor.draft}"
@@ -36972,6 +37684,7 @@
36972
37684
  "key": "{fgColor.link}",
36973
37685
  "$value": "#74b9ff",
36974
37686
  "$type": "color",
37687
+ "$description": "Text color for hyperlinks",
36975
37688
  "$extensions": {
36976
37689
  "org.primer.figma": {
36977
37690
  "collection": "mode",
@@ -36980,6 +37693,10 @@
36980
37693
  "codeSyntax": {
36981
37694
  "web": "var(--fgColor-link) /* utility class: .color-fg-accent */"
36982
37695
  }
37696
+ },
37697
+ "org.primer.llm": {
37698
+ "usage": ["link-text", "hyperlink"],
37699
+ "rules": "MUST use for all text links. Provides expected link affordance."
36983
37700
  }
36984
37701
  },
36985
37702
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36987,6 +37704,7 @@
36987
37704
  "original": {
36988
37705
  "$value": "{fgColor.accent}",
36989
37706
  "$type": "color",
37707
+ "$description": "Text color for hyperlinks",
36990
37708
  "$extensions": {
36991
37709
  "org.primer.figma": {
36992
37710
  "collection": "mode",
@@ -36995,6 +37713,10 @@
36995
37713
  "codeSyntax": {
36996
37714
  "web": "var(--fgColor-link) /* utility class: .color-fg-accent */"
36997
37715
  }
37716
+ },
37717
+ "org.primer.llm": {
37718
+ "usage": ["link-text", "hyperlink"],
37719
+ "rules": "MUST use for all text links. Provides expected link affordance."
36998
37720
  }
36999
37721
  },
37000
37722
  "key": "{fgColor.link}"
@@ -37007,6 +37729,7 @@
37007
37729
  "key": "{fgColor.muted}",
37008
37730
  "$value": "#b7bdc8",
37009
37731
  "$type": "color",
37732
+ "$description": "Muted text for secondary content and less important information",
37010
37733
  "$extensions": {
37011
37734
  "org.primer.figma": {
37012
37735
  "collection": "mode",
@@ -37024,6 +37747,10 @@
37024
37747
  "dark-dimmed-high-contrast": "#b7bdc8",
37025
37748
  "dark-tritanopia-high-contrast": "#b7bdc8",
37026
37749
  "dark-protanopia-deuteranopia-high-contrast": "#b7bdc8"
37750
+ },
37751
+ "org.primer.llm": {
37752
+ "usage": ["muted-text", "secondary-text", "helper-text", "placeholder"],
37753
+ "rules": "Use for secondary text like timestamps, metadata, and helper text. Do NOT use for primary content."
37027
37754
  }
37028
37755
  },
37029
37756
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37031,6 +37758,7 @@
37031
37758
  "original": {
37032
37759
  "$value": "{base.color.neutral.10}",
37033
37760
  "$type": "color",
37761
+ "$description": "Muted text for secondary content and less important information",
37034
37762
  "$extensions": {
37035
37763
  "org.primer.figma": {
37036
37764
  "collection": "mode",
@@ -37048,6 +37776,10 @@
37048
37776
  "dark-dimmed-high-contrast": "{base.color.neutral.10}",
37049
37777
  "dark-tritanopia-high-contrast": "{base.color.neutral.10}",
37050
37778
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.10}"
37779
+ },
37780
+ "org.primer.llm": {
37781
+ "usage": ["muted-text", "secondary-text", "helper-text", "placeholder"],
37782
+ "rules": "Use for secondary text like timestamps, metadata, and helper text. Do NOT use for primary content."
37051
37783
  }
37052
37784
  },
37053
37785
  "key": "{fgColor.muted}"
@@ -37060,6 +37792,7 @@
37060
37792
  "key": "{fgColor.neutral}",
37061
37793
  "$value": "#d1d7e0",
37062
37794
  "$type": "color",
37795
+ "$description": "Neutral semantic text for icons and secondary elements",
37063
37796
  "$extensions": {
37064
37797
  "org.primer.figma": {
37065
37798
  "collection": "mode",
@@ -37074,6 +37807,10 @@
37074
37807
  "dark-dimmed-high-contrast": "#d1d7e0",
37075
37808
  "dark-tritanopia-high-contrast": "#d1d7e0",
37076
37809
  "dark-protanopia-deuteranopia-high-contrast": "#d1d7e0"
37810
+ },
37811
+ "org.primer.llm": {
37812
+ "usage": ["neutral-icon", "neutral-text"],
37813
+ "rules": "Use for neutral semantic elements. Prefer fgColor.muted for secondary text."
37077
37814
  }
37078
37815
  },
37079
37816
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37081,6 +37818,7 @@
37081
37818
  "original": {
37082
37819
  "$value": "{base.color.neutral.11}",
37083
37820
  "$type": "color",
37821
+ "$description": "Neutral semantic text for icons and secondary elements",
37084
37822
  "$extensions": {
37085
37823
  "org.primer.figma": {
37086
37824
  "collection": "mode",
@@ -37095,6 +37833,10 @@
37095
37833
  "dark-dimmed-high-contrast": "{base.color.neutral.11}",
37096
37834
  "dark-tritanopia-high-contrast": "{base.color.neutral.11}",
37097
37835
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.11}"
37836
+ },
37837
+ "org.primer.llm": {
37838
+ "usage": ["neutral-icon", "neutral-text"],
37839
+ "rules": "Use for neutral semantic elements. Prefer fgColor.muted for secondary text."
37098
37840
  }
37099
37841
  },
37100
37842
  "key": "{fgColor.neutral}"
@@ -37107,6 +37849,7 @@
37107
37849
  "key": "{fgColor.onEmphasis}",
37108
37850
  "$value": "#ffffff",
37109
37851
  "$type": "color",
37852
+ "$description": "Text color for use on emphasis backgrounds",
37110
37853
  "$extensions": {
37111
37854
  "org.primer.figma": {
37112
37855
  "collection": "mode",
@@ -37120,6 +37863,10 @@
37120
37863
  "dark": "#ffffff",
37121
37864
  "dark-dimmed": "#f0f6fc",
37122
37865
  "dark-dimmed-high-contrast": "#ffffff"
37866
+ },
37867
+ "org.primer.llm": {
37868
+ "usage": ["text-on-emphasis", "contrast-text"],
37869
+ "rules": "MUST use for text on any emphasis background (bgColor.*.emphasis). Ensures accessibility contrast."
37123
37870
  }
37124
37871
  },
37125
37872
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37127,6 +37874,7 @@
37127
37874
  "original": {
37128
37875
  "$value": "{base.color.neutral.13}",
37129
37876
  "$type": "color",
37877
+ "$description": "Text color for use on emphasis backgrounds",
37130
37878
  "$extensions": {
37131
37879
  "org.primer.figma": {
37132
37880
  "collection": "mode",
@@ -37140,6 +37888,10 @@
37140
37888
  "dark": "{base.color.neutral.13}",
37141
37889
  "dark-dimmed": "{base.color.neutral.12}",
37142
37890
  "dark-dimmed-high-contrast": "#ffffff"
37891
+ },
37892
+ "org.primer.llm": {
37893
+ "usage": ["text-on-emphasis", "contrast-text"],
37894
+ "rules": "MUST use for text on any emphasis background (bgColor.*.emphasis). Ensures accessibility contrast."
37143
37895
  }
37144
37896
  },
37145
37897
  "key": "{fgColor.onEmphasis}"
@@ -37152,11 +37904,16 @@
37152
37904
  "key": "{fgColor.onInverse}",
37153
37905
  "$value": "#010409",
37154
37906
  "$type": "color",
37907
+ "$description": "Text color for use on inverse backgrounds",
37155
37908
  "$extensions": {
37156
37909
  "org.primer.figma": {
37157
37910
  "collection": "mode",
37158
37911
  "group": "semantic",
37159
37912
  "scopes": ["fgColor"]
37913
+ },
37914
+ "org.primer.llm": {
37915
+ "usage": ["text-on-inverse", "inverse-text"],
37916
+ "rules": "Use for text on bgColor.inverse. Provides appropriate contrast in both themes."
37160
37917
  }
37161
37918
  },
37162
37919
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37164,11 +37921,16 @@
37164
37921
  "original": {
37165
37922
  "$value": "{base.color.neutral.0}",
37166
37923
  "$type": "color",
37924
+ "$description": "Text color for use on inverse backgrounds",
37167
37925
  "$extensions": {
37168
37926
  "org.primer.figma": {
37169
37927
  "collection": "mode",
37170
37928
  "group": "semantic",
37171
37929
  "scopes": ["fgColor"]
37930
+ },
37931
+ "org.primer.llm": {
37932
+ "usage": ["text-on-inverse", "inverse-text"],
37933
+ "rules": "Use for text on bgColor.inverse. Provides appropriate contrast in both themes."
37172
37934
  }
37173
37935
  },
37174
37936
  "key": "{fgColor.onInverse}"
@@ -37181,6 +37943,7 @@
37181
37943
  "key": "{fgColor.open}",
37182
37944
  "$value": "#ffb757",
37183
37945
  "$type": "color",
37946
+ "$description": "Text color for open state indicators (issues, PRs)",
37184
37947
  "$extensions": {
37185
37948
  "org.primer.figma": {
37186
37949
  "collection": "mode",
@@ -37199,6 +37962,10 @@
37199
37962
  "dark-tritanopia-high-contrast": "#ffb1af",
37200
37963
  "light-tritanopia": "#ff6a69",
37201
37964
  "light-tritanopia-high-contrast": "#ff4445"
37965
+ },
37966
+ "org.primer.llm": {
37967
+ "usage": ["open-text", "open-issue", "open-pr"],
37968
+ "rules": "Use for open/active status text. Specifically for GitHub issues and PRs."
37202
37969
  }
37203
37970
  },
37204
37971
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37206,6 +37973,7 @@
37206
37973
  "original": {
37207
37974
  "$value": "{base.color.orange.2}",
37208
37975
  "$type": "color",
37976
+ "$description": "Text color for open state indicators (issues, PRs)",
37209
37977
  "$extensions": {
37210
37978
  "org.primer.figma": {
37211
37979
  "collection": "mode",
@@ -37224,6 +37992,10 @@
37224
37992
  "dark-tritanopia-high-contrast": "{base.color.red.2}",
37225
37993
  "light-tritanopia": "{base.color.red.5}",
37226
37994
  "light-tritanopia-high-contrast": "{base.color.red.6}"
37995
+ },
37996
+ "org.primer.llm": {
37997
+ "usage": ["open-text", "open-issue", "open-pr"],
37998
+ "rules": "Use for open/active status text. Specifically for GitHub issues and PRs."
37227
37999
  }
37228
38000
  },
37229
38001
  "key": "{fgColor.open}"
@@ -37236,6 +38008,7 @@
37236
38008
  "key": "{fgColor.severe}",
37237
38009
  "$value": "#fe9a2d",
37238
38010
  "$type": "color",
38011
+ "$description": "Severe text for high-priority warnings",
37239
38012
  "$extensions": {
37240
38013
  "org.primer.figma": {
37241
38014
  "collection": "mode",
@@ -37256,6 +38029,10 @@
37256
38029
  "light-tritanopia": "#ff6a69",
37257
38030
  "light-tritanopia-high-contrast": "#ff4445",
37258
38031
  "light-protanopia-deuteranopia-high-contrast": "#d57014"
38032
+ },
38033
+ "org.primer.llm": {
38034
+ "usage": ["severe-text", "urgent-text", "severe-icon"],
38035
+ "rules": "Use for severe warnings, less critical than danger. Pair with bgColor.severe.muted for backgrounds."
37259
38036
  }
37260
38037
  },
37261
38038
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37263,6 +38040,7 @@
37263
38040
  "original": {
37264
38041
  "$value": "{base.color.orange.3}",
37265
38042
  "$type": "color",
38043
+ "$description": "Severe text for high-priority warnings",
37266
38044
  "$extensions": {
37267
38045
  "org.primer.figma": {
37268
38046
  "collection": "mode",
@@ -37283,6 +38061,10 @@
37283
38061
  "light-tritanopia": "{base.color.red.5}",
37284
38062
  "light-tritanopia-high-contrast": "{base.color.red.6}",
37285
38063
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.6}"
38064
+ },
38065
+ "org.primer.llm": {
38066
+ "usage": ["severe-text", "urgent-text", "severe-icon"],
38067
+ "rules": "Use for severe warnings, less critical than danger. Pair with bgColor.severe.muted for backgrounds."
37286
38068
  }
37287
38069
  },
37288
38070
  "key": "{fgColor.severe}"
@@ -37295,6 +38077,7 @@
37295
38077
  "key": "{fgColor.sponsors}",
37296
38078
  "$value": "#ff90c8",
37297
38079
  "$type": "color",
38080
+ "$description": "Text color for GitHub Sponsors content",
37298
38081
  "$extensions": {
37299
38082
  "org.primer.figma": {
37300
38083
  "collection": "mode",
@@ -37313,6 +38096,10 @@
37313
38096
  "light-high-contrast": "#e456a3",
37314
38097
  "light-protanopia-deuteranopia-high-contrast": "#e456a3",
37315
38098
  "light-tritanopia-high-contrast": "#e456a3"
38099
+ },
38100
+ "org.primer.llm": {
38101
+ "usage": ["sponsors-text", "funding-text", "sponsors-icon"],
38102
+ "rules": "Use for GitHub Sponsors related text. Do NOT use for general pink-colored text."
37316
38103
  }
37317
38104
  },
37318
38105
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37320,6 +38107,7 @@
37320
38107
  "original": {
37321
38108
  "$value": "#FF90C8",
37322
38109
  "$type": "color",
38110
+ "$description": "Text color for GitHub Sponsors content",
37323
38111
  "$extensions": {
37324
38112
  "org.primer.figma": {
37325
38113
  "collection": "mode",
@@ -37338,6 +38126,10 @@
37338
38126
  "light-high-contrast": "{base.color.pink.6}",
37339
38127
  "light-protanopia-deuteranopia-high-contrast": "{base.color.pink.6}",
37340
38128
  "light-tritanopia-high-contrast": "{base.color.pink.6}"
38129
+ },
38130
+ "org.primer.llm": {
38131
+ "usage": ["sponsors-text", "funding-text", "sponsors-icon"],
38132
+ "rules": "Use for GitHub Sponsors related text. Do NOT use for general pink-colored text."
37341
38133
  }
37342
38134
  },
37343
38135
  "key": "{fgColor.sponsors}"
@@ -37350,6 +38142,7 @@
37350
38142
  "key": "{fgColor.success}",
37351
38143
  "$value": "#addcff",
37352
38144
  "$type": "color",
38145
+ "$description": "Success text for positive feedback and completed states",
37353
38146
  "$extensions": {
37354
38147
  "org.primer.figma": {
37355
38148
  "collection": "mode",
@@ -37372,6 +38165,10 @@
37372
38165
  "dark-tritanopia-high-contrast": "#91cbff",
37373
38166
  "light-tritanopia": "#409eff",
37374
38167
  "light-tritanopia-high-contrast": "#318bf8"
38168
+ },
38169
+ "org.primer.llm": {
38170
+ "usage": ["success-text", "positive-text", "success-icon"],
38171
+ "rules": "Use for success states and positive feedback text. Pair with bgColor.success.muted for backgrounds."
37375
38172
  }
37376
38173
  },
37377
38174
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37379,6 +38176,7 @@
37379
38176
  "original": {
37380
38177
  "$value": "{base.color.blue.1}",
37381
38178
  "$type": "color",
38179
+ "$description": "Success text for positive feedback and completed states",
37382
38180
  "$extensions": {
37383
38181
  "org.primer.figma": {
37384
38182
  "collection": "mode",
@@ -37401,6 +38199,10 @@
37401
38199
  "dark-tritanopia-high-contrast": "{base.color.blue.2}",
37402
38200
  "light-tritanopia": "{base.color.blue.5}",
37403
38201
  "light-tritanopia-high-contrast": "{base.color.blue.6}"
38202
+ },
38203
+ "org.primer.llm": {
38204
+ "usage": ["success-text", "positive-text", "success-icon"],
38205
+ "rules": "Use for success states and positive feedback text. Pair with bgColor.success.muted for backgrounds."
37404
38206
  }
37405
38207
  },
37406
38208
  "key": "{fgColor.success}"
@@ -37413,6 +38215,7 @@
37413
38215
  "key": "{fgColor.upsell}",
37414
38216
  "$value": "#d3abff",
37415
38217
  "$type": "color",
38218
+ "$description": "Text color for upsell and promotional content",
37416
38219
  "$extensions": {
37417
38220
  "org.primer.figma": {
37418
38221
  "collection": "mode",
@@ -37421,6 +38224,10 @@
37421
38224
  "codeSyntax": {
37422
38225
  "web": "var(--fgColor-upsell)"
37423
38226
  }
38227
+ },
38228
+ "org.primer.llm": {
38229
+ "usage": ["upsell-text", "premium-text", "promotional"],
38230
+ "rules": "Use for upgrade prompts and premium feature text. Do NOT use for regular content."
37424
38231
  }
37425
38232
  },
37426
38233
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37428,6 +38235,7 @@
37428
38235
  "original": {
37429
38236
  "$value": "{fgColor.done}",
37430
38237
  "$type": "color",
38238
+ "$description": "Text color for upsell and promotional content",
37431
38239
  "$extensions": {
37432
38240
  "org.primer.figma": {
37433
38241
  "collection": "mode",
@@ -37436,6 +38244,10 @@
37436
38244
  "codeSyntax": {
37437
38245
  "web": "var(--fgColor-upsell)"
37438
38246
  }
38247
+ },
38248
+ "org.primer.llm": {
38249
+ "usage": ["upsell-text", "premium-text", "promotional"],
38250
+ "rules": "Use for upgrade prompts and premium feature text. Do NOT use for regular content."
37439
38251
  }
37440
38252
  },
37441
38253
  "key": "{fgColor.upsell}"
@@ -37448,6 +38260,7 @@
37448
38260
  "key": "{fgColor.white}",
37449
38261
  "$value": "#ffffff",
37450
38262
  "$type": "color",
38263
+ "$description": "Pure white text",
37451
38264
  "$extensions": {
37452
38265
  "org.primer.figma": {
37453
38266
  "collection": "mode",
@@ -37456,6 +38269,10 @@
37456
38269
  },
37457
38270
  "org.primer.overrides": {
37458
38271
  "dark": "#ffffff"
38272
+ },
38273
+ "org.primer.llm": {
38274
+ "doNotUse": true,
38275
+ "rules": "Avoid using raw white. Use semantic alternatives: fgColor.onEmphasis for text on dark backgrounds, fgColor.onInverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
37459
38276
  }
37460
38277
  },
37461
38278
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37463,6 +38280,7 @@
37463
38280
  "original": {
37464
38281
  "$value": "{base.color.neutral.13}",
37465
38282
  "$type": "color",
38283
+ "$description": "Pure white text",
37466
38284
  "$extensions": {
37467
38285
  "org.primer.figma": {
37468
38286
  "collection": "mode",
@@ -37471,6 +38289,10 @@
37471
38289
  },
37472
38290
  "org.primer.overrides": {
37473
38291
  "dark": "{base.color.neutral.13}"
38292
+ },
38293
+ "org.primer.llm": {
38294
+ "doNotUse": true,
38295
+ "rules": "Avoid using raw white. Use semantic alternatives: fgColor.onEmphasis for text on dark backgrounds, fgColor.onInverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
37474
38296
  }
37475
38297
  },
37476
38298
  "key": "{fgColor.white}"
@@ -37483,6 +38305,13 @@
37483
38305
  "key": "{focus.outline}",
37484
38306
  "$value": "2px solid #409eff",
37485
38307
  "$type": "border",
38308
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38309
+ "$extensions": {
38310
+ "org.primer.llm": {
38311
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38312
+ "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."
38313
+ }
38314
+ },
37486
38315
  "filePath": "src/tokens/functional/border/border.json5",
37487
38316
  "isSource": true,
37488
38317
  "original": {
@@ -37492,6 +38321,13 @@
37492
38321
  "width": "2px"
37493
38322
  },
37494
38323
  "$type": "border",
38324
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38325
+ "$extensions": {
38326
+ "org.primer.llm": {
38327
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38328
+ "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."
38329
+ }
38330
+ },
37495
38331
  "key": "{focus.outline}"
37496
38332
  },
37497
38333
  "name": "focus-outline",
@@ -37502,11 +38338,16 @@
37502
38338
  "key": "{focus.outlineColor}",
37503
38339
  "$value": "#409eff",
37504
38340
  "$type": "color",
38341
+ "$description": "Outline color for focus states on interactive elements",
37505
38342
  "$extensions": {
37506
38343
  "org.primer.figma": {
37507
38344
  "collection": "mode",
37508
38345
  "group": "component (internal)",
37509
38346
  "scopes": ["borderColor", "effectColor"]
38347
+ },
38348
+ "org.primer.llm": {
38349
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38350
+ "rules": "Use for focus outlines on interactive elements like buttons, links, and form controls. MUST be visible for keyboard navigation accessibility. Do NOT use for decorative borders or non-interactive elements."
37510
38351
  }
37511
38352
  },
37512
38353
  "filePath": "src/tokens/functional/color/focus.json5",
@@ -37514,11 +38355,16 @@
37514
38355
  "original": {
37515
38356
  "$value": "{borderColor.accent.emphasis}",
37516
38357
  "$type": "color",
38358
+ "$description": "Outline color for focus states on interactive elements",
37517
38359
  "$extensions": {
37518
38360
  "org.primer.figma": {
37519
38361
  "collection": "mode",
37520
38362
  "group": "component (internal)",
37521
38363
  "scopes": ["borderColor", "effectColor"]
38364
+ },
38365
+ "org.primer.llm": {
38366
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38367
+ "rules": "Use for focus outlines on interactive elements like buttons, links, and form controls. MUST be visible for keyboard navigation accessibility. Do NOT use for decorative borders or non-interactive elements."
37522
38368
  }
37523
38369
  },
37524
38370
  "key": "{focus.outlineColor}"
@@ -46574,6 +47420,7 @@
46574
47420
  "key": "{selection.bgColor}",
46575
47421
  "$value": "#194fb1b3",
46576
47422
  "$type": "color",
47423
+ "$description": "Background color for text selection highlights",
46577
47424
  "$extensions": {
46578
47425
  "org.primer.figma": {
46579
47426
  "collection": "mode",
@@ -46588,6 +47435,10 @@
46588
47435
  "isSource": true,
46589
47436
  "$type": "color"
46590
47437
  }
47438
+ },
47439
+ "org.primer.llm": {
47440
+ "usage": ["text-selection", "highlighted-text", "selected-content"],
47441
+ "rules": "Use for native text selection (::selection) and programmatic text highlighting. Do NOT use for general emphasis or background colors on containers."
46591
47442
  }
46592
47443
  },
46593
47444
  "alpha": 0.7,
@@ -46596,6 +47447,7 @@
46596
47447
  "original": {
46597
47448
  "$value": "{bgColor.accent.emphasis}",
46598
47449
  "$type": "color",
47450
+ "$description": "Background color for text selection highlights",
46599
47451
  "$extensions": {
46600
47452
  "org.primer.figma": {
46601
47453
  "collection": "mode",
@@ -46610,6 +47462,10 @@
46610
47462
  "isSource": true,
46611
47463
  "$type": "color"
46612
47464
  }
47465
+ },
47466
+ "org.primer.llm": {
47467
+ "usage": ["text-selection", "highlighted-text", "selected-content"],
47468
+ "rules": "Use for native text selection (::selection) and programmatic text highlighting. Do NOT use for general emphasis or background colors on containers."
46613
47469
  }
46614
47470
  },
46615
47471
  "alpha": 0.7,
@@ -46623,6 +47479,7 @@
46623
47479
  "key": "{shadow.floating.large}",
46624
47480
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 24px 48px 0px #010409",
46625
47481
  "$type": "shadow",
47482
+ "$description": "Large floating shadow for modals and dialogs",
46626
47483
  "$extensions": {
46627
47484
  "org.primer.figma": {
46628
47485
  "collection": "mode",
@@ -46652,6 +47509,10 @@
46652
47509
  "isSource": true,
46653
47510
  "$type": "shadow"
46654
47511
  }
47512
+ },
47513
+ "org.primer.llm": {
47514
+ "usage": ["modal", "dialog", "full-screen-overlay"],
47515
+ "rules": "MUST use for modals and dialogs. Do NOT use for small floating elements."
46655
47516
  }
46656
47517
  },
46657
47518
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46676,6 +47537,7 @@
46676
47537
  }
46677
47538
  ],
46678
47539
  "$type": "shadow",
47540
+ "$description": "Large floating shadow for modals and dialogs",
46679
47541
  "$extensions": {
46680
47542
  "org.primer.figma": {
46681
47543
  "collection": "mode",
@@ -46705,6 +47567,10 @@
46705
47567
  "isSource": true,
46706
47568
  "$type": "shadow"
46707
47569
  }
47570
+ },
47571
+ "org.primer.llm": {
47572
+ "usage": ["modal", "dialog", "full-screen-overlay"],
47573
+ "rules": "MUST use for modals and dialogs. Do NOT use for small floating elements."
46708
47574
  }
46709
47575
  },
46710
47576
  "key": "{shadow.floating.large}"
@@ -46717,6 +47583,7 @@
46717
47583
  "key": "{shadow.floating.legacy}",
46718
47584
  "$value": "0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966",
46719
47585
  "$type": "shadow",
47586
+ "$description": "Legacy floating shadow for backward compatibility",
46720
47587
  "$extensions": {
46721
47588
  "org.primer.figma": {},
46722
47589
  "org.primer.overrides": {
@@ -46743,6 +47610,10 @@
46743
47610
  "isSource": true,
46744
47611
  "$type": "shadow"
46745
47612
  }
47613
+ },
47614
+ "org.primer.llm": {
47615
+ "usage": ["legacy-component", "backward-compatibility"],
47616
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
46746
47617
  }
46747
47618
  },
46748
47619
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46767,6 +47638,7 @@
46767
47638
  }
46768
47639
  ],
46769
47640
  "$type": "shadow",
47641
+ "$description": "Legacy floating shadow for backward compatibility",
46770
47642
  "$extensions": {
46771
47643
  "org.primer.figma": {},
46772
47644
  "org.primer.overrides": {
@@ -46793,6 +47665,10 @@
46793
47665
  "isSource": true,
46794
47666
  "$type": "shadow"
46795
47667
  }
47668
+ },
47669
+ "org.primer.llm": {
47670
+ "usage": ["legacy-component", "backward-compatibility"],
47671
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
46796
47672
  }
46797
47673
  },
46798
47674
  "key": "{shadow.floating.legacy}"
@@ -46805,6 +47681,7 @@
46805
47681
  "key": "{shadow.floating.medium}",
46806
47682
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 8px 16px -4px #01040966, 0px 4px 32px -4px #01040966, 0px 24px 48px -12px #01040966, 0px 48px 96px -24px #01040966",
46807
47683
  "$type": "shadow",
47684
+ "$description": "Medium floating shadow for popovers and action menus",
46808
47685
  "$extensions": {
46809
47686
  "org.primer.figma": {
46810
47687
  "collection": "mode",
@@ -46858,6 +47735,10 @@
46858
47735
  "isSource": true,
46859
47736
  "$type": "shadow"
46860
47737
  }
47738
+ },
47739
+ "org.primer.llm": {
47740
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47741
+ "rules": "Use for medium-sized floating elements like popovers and action menus. More prominent than small but less than dialogs. Do NOT use for full modals."
46861
47742
  }
46862
47743
  },
46863
47744
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46906,6 +47787,7 @@
46906
47787
  }
46907
47788
  ],
46908
47789
  "$type": "shadow",
47790
+ "$description": "Medium floating shadow for popovers and action menus",
46909
47791
  "$extensions": {
46910
47792
  "org.primer.figma": {
46911
47793
  "collection": "mode",
@@ -46959,6 +47841,10 @@
46959
47841
  "isSource": true,
46960
47842
  "$type": "shadow"
46961
47843
  }
47844
+ },
47845
+ "org.primer.llm": {
47846
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47847
+ "rules": "Use for medium-sized floating elements like popovers and action menus. More prominent than small but less than dialogs. Do NOT use for full modals."
46962
47848
  }
46963
47849
  },
46964
47850
  "key": "{shadow.floating.medium}"
@@ -46971,6 +47857,7 @@
46971
47857
  "key": "{shadow.floating.small}",
46972
47858
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966",
46973
47859
  "$type": "shadow",
47860
+ "$description": "Small floating shadow for dropdowns, tooltips, and small overlays",
46974
47861
  "$extensions": {
46975
47862
  "org.primer.figma": {
46976
47863
  "collection": "mode",
@@ -47008,6 +47895,10 @@
47008
47895
  "isSource": true,
47009
47896
  "$type": "shadow"
47010
47897
  }
47898
+ },
47899
+ "org.primer.llm": {
47900
+ "usage": ["dropdown", "tooltip", "popover", "menu"],
47901
+ "rules": "Use for small floating elements like dropdowns and tooltips. Do NOT use for modals or dialogs."
47011
47902
  }
47012
47903
  },
47013
47904
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47040,6 +47931,7 @@
47040
47931
  }
47041
47932
  ],
47042
47933
  "$type": "shadow",
47934
+ "$description": "Small floating shadow for dropdowns, tooltips, and small overlays",
47043
47935
  "$extensions": {
47044
47936
  "org.primer.figma": {
47045
47937
  "collection": "mode",
@@ -47077,6 +47969,10 @@
47077
47969
  "isSource": true,
47078
47970
  "$type": "shadow"
47079
47971
  }
47972
+ },
47973
+ "org.primer.llm": {
47974
+ "usage": ["dropdown", "tooltip", "popover", "menu"],
47975
+ "rules": "Use for small floating elements like dropdowns and tooltips. Do NOT use for modals or dialogs."
47080
47976
  }
47081
47977
  },
47082
47978
  "key": "{shadow.floating.small}"
@@ -47089,6 +47985,7 @@
47089
47985
  "key": "{shadow.floating.xlarge}",
47090
47986
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 32px 64px 0px #010409",
47091
47987
  "$type": "shadow",
47988
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47092
47989
  "$extensions": {
47093
47990
  "org.primer.figma": {
47094
47991
  "collection": "mode",
@@ -47118,6 +48015,10 @@
47118
48015
  "isSource": true,
47119
48016
  "$type": "shadow"
47120
48017
  }
48018
+ },
48019
+ "org.primer.llm": {
48020
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48021
+ "rules": "Use for full-screen or near-full-screen overlays like side sheets and drawers. Maximum elevation in the system. Do NOT use for small floating elements."
47121
48022
  }
47122
48023
  },
47123
48024
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47142,6 +48043,7 @@
47142
48043
  }
47143
48044
  ],
47144
48045
  "$type": "shadow",
48046
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47145
48047
  "$extensions": {
47146
48048
  "org.primer.figma": {
47147
48049
  "collection": "mode",
@@ -47171,6 +48073,10 @@
47171
48073
  "isSource": true,
47172
48074
  "$type": "shadow"
47173
48075
  }
48076
+ },
48077
+ "org.primer.llm": {
48078
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48079
+ "rules": "Use for full-screen or near-full-screen overlays like side sheets and drawers. Maximum elevation in the system. Do NOT use for small floating elements."
47174
48080
  }
47175
48081
  },
47176
48082
  "key": "{shadow.floating.xlarge}"
@@ -47183,6 +48089,7 @@
47183
48089
  "key": "{shadow.inset}",
47184
48090
  "$value": "inset 0px 1px 0px 0px #0104093d",
47185
48091
  "$type": "shadow",
48092
+ "$description": "Inset shadow for recessed elements",
47186
48093
  "$extensions": {
47187
48094
  "org.primer.figma": {
47188
48095
  "collection": "mode",
@@ -47203,6 +48110,10 @@
47203
48110
  "isSource": true,
47204
48111
  "$type": "shadow"
47205
48112
  }
48113
+ },
48114
+ "org.primer.llm": {
48115
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48116
+ "rules": "Use for elements that appear pressed or inset into the surface. Commonly used for input fields and wells. Do NOT use for floating elements."
47206
48117
  }
47207
48118
  },
47208
48119
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47218,6 +48129,7 @@
47218
48129
  "inset": true
47219
48130
  },
47220
48131
  "$type": "shadow",
48132
+ "$description": "Inset shadow for recessed elements",
47221
48133
  "$extensions": {
47222
48134
  "org.primer.figma": {
47223
48135
  "collection": "mode",
@@ -47238,6 +48150,10 @@
47238
48150
  "isSource": true,
47239
48151
  "$type": "shadow"
47240
48152
  }
48153
+ },
48154
+ "org.primer.llm": {
48155
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48156
+ "rules": "Use for elements that appear pressed or inset into the surface. Commonly used for input fields and wells. Do NOT use for floating elements."
47241
48157
  }
47242
48158
  },
47243
48159
  "key": "{shadow.inset}"
@@ -47250,6 +48166,7 @@
47250
48166
  "key": "{shadow.resting.medium}",
47251
48167
  "$value": "0px 1px 1px 0px #01040966, 0px 3px 6px 0px #010409cc",
47252
48168
  "$type": "shadow",
48169
+ "$description": "Medium resting shadow for cards and elevated surfaces",
47253
48170
  "$extensions": {
47254
48171
  "org.primer.figma": {
47255
48172
  "collection": "mode",
@@ -47279,6 +48196,10 @@
47279
48196
  "isSource": true,
47280
48197
  "$type": "shadow"
47281
48198
  }
48199
+ },
48200
+ "org.primer.llm": {
48201
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48202
+ "rules": "Use for cards and content panels that sit above the page surface. Provides moderate elevation without appearing to float. Do NOT use for overlays or modals."
47282
48203
  }
47283
48204
  },
47284
48205
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47303,6 +48224,7 @@
47303
48224
  }
47304
48225
  ],
47305
48226
  "$type": "shadow",
48227
+ "$description": "Medium resting shadow for cards and elevated surfaces",
47306
48228
  "$extensions": {
47307
48229
  "org.primer.figma": {
47308
48230
  "collection": "mode",
@@ -47332,6 +48254,10 @@
47332
48254
  "isSource": true,
47333
48255
  "$type": "shadow"
47334
48256
  }
48257
+ },
48258
+ "org.primer.llm": {
48259
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48260
+ "rules": "Use for cards and content panels that sit above the page surface. Provides moderate elevation without appearing to float. Do NOT use for overlays or modals."
47335
48261
  }
47336
48262
  },
47337
48263
  "key": "{shadow.resting.medium}"
@@ -47344,6 +48270,7 @@
47344
48270
  "key": "{shadow.resting.small}",
47345
48271
  "$value": "0px 1px 1px 0px #01040999, 0px 1px 3px 0px #01040999",
47346
48272
  "$type": "shadow",
48273
+ "$description": "Small resting shadow for buttons and interactive elements",
47347
48274
  "$extensions": {
47348
48275
  "org.primer.figma": {
47349
48276
  "collection": "mode",
@@ -47375,6 +48302,10 @@
47375
48302
  "isSource": true,
47376
48303
  "$type": "shadow"
47377
48304
  }
48305
+ },
48306
+ "org.primer.llm": {
48307
+ "usage": ["button", "interactive-card", "clickable-element"],
48308
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
47378
48309
  }
47379
48310
  },
47380
48311
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47401,6 +48332,7 @@
47401
48332
  }
47402
48333
  ],
47403
48334
  "$type": "shadow",
48335
+ "$description": "Small resting shadow for buttons and interactive elements",
47404
48336
  "$extensions": {
47405
48337
  "org.primer.figma": {
47406
48338
  "collection": "mode",
@@ -47432,6 +48364,10 @@
47432
48364
  "isSource": true,
47433
48365
  "$type": "shadow"
47434
48366
  }
48367
+ },
48368
+ "org.primer.llm": {
48369
+ "usage": ["button", "interactive-card", "clickable-element"],
48370
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
47435
48371
  }
47436
48372
  },
47437
48373
  "key": "{shadow.resting.small}"
@@ -47444,6 +48380,7 @@
47444
48380
  "key": "{shadow.resting.xsmall}",
47445
48381
  "$value": "0px 1px 1px 0px #010409cc",
47446
48382
  "$type": "shadow",
48383
+ "$description": "Extra small resting shadow for minimal elevation",
47447
48384
  "$extensions": {
47448
48385
  "org.primer.figma": {
47449
48386
  "collection": "mode",
@@ -47464,6 +48401,10 @@
47464
48401
  "isSource": true,
47465
48402
  "$type": "shadow"
47466
48403
  }
48404
+ },
48405
+ "org.primer.llm": {
48406
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48407
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
47467
48408
  }
47468
48409
  },
47469
48410
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47479,6 +48420,7 @@
47479
48420
  "inset": false
47480
48421
  },
47481
48422
  "$type": "shadow",
48423
+ "$description": "Extra small resting shadow for minimal elevation",
47482
48424
  "$extensions": {
47483
48425
  "org.primer.figma": {
47484
48426
  "collection": "mode",
@@ -47499,6 +48441,10 @@
47499
48441
  "isSource": true,
47500
48442
  "$type": "shadow"
47501
48443
  }
48444
+ },
48445
+ "org.primer.llm": {
48446
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48447
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
47502
48448
  }
47503
48449
  },
47504
48450
  "key": "{shadow.resting.xsmall}"