@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": "#1f6feb",
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": "#0d419d",
313
314
  "dark-tritanopia-high-contrast": "#051d4d",
314
315
  "dark-protanopia-deuteranopia-high-contrast": "#051d4d"
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.5}",
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": "#388bfd1a",
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": "#9e6a03",
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": "#693e00",
416
437
  "dark-protanopia-deuteranopia-high-contrast": "#341a00",
417
438
  "dark-tritanopia-high-contrast": "#341a00"
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.5}",
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": "#bb800926",
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": "#656c76",
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": "#656c76",
557
608
  "dark-protanopia-deuteranopia": "#656c76",
558
609
  "dark-protanopia-deuteranopia-high-contrast": "#656c76"
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": "#656c761a",
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": "#bd561d",
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": "#490202",
702
773
  "dark-dimmed-high-contrast": "#8e1519",
703
774
  "dark-tritanopia-high-contrast": "#490202"
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.5}",
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": "#db6d281a",
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.orange.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": "#0d1117",
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.1}",
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": "#212830",
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.3}",
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": "#8957e5",
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": "#553098",
927
1038
  "dark-tritanopia-high-contrast": "#271052",
928
1039
  "dark-protanopia-deuteranopia-high-contrast": "#271052"
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.5}",
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": "#ab7df826",
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": "#656c76",
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": "#656c761a",
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": "#656c76",
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.8}",
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": "#656c7633",
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",
@@ -1410,6 +1615,7 @@
1410
1615
  "original": {
1411
1616
  "$value": "{base.color.neutral.8}",
1412
1617
  "$type": "color",
1618
+ "$description": "Subtle neutral background for tags, labels, and secondary UI elements",
1413
1619
  "$extensions": {
1414
1620
  "org.primer.figma": {
1415
1621
  "collection": "mode",
@@ -1437,6 +1643,10 @@
1437
1643
  "dark-high-contrast": "{base.color.neutral.3}",
1438
1644
  "dark-tritanopia-high-contrast": "{base.color.neutral.3}",
1439
1645
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.3}"
1646
+ },
1647
+ "org.primer.llm": {
1648
+ "usage": ["neutral-label", "neutral-badge", "secondary-tag", "counter"],
1649
+ "rules": "Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators."
1440
1650
  }
1441
1651
  },
1442
1652
  "alpha": 0.2,
@@ -1450,6 +1660,7 @@
1450
1660
  "key": "{bgColor.open.emphasis}",
1451
1661
  "$value": "#bd561d",
1452
1662
  "$type": "color",
1663
+ "$description": "Strong background for open state badges and labels",
1453
1664
  "$extensions": {
1454
1665
  "org.primer.figma": {
1455
1666
  "collection": "mode",
@@ -1468,6 +1679,10 @@
1468
1679
  "light-protanopia-deuteranopia-high-contrast": "#bd561d",
1469
1680
  "dark-protanopia-deuteranopia": "#bd561d",
1470
1681
  "dark-protanopia-deuteranopia-high-contrast": "#3d1300"
1682
+ },
1683
+ "org.primer.llm": {
1684
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1685
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1471
1686
  }
1472
1687
  },
1473
1688
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1475,6 +1690,7 @@
1475
1690
  "original": {
1476
1691
  "$value": "{base.color.orange.5}",
1477
1692
  "$type": "color",
1693
+ "$description": "Strong background for open state badges and labels",
1478
1694
  "$extensions": {
1479
1695
  "org.primer.figma": {
1480
1696
  "collection": "mode",
@@ -1493,6 +1709,10 @@
1493
1709
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
1494
1710
  "dark-protanopia-deuteranopia": "{base.color.orange.5}",
1495
1711
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1712
+ },
1713
+ "org.primer.llm": {
1714
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1715
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1496
1716
  }
1497
1717
  },
1498
1718
  "key": "{bgColor.open.emphasis}"
@@ -1505,6 +1725,7 @@
1505
1725
  "key": "{bgColor.open.muted}",
1506
1726
  "$value": "#db6d281a",
1507
1727
  "$type": "color",
1728
+ "$description": "Subtle background for open state indicators (issues, PRs)",
1508
1729
  "$extensions": {
1509
1730
  "org.primer.figma": {
1510
1731
  "collection": "mode",
@@ -1547,6 +1768,10 @@
1547
1768
  "isSource": true,
1548
1769
  "$type": "color"
1549
1770
  }
1771
+ },
1772
+ "org.primer.llm": {
1773
+ "usage": ["open-issue", "open-pr", "active-status"],
1774
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1550
1775
  }
1551
1776
  },
1552
1777
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1555,6 +1780,7 @@
1555
1780
  "original": {
1556
1781
  "$value": "{base.color.orange.4}",
1557
1782
  "$type": "color",
1783
+ "$description": "Subtle background for open state indicators (issues, PRs)",
1558
1784
  "$extensions": {
1559
1785
  "org.primer.figma": {
1560
1786
  "collection": "mode",
@@ -1597,6 +1823,10 @@
1597
1823
  "isSource": true,
1598
1824
  "$type": "color"
1599
1825
  }
1826
+ },
1827
+ "org.primer.llm": {
1828
+ "usage": ["open-issue", "open-pr", "active-status"],
1829
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1600
1830
  }
1601
1831
  },
1602
1832
  "alpha": 0.1,
@@ -1610,6 +1840,7 @@
1610
1840
  "key": "{bgColor.severe.emphasis}",
1611
1841
  "$value": "#bd561d",
1612
1842
  "$type": "color",
1843
+ "$description": "Strong severe background for prominent high-priority warnings",
1613
1844
  "$extensions": {
1614
1845
  "org.primer.figma": {
1615
1846
  "collection": "mode",
@@ -1627,6 +1858,10 @@
1627
1858
  "dark-high-contrast": "#3d1300",
1628
1859
  "dark-dimmed-high-contrast": "#762d0a",
1629
1860
  "dark-protanopia-deuteranopia-high-contrast": "#3d1300"
1861
+ },
1862
+ "org.primer.llm": {
1863
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1864
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1630
1865
  }
1631
1866
  },
1632
1867
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1634,6 +1869,7 @@
1634
1869
  "original": {
1635
1870
  "$value": "{base.color.orange.5}",
1636
1871
  "$type": "color",
1872
+ "$description": "Strong severe background for prominent high-priority warnings",
1637
1873
  "$extensions": {
1638
1874
  "org.primer.figma": {
1639
1875
  "collection": "mode",
@@ -1651,6 +1887,10 @@
1651
1887
  "dark-high-contrast": "{base.color.orange.9}",
1652
1888
  "dark-dimmed-high-contrast": "{base.color.orange.7}",
1653
1889
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1890
+ },
1891
+ "org.primer.llm": {
1892
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1893
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1654
1894
  }
1655
1895
  },
1656
1896
  "key": "{bgColor.severe.emphasis}"
@@ -1663,6 +1903,7 @@
1663
1903
  "key": "{bgColor.severe.muted}",
1664
1904
  "$value": "#db6d281a",
1665
1905
  "$type": "color",
1906
+ "$description": "Subtle severe background for high-priority warnings",
1666
1907
  "$extensions": {
1667
1908
  "org.primer.figma": {
1668
1909
  "collection": "mode",
@@ -1689,6 +1930,10 @@
1689
1930
  "isSource": true,
1690
1931
  "$type": "color"
1691
1932
  }
1933
+ },
1934
+ "org.primer.llm": {
1935
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1936
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1692
1937
  }
1693
1938
  },
1694
1939
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1697,6 +1942,7 @@
1697
1942
  "original": {
1698
1943
  "$value": "{base.color.orange.4}",
1699
1944
  "$type": "color",
1945
+ "$description": "Subtle severe background for high-priority warnings",
1700
1946
  "$extensions": {
1701
1947
  "org.primer.figma": {
1702
1948
  "collection": "mode",
@@ -1723,6 +1969,10 @@
1723
1969
  "isSource": true,
1724
1970
  "$type": "color"
1725
1971
  }
1972
+ },
1973
+ "org.primer.llm": {
1974
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1975
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1726
1976
  }
1727
1977
  },
1728
1978
  "alpha": 0.1,
@@ -1736,6 +1986,7 @@
1736
1986
  "key": "{bgColor.sponsors.emphasis}",
1737
1987
  "$value": "#bf4b8a",
1738
1988
  "$type": "color",
1989
+ "$description": "Strong background for prominent GitHub Sponsors elements",
1739
1990
  "$extensions": {
1740
1991
  "org.primer.figma": {
1741
1992
  "collection": "mode",
@@ -1750,6 +2001,10 @@
1750
2001
  "dark-dimmed-high-contrast": "#7d2457",
1751
2002
  "dark-tritanopia-high-contrast": "#42062a",
1752
2003
  "dark-protanopia-deuteranopia-high-contrast": "#42062a"
2004
+ },
2005
+ "org.primer.llm": {
2006
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
2007
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1753
2008
  }
1754
2009
  },
1755
2010
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1757,6 +2012,7 @@
1757
2012
  "original": {
1758
2013
  "$value": "{base.color.pink.5}",
1759
2014
  "$type": "color",
2015
+ "$description": "Strong background for prominent GitHub Sponsors elements",
1760
2016
  "$extensions": {
1761
2017
  "org.primer.figma": {
1762
2018
  "collection": "mode",
@@ -1771,6 +2027,10 @@
1771
2027
  "dark-dimmed-high-contrast": "{base.color.pink.7}",
1772
2028
  "dark-tritanopia-high-contrast": "{base.color.pink.9}",
1773
2029
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.pink.9}"
2030
+ },
2031
+ "org.primer.llm": {
2032
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
2033
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1774
2034
  }
1775
2035
  },
1776
2036
  "key": "{bgColor.sponsors.emphasis}"
@@ -1783,6 +2043,7 @@
1783
2043
  "key": "{bgColor.sponsors.muted}",
1784
2044
  "$value": "#db61a21a",
1785
2045
  "$type": "color",
2046
+ "$description": "Subtle background for GitHub Sponsors content",
1786
2047
  "$extensions": {
1787
2048
  "org.primer.figma": {
1788
2049
  "collection": "mode",
@@ -1807,6 +2068,10 @@
1807
2068
  "isSource": true,
1808
2069
  "$type": "color"
1809
2070
  }
2071
+ },
2072
+ "org.primer.llm": {
2073
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2074
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1810
2075
  }
1811
2076
  },
1812
2077
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1815,6 +2080,7 @@
1815
2080
  "original": {
1816
2081
  "$value": "{base.color.pink.4}",
1817
2082
  "$type": "color",
2083
+ "$description": "Subtle background for GitHub Sponsors content",
1818
2084
  "$extensions": {
1819
2085
  "org.primer.figma": {
1820
2086
  "collection": "mode",
@@ -1839,6 +2105,10 @@
1839
2105
  "isSource": true,
1840
2106
  "$type": "color"
1841
2107
  }
2108
+ },
2109
+ "org.primer.llm": {
2110
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2111
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1842
2112
  }
1843
2113
  },
1844
2114
  "alpha": 0.1,
@@ -1852,6 +2122,7 @@
1852
2122
  "key": "{bgColor.success.emphasis}",
1853
2123
  "$value": "#1f6feb",
1854
2124
  "$type": "color",
2125
+ "$description": "Strong success background for prominent positive actions",
1855
2126
  "$extensions": {
1856
2127
  "org.primer.figma": {
1857
2128
  "collection": "mode",
@@ -1874,6 +2145,10 @@
1874
2145
  "light-high-contrast": "#238636",
1875
2146
  "dark-high-contrast": "#04260f",
1876
2147
  "dark-dimmed-high-contrast": "#0f5323"
2148
+ },
2149
+ "org.primer.llm": {
2150
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2151
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1877
2152
  }
1878
2153
  },
1879
2154
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1881,6 +2156,7 @@
1881
2156
  "original": {
1882
2157
  "$value": "{base.color.blue.5}",
1883
2158
  "$type": "color",
2159
+ "$description": "Strong success background for prominent positive actions",
1884
2160
  "$extensions": {
1885
2161
  "org.primer.figma": {
1886
2162
  "collection": "mode",
@@ -1903,6 +2179,10 @@
1903
2179
  "light-high-contrast": "{base.color.green.5}",
1904
2180
  "dark-high-contrast": "{base.color.green.9}",
1905
2181
  "dark-dimmed-high-contrast": "{base.color.green.7}"
2182
+ },
2183
+ "org.primer.llm": {
2184
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2185
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1906
2186
  }
1907
2187
  },
1908
2188
  "key": "{bgColor.success.emphasis}"
@@ -1915,6 +2195,7 @@
1915
2195
  "key": "{bgColor.success.muted}",
1916
2196
  "$value": "#388bfd33",
1917
2197
  "$type": "color",
2198
+ "$description": "Subtle success background for positive feedback and completed states",
1918
2199
  "$extensions": {
1919
2200
  "org.primer.figma": {
1920
2201
  "collection": "mode",
@@ -1964,6 +2245,10 @@
1964
2245
  "isSource": true,
1965
2246
  "$type": "color"
1966
2247
  }
2248
+ },
2249
+ "org.primer.llm": {
2250
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2251
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
1967
2252
  }
1968
2253
  },
1969
2254
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1972,6 +2257,7 @@
1972
2257
  "original": {
1973
2258
  "$value": "{base.color.blue.4}",
1974
2259
  "$type": "color",
2260
+ "$description": "Subtle success background for positive feedback and completed states",
1975
2261
  "$extensions": {
1976
2262
  "org.primer.figma": {
1977
2263
  "collection": "mode",
@@ -2021,6 +2307,10 @@
2021
2307
  "isSource": true,
2022
2308
  "$type": "color"
2023
2309
  }
2310
+ },
2311
+ "org.primer.llm": {
2312
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2313
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
2024
2314
  }
2025
2315
  },
2026
2316
  "alpha": 0.2,
@@ -2034,6 +2324,7 @@
2034
2324
  "key": "{bgColor.transparent}",
2035
2325
  "$value": "#00000000",
2036
2326
  "$type": "color",
2327
+ "$description": "Fully transparent background",
2037
2328
  "$extensions": {
2038
2329
  "org.primer.figma": {
2039
2330
  "collection": "mode",
@@ -2042,6 +2333,10 @@
2042
2333
  "codeSyntax": {
2043
2334
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2044
2335
  }
2336
+ },
2337
+ "org.primer.llm": {
2338
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2339
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2045
2340
  }
2046
2341
  },
2047
2342
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2049,6 +2344,7 @@
2049
2344
  "original": {
2050
2345
  "$value": "{base.color.transparent}",
2051
2346
  "$type": "color",
2347
+ "$description": "Fully transparent background",
2052
2348
  "$extensions": {
2053
2349
  "org.primer.figma": {
2054
2350
  "collection": "mode",
@@ -2057,6 +2353,10 @@
2057
2353
  "codeSyntax": {
2058
2354
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2059
2355
  }
2356
+ },
2357
+ "org.primer.llm": {
2358
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2359
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2060
2360
  }
2061
2361
  },
2062
2362
  "key": "{bgColor.transparent}"
@@ -2069,6 +2369,7 @@
2069
2369
  "key": "{bgColor.upsell.emphasis}",
2070
2370
  "$value": "#8957e5",
2071
2371
  "$type": "color",
2372
+ "$description": "Strong background for prominent upsell elements",
2072
2373
  "$extensions": {
2073
2374
  "org.primer.figma": {
2074
2375
  "collection": "mode",
@@ -2077,6 +2378,10 @@
2077
2378
  "codeSyntax": {
2078
2379
  "web": "var(--bgColor-upsell-emphasis)"
2079
2380
  }
2381
+ },
2382
+ "org.primer.llm": {
2383
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2384
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2080
2385
  }
2081
2386
  },
2082
2387
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2084,6 +2389,7 @@
2084
2389
  "original": {
2085
2390
  "$value": "{bgColor.done.emphasis}",
2086
2391
  "$type": "color",
2392
+ "$description": "Strong background for prominent upsell elements",
2087
2393
  "$extensions": {
2088
2394
  "org.primer.figma": {
2089
2395
  "collection": "mode",
@@ -2092,6 +2398,10 @@
2092
2398
  "codeSyntax": {
2093
2399
  "web": "var(--bgColor-upsell-emphasis)"
2094
2400
  }
2401
+ },
2402
+ "org.primer.llm": {
2403
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2404
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2095
2405
  }
2096
2406
  },
2097
2407
  "key": "{bgColor.upsell.emphasis}"
@@ -2104,6 +2414,7 @@
2104
2414
  "key": "{bgColor.upsell.muted}",
2105
2415
  "$value": "#ab7df826",
2106
2416
  "$type": "color",
2417
+ "$description": "Subtle background for upsell and promotional content",
2107
2418
  "$extensions": {
2108
2419
  "org.primer.figma": {
2109
2420
  "collection": "mode",
@@ -2112,6 +2423,10 @@
2112
2423
  "codeSyntax": {
2113
2424
  "web": "var(--bgColor-upsell-muted)"
2114
2425
  }
2426
+ },
2427
+ "org.primer.llm": {
2428
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2429
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2115
2430
  }
2116
2431
  },
2117
2432
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2119,6 +2434,7 @@
2119
2434
  "original": {
2120
2435
  "$value": "{bgColor.done.muted}",
2121
2436
  "$type": "color",
2437
+ "$description": "Subtle background for upsell and promotional content",
2122
2438
  "$extensions": {
2123
2439
  "org.primer.figma": {
2124
2440
  "collection": "mode",
@@ -2127,6 +2443,10 @@
2127
2443
  "codeSyntax": {
2128
2444
  "web": "var(--bgColor-upsell-muted)"
2129
2445
  }
2446
+ },
2447
+ "org.primer.llm": {
2448
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2449
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2130
2450
  }
2131
2451
  },
2132
2452
  "key": "{bgColor.upsell.muted}"
@@ -2139,6 +2459,7 @@
2139
2459
  "key": "{bgColor.white}",
2140
2460
  "$value": "#ffffff",
2141
2461
  "$type": "color",
2462
+ "$description": "Pure white background",
2142
2463
  "$extensions": {
2143
2464
  "org.primer.figma": {
2144
2465
  "collection": "mode",
@@ -2147,6 +2468,10 @@
2147
2468
  },
2148
2469
  "org.primer.overrides": {
2149
2470
  "dark": "#ffffff"
2471
+ },
2472
+ "org.primer.llm": {
2473
+ "doNotUse": true,
2474
+ "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."
2150
2475
  }
2151
2476
  },
2152
2477
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2154,6 +2479,7 @@
2154
2479
  "original": {
2155
2480
  "$value": "{base.color.neutral.13}",
2156
2481
  "$type": "color",
2482
+ "$description": "Pure white background",
2157
2483
  "$extensions": {
2158
2484
  "org.primer.figma": {
2159
2485
  "collection": "mode",
@@ -2162,6 +2488,10 @@
2162
2488
  },
2163
2489
  "org.primer.overrides": {
2164
2490
  "dark": "{base.color.neutral.13}"
2491
+ },
2492
+ "org.primer.llm": {
2493
+ "doNotUse": true,
2494
+ "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."
2165
2495
  }
2166
2496
  },
2167
2497
  "key": "{bgColor.white}"
@@ -2172,7 +2502,7 @@
2172
2502
  },
2173
2503
  "border-accent-emphasis": {
2174
2504
  "key": "{border.accent.emphasis}",
2175
- "$value": "0.00390625rem,0.0625px solid #1f6feb",
2505
+ "$value": "0.0625rem,1px solid #1f6feb",
2176
2506
  "$type": "border",
2177
2507
  "filePath": "src/tokens/functional/border/border.json5",
2178
2508
  "isSource": true,
@@ -2191,7 +2521,7 @@
2191
2521
  },
2192
2522
  "border-accent-muted": {
2193
2523
  "key": "{border.accent.muted}",
2194
- "$value": "0.00390625rem,0.0625px solid #388bfd66",
2524
+ "$value": "0.0625rem,1px solid #388bfd66",
2195
2525
  "$type": "border",
2196
2526
  "filePath": "src/tokens/functional/border/border.json5",
2197
2527
  "isSource": true,
@@ -2210,7 +2540,7 @@
2210
2540
  },
2211
2541
  "border-attention-emphasis": {
2212
2542
  "key": "{border.attention.emphasis}",
2213
- "$value": "0.00390625rem,0.0625px solid #9e6a03",
2543
+ "$value": "0.0625rem,1px solid #9e6a03",
2214
2544
  "$type": "border",
2215
2545
  "filePath": "src/tokens/functional/border/border.json5",
2216
2546
  "isSource": true,
@@ -2229,7 +2559,7 @@
2229
2559
  },
2230
2560
  "border-attention-muted": {
2231
2561
  "key": "{border.attention.muted}",
2232
- "$value": "0.00390625rem,0.0625px solid #bb800966",
2562
+ "$value": "0.0625rem,1px solid #bb800966",
2233
2563
  "$type": "border",
2234
2564
  "filePath": "src/tokens/functional/border/border.json5",
2235
2565
  "isSource": true,
@@ -2248,7 +2578,7 @@
2248
2578
  },
2249
2579
  "border-closed-emphasis": {
2250
2580
  "key": "{border.closed.emphasis}",
2251
- "$value": "0.00390625rem,0.0625px solid #bd561d",
2581
+ "$value": "0.0625rem,1px solid #bd561d",
2252
2582
  "$type": "border",
2253
2583
  "filePath": "src/tokens/functional/border/border.json5",
2254
2584
  "isSource": true,
@@ -2263,7 +2593,7 @@
2263
2593
  },
2264
2594
  "border-closed-muted": {
2265
2595
  "key": "{border.closed.muted}",
2266
- "$value": "0.00390625rem,0.0625px solid #db6d2866",
2596
+ "$value": "0.0625rem,1px solid #db6d2866",
2267
2597
  "$type": "border",
2268
2598
  "filePath": "src/tokens/functional/border/border.json5",
2269
2599
  "isSource": true,
@@ -2278,7 +2608,7 @@
2278
2608
  },
2279
2609
  "border-danger-emphasis": {
2280
2610
  "key": "{border.danger.emphasis}",
2281
- "$value": "0.00390625rem,0.0625px solid #bd561d",
2611
+ "$value": "0.0625rem,1px solid #bd561d",
2282
2612
  "$type": "border",
2283
2613
  "filePath": "src/tokens/functional/border/border.json5",
2284
2614
  "isSource": true,
@@ -2297,7 +2627,7 @@
2297
2627
  },
2298
2628
  "border-danger-muted": {
2299
2629
  "key": "{border.danger.muted}",
2300
- "$value": "0.00390625rem,0.0625px solid #db6d2866",
2630
+ "$value": "0.0625rem,1px solid #db6d2866",
2301
2631
  "$type": "border",
2302
2632
  "filePath": "src/tokens/functional/border/border.json5",
2303
2633
  "isSource": true,
@@ -2316,7 +2646,7 @@
2316
2646
  },
2317
2647
  "border-default": {
2318
2648
  "key": "{border.default}",
2319
- "$value": "0.00390625rem,0.0625px solid #3d444d",
2649
+ "$value": "0.0625rem,1px solid #3d444d",
2320
2650
  "$type": "border",
2321
2651
  "filePath": "src/tokens/functional/border/border.json5",
2322
2652
  "isSource": true,
@@ -2335,7 +2665,7 @@
2335
2665
  },
2336
2666
  "border-disabled": {
2337
2667
  "key": "{border.disabled}",
2338
- "$value": "0.00390625rem,0.0625px solid #656c761a",
2668
+ "$value": "0.0625rem,1px solid #656c761a",
2339
2669
  "$type": "border",
2340
2670
  "filePath": "src/tokens/functional/border/border.json5",
2341
2671
  "isSource": true,
@@ -2354,7 +2684,7 @@
2354
2684
  },
2355
2685
  "border-done-emphasis": {
2356
2686
  "key": "{border.done.emphasis}",
2357
- "$value": "0.00390625rem,0.0625px solid #8957e5",
2687
+ "$value": "0.0625rem,1px solid #8957e5",
2358
2688
  "$type": "border",
2359
2689
  "filePath": "src/tokens/functional/border/border.json5",
2360
2690
  "isSource": true,
@@ -2373,7 +2703,7 @@
2373
2703
  },
2374
2704
  "border-done-muted": {
2375
2705
  "key": "{border.done.muted}",
2376
- "$value": "0.00390625rem,0.0625px solid #ab7df866",
2706
+ "$value": "0.0625rem,1px solid #ab7df866",
2377
2707
  "$type": "border",
2378
2708
  "filePath": "src/tokens/functional/border/border.json5",
2379
2709
  "isSource": true,
@@ -2392,7 +2722,7 @@
2392
2722
  },
2393
2723
  "border-emphasis": {
2394
2724
  "key": "{border.emphasis}",
2395
- "$value": "0.00390625rem,0.0625px solid #656c76",
2725
+ "$value": "0.0625rem,1px solid #656c76",
2396
2726
  "$type": "border",
2397
2727
  "filePath": "src/tokens/functional/border/border.json5",
2398
2728
  "isSource": true,
@@ -2411,7 +2741,7 @@
2411
2741
  },
2412
2742
  "border-muted": {
2413
2743
  "key": "{border.muted}",
2414
- "$value": "0.00390625rem,0.0625px solid #3d444db3",
2744
+ "$value": "0.0625rem,1px solid #3d444db3",
2415
2745
  "$type": "border",
2416
2746
  "filePath": "src/tokens/functional/border/border.json5",
2417
2747
  "isSource": true,
@@ -2430,7 +2760,7 @@
2430
2760
  },
2431
2761
  "border-neutral-emphasis": {
2432
2762
  "key": "{border.neutral.emphasis}",
2433
- "$value": "0.00390625rem,0.0625px solid #656c76",
2763
+ "$value": "0.0625rem,1px solid #656c76",
2434
2764
  "$type": "border",
2435
2765
  "filePath": "src/tokens/functional/border/border.json5",
2436
2766
  "isSource": true,
@@ -2449,7 +2779,7 @@
2449
2779
  },
2450
2780
  "border-neutral-muted": {
2451
2781
  "key": "{border.neutral.muted}",
2452
- "$value": "0.00390625rem,0.0625px solid #3d444db3",
2782
+ "$value": "0.0625rem,1px solid #3d444db3",
2453
2783
  "$type": "border",
2454
2784
  "filePath": "src/tokens/functional/border/border.json5",
2455
2785
  "isSource": true,
@@ -2468,7 +2798,7 @@
2468
2798
  },
2469
2799
  "border-open-emphasis": {
2470
2800
  "key": "{border.open.emphasis}",
2471
- "$value": "0.00390625rem,0.0625px solid #1f6feb",
2801
+ "$value": "0.0625rem,1px solid #1f6feb",
2472
2802
  "$type": "border",
2473
2803
  "filePath": "src/tokens/functional/border/border.json5",
2474
2804
  "isSource": true,
@@ -2483,7 +2813,7 @@
2483
2813
  },
2484
2814
  "border-open-muted": {
2485
2815
  "key": "{border.open.muted}",
2486
- "$value": "0.00390625rem,0.0625px solid #388bfd66",
2816
+ "$value": "0.0625rem,1px solid #388bfd66",
2487
2817
  "$type": "border",
2488
2818
  "filePath": "src/tokens/functional/border/border.json5",
2489
2819
  "isSource": true,
@@ -2498,7 +2828,7 @@
2498
2828
  },
2499
2829
  "border-severe-emphasis": {
2500
2830
  "key": "{border.severe.emphasis}",
2501
- "$value": "0.00390625rem,0.0625px solid #bd561d",
2831
+ "$value": "0.0625rem,1px solid #bd561d",
2502
2832
  "$type": "border",
2503
2833
  "filePath": "src/tokens/functional/border/border.json5",
2504
2834
  "isSource": true,
@@ -2517,7 +2847,7 @@
2517
2847
  },
2518
2848
  "border-severe-muted": {
2519
2849
  "key": "{border.severe.muted}",
2520
- "$value": "0.00390625rem,0.0625px solid #db6d2866",
2850
+ "$value": "0.0625rem,1px solid #db6d2866",
2521
2851
  "$type": "border",
2522
2852
  "filePath": "src/tokens/functional/border/border.json5",
2523
2853
  "isSource": true,
@@ -2536,7 +2866,7 @@
2536
2866
  },
2537
2867
  "border-sponsors-emphasis": {
2538
2868
  "key": "{border.sponsors.emphasis}",
2539
- "$value": "0.00390625rem,0.0625px solid #bf4b8a",
2869
+ "$value": "0.0625rem,1px solid #bf4b8a",
2540
2870
  "$type": "border",
2541
2871
  "filePath": "src/tokens/functional/border/border.json5",
2542
2872
  "isSource": true,
@@ -2555,7 +2885,7 @@
2555
2885
  },
2556
2886
  "border-sponsors-muted": {
2557
2887
  "key": "{border.sponsors.muted}",
2558
- "$value": "0.00390625rem,0.0625px solid #db61a266",
2888
+ "$value": "0.0625rem,1px solid #db61a266",
2559
2889
  "$type": "border",
2560
2890
  "filePath": "src/tokens/functional/border/border.json5",
2561
2891
  "isSource": true,
@@ -2574,7 +2904,7 @@
2574
2904
  },
2575
2905
  "border-success-emphasis": {
2576
2906
  "key": "{border.success.emphasis}",
2577
- "$value": "0.00390625rem,0.0625px solid #1f6feb",
2907
+ "$value": "0.0625rem,1px solid #1f6feb",
2578
2908
  "$type": "border",
2579
2909
  "filePath": "src/tokens/functional/border/border.json5",
2580
2910
  "isSource": true,
@@ -2593,7 +2923,7 @@
2593
2923
  },
2594
2924
  "border-success-muted": {
2595
2925
  "key": "{border.success.muted}",
2596
- "$value": "0.00390625rem,0.0625px solid #388bfd66",
2926
+ "$value": "0.0625rem,1px solid #388bfd66",
2597
2927
  "$type": "border",
2598
2928
  "filePath": "src/tokens/functional/border/border.json5",
2599
2929
  "isSource": true,
@@ -2612,7 +2942,7 @@
2612
2942
  },
2613
2943
  "border-transparent": {
2614
2944
  "key": "{border.transparent}",
2615
- "$value": "0.00390625rem,0.0625px solid #00000000",
2945
+ "$value": "0.0625rem,1px solid #00000000",
2616
2946
  "$type": "border",
2617
2947
  "filePath": "src/tokens/functional/border/border.json5",
2618
2948
  "isSource": true,
@@ -2631,7 +2961,7 @@
2631
2961
  },
2632
2962
  "border-upsell-emphasis": {
2633
2963
  "key": "{border.upsell.emphasis}",
2634
- "$value": "0.00390625rem,0.0625px solid #8957e5",
2964
+ "$value": "0.0625rem,1px solid #8957e5",
2635
2965
  "$type": "border",
2636
2966
  "filePath": "src/tokens/functional/border/border.json5",
2637
2967
  "isSource": true,
@@ -2650,7 +2980,7 @@
2650
2980
  },
2651
2981
  "border-upsell-muted": {
2652
2982
  "key": "{border.upsell.muted}",
2653
- "$value": "0.00390625rem,0.0625px solid #ab7df866",
2983
+ "$value": "0.0625rem,1px solid #ab7df866",
2654
2984
  "$type": "border",
2655
2985
  "filePath": "src/tokens/functional/border/border.json5",
2656
2986
  "isSource": true,
@@ -2671,6 +3001,7 @@
2671
3001
  "key": "{borderColor.accent.emphasis}",
2672
3002
  "$value": "#1f6feb",
2673
3003
  "$type": "color",
3004
+ "$description": "Strong accent border for selected or focused elements",
2674
3005
  "$extensions": {
2675
3006
  "org.primer.figma": {
2676
3007
  "collection": "mode",
@@ -2682,6 +3013,10 @@
2682
3013
  },
2683
3014
  "org.primer.overrides": {
2684
3015
  "dark-dimmed-high-contrast": "#79c0ff"
3016
+ },
3017
+ "org.primer.llm": {
3018
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3019
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2685
3020
  }
2686
3021
  },
2687
3022
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2689,6 +3024,7 @@
2689
3024
  "original": {
2690
3025
  "$value": "{base.color.blue.5}",
2691
3026
  "$type": "color",
3027
+ "$description": "Strong accent border for selected or focused elements",
2692
3028
  "$extensions": {
2693
3029
  "org.primer.figma": {
2694
3030
  "collection": "mode",
@@ -2700,6 +3036,10 @@
2700
3036
  },
2701
3037
  "org.primer.overrides": {
2702
3038
  "dark-dimmed-high-contrast": "{base.color.blue.2}"
3039
+ },
3040
+ "org.primer.llm": {
3041
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3042
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2703
3043
  }
2704
3044
  },
2705
3045
  "key": "{borderColor.accent.emphasis}"
@@ -2712,6 +3052,7 @@
2712
3052
  "key": "{borderColor.accent.muted}",
2713
3053
  "$value": "#388bfd66",
2714
3054
  "$type": "color",
3055
+ "$description": "Subtle accent border for selected or focused elements",
2715
3056
  "$extensions": {
2716
3057
  "org.primer.figma": {
2717
3058
  "collection": "mode",
@@ -2772,6 +3113,10 @@
2772
3113
  "isSource": true,
2773
3114
  "$type": "color"
2774
3115
  }
3116
+ },
3117
+ "org.primer.llm": {
3118
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3119
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2775
3120
  }
2776
3121
  },
2777
3122
  "alpha": 0.4,
@@ -2780,6 +3125,7 @@
2780
3125
  "original": {
2781
3126
  "$value": "{base.color.blue.4}",
2782
3127
  "$type": "color",
3128
+ "$description": "Subtle accent border for selected or focused elements",
2783
3129
  "$extensions": {
2784
3130
  "org.primer.figma": {
2785
3131
  "collection": "mode",
@@ -2840,6 +3186,10 @@
2840
3186
  "isSource": true,
2841
3187
  "$type": "color"
2842
3188
  }
3189
+ },
3190
+ "org.primer.llm": {
3191
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3192
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2843
3193
  }
2844
3194
  },
2845
3195
  "alpha": 0.4,
@@ -2853,6 +3203,7 @@
2853
3203
  "key": "{borderColor.attention.emphasis}",
2854
3204
  "$value": "#9e6a03",
2855
3205
  "$type": "color",
3206
+ "$description": "Strong attention border for prominent warnings",
2856
3207
  "$extensions": {
2857
3208
  "org.primer.figma": {
2858
3209
  "collection": "mode",
@@ -2864,6 +3215,10 @@
2864
3215
  },
2865
3216
  "org.primer.overrides": {
2866
3217
  "dark-dimmed-high-contrast": "#e3b341"
3218
+ },
3219
+ "org.primer.llm": {
3220
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3221
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2867
3222
  }
2868
3223
  },
2869
3224
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2871,6 +3226,7 @@
2871
3226
  "original": {
2872
3227
  "$value": "{base.color.yellow.5}",
2873
3228
  "$type": "color",
3229
+ "$description": "Strong attention border for prominent warnings",
2874
3230
  "$extensions": {
2875
3231
  "org.primer.figma": {
2876
3232
  "collection": "mode",
@@ -2882,6 +3238,10 @@
2882
3238
  },
2883
3239
  "org.primer.overrides": {
2884
3240
  "dark-dimmed-high-contrast": "{base.color.yellow.2}"
3241
+ },
3242
+ "org.primer.llm": {
3243
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3244
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2885
3245
  }
2886
3246
  },
2887
3247
  "key": "{borderColor.attention.emphasis}"
@@ -2894,6 +3254,7 @@
2894
3254
  "key": "{borderColor.attention.muted}",
2895
3255
  "$value": "#bb800966",
2896
3256
  "$type": "color",
3257
+ "$description": "Subtle attention border for warnings and caution states",
2897
3258
  "$extensions": {
2898
3259
  "org.primer.figma": {
2899
3260
  "collection": "mode",
@@ -2954,6 +3315,10 @@
2954
3315
  "isSource": true,
2955
3316
  "$type": "color"
2956
3317
  }
3318
+ },
3319
+ "org.primer.llm": {
3320
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3321
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
2957
3322
  }
2958
3323
  },
2959
3324
  "alpha": 0.4,
@@ -2962,6 +3327,7 @@
2962
3327
  "original": {
2963
3328
  "$value": "{base.color.yellow.4}",
2964
3329
  "$type": "color",
3330
+ "$description": "Subtle attention border for warnings and caution states",
2965
3331
  "$extensions": {
2966
3332
  "org.primer.figma": {
2967
3333
  "collection": "mode",
@@ -3022,6 +3388,10 @@
3022
3388
  "isSource": true,
3023
3389
  "$type": "color"
3024
3390
  }
3391
+ },
3392
+ "org.primer.llm": {
3393
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3394
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
3025
3395
  }
3026
3396
  },
3027
3397
  "alpha": 0.4,
@@ -3035,6 +3405,7 @@
3035
3405
  "key": "{borderColor.closed.emphasis}",
3036
3406
  "$value": "#656c76",
3037
3407
  "$type": "color",
3408
+ "$description": "Strong border for closed state badges",
3038
3409
  "$extensions": {
3039
3410
  "org.primer.figma": {
3040
3411
  "collection": "mode",
@@ -3053,6 +3424,10 @@
3053
3424
  "dark-tritanopia-high-contrast": "#656c76",
3054
3425
  "light-tritanopia": "#656c76",
3055
3426
  "light-tritanopia-high-contrast": "#656c76"
3427
+ },
3428
+ "org.primer.llm": {
3429
+ "usage": ["closed-emphasis", "closed-status"],
3430
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3056
3431
  }
3057
3432
  },
3058
3433
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3060,6 +3435,7 @@
3060
3435
  "original": {
3061
3436
  "$value": "{borderColor.emphasis}",
3062
3437
  "$type": "color",
3438
+ "$description": "Strong border for closed state badges",
3063
3439
  "$extensions": {
3064
3440
  "org.primer.figma": {
3065
3441
  "collection": "mode",
@@ -3078,6 +3454,10 @@
3078
3454
  "dark-tritanopia-high-contrast": "{borderColor.emphasis}",
3079
3455
  "light-tritanopia": "{borderColor.emphasis}",
3080
3456
  "light-tritanopia-high-contrast": "{borderColor.emphasis}"
3457
+ },
3458
+ "org.primer.llm": {
3459
+ "usage": ["closed-emphasis", "closed-status"],
3460
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3081
3461
  }
3082
3462
  },
3083
3463
  "key": "{borderColor.closed.emphasis}"
@@ -3090,6 +3470,7 @@
3090
3470
  "key": "{borderColor.closed.muted}",
3091
3471
  "$value": "#3d444d66",
3092
3472
  "$type": "color",
3473
+ "$description": "Subtle border for closed state indicators",
3093
3474
  "$extensions": {
3094
3475
  "org.primer.figma": {
3095
3476
  "collection": "mode",
@@ -3156,6 +3537,10 @@
3156
3537
  "isSource": true,
3157
3538
  "$type": "color"
3158
3539
  }
3540
+ },
3541
+ "org.primer.llm": {
3542
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3543
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3159
3544
  }
3160
3545
  },
3161
3546
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3164,6 +3549,7 @@
3164
3549
  "original": {
3165
3550
  "$value": "{borderColor.default}",
3166
3551
  "$type": "color",
3552
+ "$description": "Subtle border for closed state indicators",
3167
3553
  "$extensions": {
3168
3554
  "org.primer.figma": {
3169
3555
  "collection": "mode",
@@ -3230,6 +3616,10 @@
3230
3616
  "isSource": true,
3231
3617
  "$type": "color"
3232
3618
  }
3619
+ },
3620
+ "org.primer.llm": {
3621
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3622
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3233
3623
  }
3234
3624
  },
3235
3625
  "alpha": 0.4,
@@ -3243,6 +3633,7 @@
3243
3633
  "key": "{borderColor.danger.emphasis}",
3244
3634
  "$value": "#bd561d",
3245
3635
  "$type": "color",
3636
+ "$description": "Strong danger border for destructive actions and errors",
3246
3637
  "$extensions": {
3247
3638
  "org.primer.figma": {
3248
3639
  "collection": "mode",
@@ -3278,6 +3669,10 @@
3278
3669
  "$type": "color"
3279
3670
  },
3280
3671
  "dark-dimmed-high-contrast": "#ffa198"
3672
+ },
3673
+ "org.primer.llm": {
3674
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3675
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3281
3676
  }
3282
3677
  },
3283
3678
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3285,6 +3680,7 @@
3285
3680
  "original": {
3286
3681
  "$value": "{base.color.orange.5}",
3287
3682
  "$type": "color",
3683
+ "$description": "Strong danger border for destructive actions and errors",
3288
3684
  "$extensions": {
3289
3685
  "org.primer.figma": {
3290
3686
  "collection": "mode",
@@ -3320,6 +3716,10 @@
3320
3716
  "$type": "color"
3321
3717
  },
3322
3718
  "dark-dimmed-high-contrast": "{base.color.red.2}"
3719
+ },
3720
+ "org.primer.llm": {
3721
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3722
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3323
3723
  }
3324
3724
  },
3325
3725
  "key": "{borderColor.danger.emphasis}"
@@ -3332,6 +3732,7 @@
3332
3732
  "key": "{borderColor.danger.muted}",
3333
3733
  "$value": "#db6d2866",
3334
3734
  "$type": "color",
3735
+ "$description": "Subtle danger border for errors and destructive contexts",
3335
3736
  "$extensions": {
3336
3737
  "org.primer.figma": {
3337
3738
  "collection": "mode",
@@ -3405,6 +3806,10 @@
3405
3806
  "isSource": true,
3406
3807
  "$type": "color"
3407
3808
  }
3809
+ },
3810
+ "org.primer.llm": {
3811
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3812
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3408
3813
  }
3409
3814
  },
3410
3815
  "alpha": 0.4,
@@ -3413,6 +3818,7 @@
3413
3818
  "original": {
3414
3819
  "$value": "{base.color.orange.4}",
3415
3820
  "$type": "color",
3821
+ "$description": "Subtle danger border for errors and destructive contexts",
3416
3822
  "$extensions": {
3417
3823
  "org.primer.figma": {
3418
3824
  "collection": "mode",
@@ -3486,6 +3892,10 @@
3486
3892
  "isSource": true,
3487
3893
  "$type": "color"
3488
3894
  }
3895
+ },
3896
+ "org.primer.llm": {
3897
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3898
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3489
3899
  }
3490
3900
  },
3491
3901
  "alpha": 0.4,
@@ -3499,6 +3909,7 @@
3499
3909
  "key": "{borderColor.default}",
3500
3910
  "$value": "#3d444d",
3501
3911
  "$type": "color",
3912
+ "$description": "Default border color for most UI elements",
3502
3913
  "$extensions": {
3503
3914
  "org.primer.overrides": {
3504
3915
  "dark": "#3d444d",
@@ -3518,6 +3929,10 @@
3518
3929
  "codeSyntax": {
3519
3930
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3520
3931
  }
3932
+ },
3933
+ "org.primer.llm": {
3934
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3935
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3521
3936
  }
3522
3937
  },
3523
3938
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3525,6 +3940,7 @@
3525
3940
  "original": {
3526
3941
  "$value": "{base.color.neutral.7}",
3527
3942
  "$type": "color",
3943
+ "$description": "Default border color for most UI elements",
3528
3944
  "$extensions": {
3529
3945
  "org.primer.overrides": {
3530
3946
  "dark": "{base.color.neutral.7}",
@@ -3544,6 +3960,10 @@
3544
3960
  "codeSyntax": {
3545
3961
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3546
3962
  }
3963
+ },
3964
+ "org.primer.llm": {
3965
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3966
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3547
3967
  }
3548
3968
  },
3549
3969
  "key": "{borderColor.default}"
@@ -3556,6 +3976,7 @@
3556
3976
  "key": "{borderColor.disabled}",
3557
3977
  "$value": "#656c761a",
3558
3978
  "$type": "color",
3979
+ "$description": "Border color for disabled interactive elements",
3559
3980
  "$extensions": {
3560
3981
  "org.primer.figma": {
3561
3982
  "collection": "mode",
@@ -3598,6 +4019,10 @@
3598
4019
  "isSource": true,
3599
4020
  "$type": "color"
3600
4021
  }
4022
+ },
4023
+ "org.primer.llm": {
4024
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4025
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3601
4026
  }
3602
4027
  },
3603
4028
  "alpha": 0.1,
@@ -3606,6 +4031,7 @@
3606
4031
  "original": {
3607
4032
  "$value": "{base.color.neutral.8}",
3608
4033
  "$type": "color",
4034
+ "$description": "Border color for disabled interactive elements",
3609
4035
  "$extensions": {
3610
4036
  "org.primer.figma": {
3611
4037
  "collection": "mode",
@@ -3648,6 +4074,10 @@
3648
4074
  "isSource": true,
3649
4075
  "$type": "color"
3650
4076
  }
4077
+ },
4078
+ "org.primer.llm": {
4079
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4080
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3651
4081
  }
3652
4082
  },
3653
4083
  "alpha": 0.1,
@@ -3661,6 +4091,7 @@
3661
4091
  "key": "{borderColor.done.emphasis}",
3662
4092
  "$value": "#8957e5",
3663
4093
  "$type": "color",
4094
+ "$description": "Strong border for completed/done state badges",
3664
4095
  "$extensions": {
3665
4096
  "org.primer.figma": {
3666
4097
  "collection": "mode",
@@ -3672,6 +4103,10 @@
3672
4103
  },
3673
4104
  "org.primer.overrides": {
3674
4105
  "dark-dimmed-high-contrast": "#d2a8ff"
4106
+ },
4107
+ "org.primer.llm": {
4108
+ "usage": ["done-emphasis", "merged-status"],
4109
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3675
4110
  }
3676
4111
  },
3677
4112
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3679,6 +4114,7 @@
3679
4114
  "original": {
3680
4115
  "$value": "{base.color.purple.5}",
3681
4116
  "$type": "color",
4117
+ "$description": "Strong border for completed/done state badges",
3682
4118
  "$extensions": {
3683
4119
  "org.primer.figma": {
3684
4120
  "collection": "mode",
@@ -3690,6 +4126,10 @@
3690
4126
  },
3691
4127
  "org.primer.overrides": {
3692
4128
  "dark-dimmed-high-contrast": "{base.color.purple.2}"
4129
+ },
4130
+ "org.primer.llm": {
4131
+ "usage": ["done-emphasis", "merged-status"],
4132
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3693
4133
  }
3694
4134
  },
3695
4135
  "key": "{borderColor.done.emphasis}"
@@ -3702,6 +4142,7 @@
3702
4142
  "key": "{borderColor.done.muted}",
3703
4143
  "$value": "#ab7df866",
3704
4144
  "$type": "color",
4145
+ "$description": "Subtle border for completed/done state indicators",
3705
4146
  "$extensions": {
3706
4147
  "org.primer.figma": {
3707
4148
  "collection": "mode",
@@ -3762,6 +4203,10 @@
3762
4203
  "isSource": true,
3763
4204
  "$type": "color"
3764
4205
  }
4206
+ },
4207
+ "org.primer.llm": {
4208
+ "usage": ["done-muted", "merged", "completed"],
4209
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3765
4210
  }
3766
4211
  },
3767
4212
  "alpha": 0.4,
@@ -3770,6 +4215,7 @@
3770
4215
  "original": {
3771
4216
  "$value": "{base.color.purple.4}",
3772
4217
  "$type": "color",
4218
+ "$description": "Subtle border for completed/done state indicators",
3773
4219
  "$extensions": {
3774
4220
  "org.primer.figma": {
3775
4221
  "collection": "mode",
@@ -3830,6 +4276,10 @@
3830
4276
  "isSource": true,
3831
4277
  "$type": "color"
3832
4278
  }
4279
+ },
4280
+ "org.primer.llm": {
4281
+ "usage": ["done-muted", "merged", "completed"],
4282
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3833
4283
  }
3834
4284
  },
3835
4285
  "alpha": 0.4,
@@ -3843,6 +4293,7 @@
3843
4293
  "key": "{borderColor.draft.emphasis}",
3844
4294
  "$value": "#656c76",
3845
4295
  "$type": "color",
4296
+ "$description": "Strong border for draft state badges",
3846
4297
  "$extensions": {
3847
4298
  "org.primer.figma": {
3848
4299
  "collection": "mode",
@@ -3851,6 +4302,10 @@
3851
4302
  "codeSyntax": {
3852
4303
  "web": "var(--borderColor-draft-emphasis)"
3853
4304
  }
4305
+ },
4306
+ "org.primer.llm": {
4307
+ "usage": ["draft-emphasis", "draft-status"],
4308
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3854
4309
  }
3855
4310
  },
3856
4311
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3858,6 +4313,7 @@
3858
4313
  "original": {
3859
4314
  "$value": "{borderColor.neutral.emphasis}",
3860
4315
  "$type": "color",
4316
+ "$description": "Strong border for draft state badges",
3861
4317
  "$extensions": {
3862
4318
  "org.primer.figma": {
3863
4319
  "collection": "mode",
@@ -3866,6 +4322,10 @@
3866
4322
  "codeSyntax": {
3867
4323
  "web": "var(--borderColor-draft-emphasis)"
3868
4324
  }
4325
+ },
4326
+ "org.primer.llm": {
4327
+ "usage": ["draft-emphasis", "draft-status"],
4328
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3869
4329
  }
3870
4330
  },
3871
4331
  "key": "{borderColor.draft.emphasis}"
@@ -3878,6 +4338,7 @@
3878
4338
  "key": "{borderColor.draft.muted}",
3879
4339
  "$value": "#3d444d66",
3880
4340
  "$type": "color",
4341
+ "$description": "Subtle border for draft state indicators",
3881
4342
  "$extensions": {
3882
4343
  "org.primer.figma": {
3883
4344
  "collection": "mode",
@@ -3944,6 +4405,10 @@
3944
4405
  "isSource": true,
3945
4406
  "$type": "color"
3946
4407
  }
4408
+ },
4409
+ "org.primer.llm": {
4410
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4411
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
3947
4412
  }
3948
4413
  },
3949
4414
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3952,6 +4417,7 @@
3952
4417
  "original": {
3953
4418
  "$value": "{borderColor.default}",
3954
4419
  "$type": "color",
4420
+ "$description": "Subtle border for draft state indicators",
3955
4421
  "$extensions": {
3956
4422
  "org.primer.figma": {
3957
4423
  "collection": "mode",
@@ -4018,6 +4484,10 @@
4018
4484
  "isSource": true,
4019
4485
  "$type": "color"
4020
4486
  }
4487
+ },
4488
+ "org.primer.llm": {
4489
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4490
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
4021
4491
  }
4022
4492
  },
4023
4493
  "alpha": 0.4,
@@ -4031,6 +4501,7 @@
4031
4501
  "key": "{borderColor.emphasis}",
4032
4502
  "$value": "#656c76",
4033
4503
  "$type": "color",
4504
+ "$description": "Strong border for emphasis and visual weight",
4034
4505
  "$extensions": {
4035
4506
  "org.primer.figma": {
4036
4507
  "collection": "mode",
@@ -4045,6 +4516,10 @@
4045
4516
  "dark-dimmed-high-contrast": "#3d444d",
4046
4517
  "dark-tritanopia-high-contrast": "#3d444d",
4047
4518
  "dark-protanopia-deuteranopia-high-contrast": "#3d444d"
4519
+ },
4520
+ "org.primer.llm": {
4521
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4522
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4048
4523
  }
4049
4524
  },
4050
4525
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4052,6 +4527,7 @@
4052
4527
  "original": {
4053
4528
  "$value": "{base.color.neutral.8}",
4054
4529
  "$type": "color",
4530
+ "$description": "Strong border for emphasis and visual weight",
4055
4531
  "$extensions": {
4056
4532
  "org.primer.figma": {
4057
4533
  "collection": "mode",
@@ -4066,6 +4542,10 @@
4066
4542
  "dark-dimmed-high-contrast": "{borderColor.default}",
4067
4543
  "dark-tritanopia-high-contrast": "{borderColor.default}",
4068
4544
  "dark-protanopia-deuteranopia-high-contrast": "{borderColor.default}"
4545
+ },
4546
+ "org.primer.llm": {
4547
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4548
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4069
4549
  }
4070
4550
  },
4071
4551
  "key": "{borderColor.emphasis}"
@@ -4078,6 +4558,7 @@
4078
4558
  "key": "{borderColor.muted}",
4079
4559
  "$value": "#3d444db3",
4080
4560
  "$type": "color",
4561
+ "$description": "Subtle border for secondary elements and light separators",
4081
4562
  "$extensions": {
4082
4563
  "org.primer.figma": {
4083
4564
  "collection": "mode",
@@ -4144,6 +4625,10 @@
4144
4625
  "isSource": true,
4145
4626
  "$type": "color"
4146
4627
  }
4628
+ },
4629
+ "org.primer.llm": {
4630
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4631
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4147
4632
  }
4148
4633
  },
4149
4634
  "alpha": 0.7,
@@ -4152,6 +4637,7 @@
4152
4637
  "original": {
4153
4638
  "$value": "{borderColor.default}",
4154
4639
  "$type": "color",
4640
+ "$description": "Subtle border for secondary elements and light separators",
4155
4641
  "$extensions": {
4156
4642
  "org.primer.figma": {
4157
4643
  "collection": "mode",
@@ -4218,6 +4704,10 @@
4218
4704
  "isSource": true,
4219
4705
  "$type": "color"
4220
4706
  }
4707
+ },
4708
+ "org.primer.llm": {
4709
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4710
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4221
4711
  }
4222
4712
  },
4223
4713
  "alpha": 0.7,
@@ -4231,6 +4721,7 @@
4231
4721
  "key": "{borderColor.neutral.emphasis}",
4232
4722
  "$value": "#656c76",
4233
4723
  "$type": "color",
4724
+ "$description": "Strong neutral semantic border",
4234
4725
  "$extensions": {
4235
4726
  "org.primer.figma": {
4236
4727
  "collection": "mode",
@@ -4239,6 +4730,10 @@
4239
4730
  },
4240
4731
  "org.primer.overrides": {
4241
4732
  "dark": "#656c76"
4733
+ },
4734
+ "org.primer.llm": {
4735
+ "usage": ["neutral-emphasis", "neutral-strong"],
4736
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4242
4737
  }
4243
4738
  },
4244
4739
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4246,6 +4741,7 @@
4246
4741
  "original": {
4247
4742
  "$value": "{borderColor.emphasis}",
4248
4743
  "$type": "color",
4744
+ "$description": "Strong neutral semantic border",
4249
4745
  "$extensions": {
4250
4746
  "org.primer.figma": {
4251
4747
  "collection": "mode",
@@ -4254,6 +4750,10 @@
4254
4750
  },
4255
4751
  "org.primer.overrides": {
4256
4752
  "dark": "{borderColor.emphasis}"
4753
+ },
4754
+ "org.primer.llm": {
4755
+ "usage": ["neutral-emphasis", "neutral-strong"],
4756
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4257
4757
  }
4258
4758
  },
4259
4759
  "key": "{borderColor.neutral.emphasis}"
@@ -4266,6 +4766,7 @@
4266
4766
  "key": "{borderColor.neutral.muted}",
4267
4767
  "$value": "#3d444db3",
4268
4768
  "$type": "color",
4769
+ "$description": "Subtle neutral semantic border",
4269
4770
  "$extensions": {
4270
4771
  "org.primer.figma": {
4271
4772
  "collection": "mode",
@@ -4287,6 +4788,10 @@
4287
4788
  "isSource": true,
4288
4789
  "$type": "color"
4289
4790
  }
4791
+ },
4792
+ "org.primer.llm": {
4793
+ "usage": ["neutral-muted", "neutral-secondary"],
4794
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4290
4795
  }
4291
4796
  },
4292
4797
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4294,6 +4799,7 @@
4294
4799
  "original": {
4295
4800
  "$value": "{borderColor.muted}",
4296
4801
  "$type": "color",
4802
+ "$description": "Subtle neutral semantic border",
4297
4803
  "$extensions": {
4298
4804
  "org.primer.figma": {
4299
4805
  "collection": "mode",
@@ -4315,6 +4821,10 @@
4315
4821
  "isSource": true,
4316
4822
  "$type": "color"
4317
4823
  }
4824
+ },
4825
+ "org.primer.llm": {
4826
+ "usage": ["neutral-muted", "neutral-secondary"],
4827
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4318
4828
  }
4319
4829
  },
4320
4830
  "key": "{borderColor.neutral.muted}"
@@ -4327,6 +4837,7 @@
4327
4837
  "key": "{borderColor.open.emphasis}",
4328
4838
  "$value": "#bd561d",
4329
4839
  "$type": "color",
4840
+ "$description": "Strong border for open state badges",
4330
4841
  "$extensions": {
4331
4842
  "org.primer.figma": {
4332
4843
  "collection": "mode",
@@ -4345,6 +4856,10 @@
4345
4856
  "dark-protanopia-deuteranopia-high-contrast": "#bd561d",
4346
4857
  "light-protanopia-deuteranopia": "#bd561d",
4347
4858
  "light-protanopia-deuteranopia-high-contrast": "#bd561d"
4859
+ },
4860
+ "org.primer.llm": {
4861
+ "usage": ["open-emphasis", "open-status"],
4862
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4348
4863
  }
4349
4864
  },
4350
4865
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4352,6 +4867,7 @@
4352
4867
  "original": {
4353
4868
  "$value": "{base.color.orange.5}",
4354
4869
  "$type": "color",
4870
+ "$description": "Strong border for open state badges",
4355
4871
  "$extensions": {
4356
4872
  "org.primer.figma": {
4357
4873
  "collection": "mode",
@@ -4370,6 +4886,10 @@
4370
4886
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
4371
4887
  "light-protanopia-deuteranopia": "{base.color.orange.5}",
4372
4888
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}"
4889
+ },
4890
+ "org.primer.llm": {
4891
+ "usage": ["open-emphasis", "open-status"],
4892
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4373
4893
  }
4374
4894
  },
4375
4895
  "key": "{borderColor.open.emphasis}"
@@ -4382,6 +4902,7 @@
4382
4902
  "key": "{borderColor.open.muted}",
4383
4903
  "$value": "#db6d2866",
4384
4904
  "$type": "color",
4905
+ "$description": "Subtle border for open state indicators",
4385
4906
  "$extensions": {
4386
4907
  "org.primer.figma": {
4387
4908
  "collection": "mode",
@@ -4448,6 +4969,10 @@
4448
4969
  "isSource": true,
4449
4970
  "$type": "color"
4450
4971
  }
4972
+ },
4973
+ "org.primer.llm": {
4974
+ "usage": ["open-muted", "open-issue", "open-pr"],
4975
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4451
4976
  }
4452
4977
  },
4453
4978
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4456,6 +4981,7 @@
4456
4981
  "original": {
4457
4982
  "$value": "{base.color.orange.4}",
4458
4983
  "$type": "color",
4984
+ "$description": "Subtle border for open state indicators",
4459
4985
  "$extensions": {
4460
4986
  "org.primer.figma": {
4461
4987
  "collection": "mode",
@@ -4522,6 +5048,10 @@
4522
5048
  "isSource": true,
4523
5049
  "$type": "color"
4524
5050
  }
5051
+ },
5052
+ "org.primer.llm": {
5053
+ "usage": ["open-muted", "open-issue", "open-pr"],
5054
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4525
5055
  }
4526
5056
  },
4527
5057
  "alpha": 0.4,
@@ -4535,6 +5065,7 @@
4535
5065
  "key": "{borderColor.severe.emphasis}",
4536
5066
  "$value": "#bd561d",
4537
5067
  "$type": "color",
5068
+ "$description": "Strong severe border for prominent high-priority warnings",
4538
5069
  "$extensions": {
4539
5070
  "org.primer.figma": {
4540
5071
  "collection": "mode",
@@ -4549,6 +5080,10 @@
4549
5080
  "light-tritanopia": "#da3633",
4550
5081
  "light-tritanopia-high-contrast": "#da3633",
4551
5082
  "dark-dimmed-high-contrast": "#ffa657"
5083
+ },
5084
+ "org.primer.llm": {
5085
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5086
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4552
5087
  }
4553
5088
  },
4554
5089
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4556,6 +5091,7 @@
4556
5091
  "original": {
4557
5092
  "$value": "{base.color.orange.5}",
4558
5093
  "$type": "color",
5094
+ "$description": "Strong severe border for prominent high-priority warnings",
4559
5095
  "$extensions": {
4560
5096
  "org.primer.figma": {
4561
5097
  "collection": "mode",
@@ -4570,6 +5106,10 @@
4570
5106
  "light-tritanopia": "{base.color.red.5}",
4571
5107
  "light-tritanopia-high-contrast": "{base.color.red.5}",
4572
5108
  "dark-dimmed-high-contrast": "{base.color.orange.2}"
5109
+ },
5110
+ "org.primer.llm": {
5111
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5112
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4573
5113
  }
4574
5114
  },
4575
5115
  "key": "{borderColor.severe.emphasis}"
@@ -4582,6 +5122,7 @@
4582
5122
  "key": "{borderColor.severe.muted}",
4583
5123
  "$value": "#db6d2866",
4584
5124
  "$type": "color",
5125
+ "$description": "Subtle severe border for high-priority warnings",
4585
5126
  "$extensions": {
4586
5127
  "org.primer.figma": {
4587
5128
  "collection": "mode",
@@ -4637,6 +5178,10 @@
4637
5178
  "isSource": true,
4638
5179
  "$type": "color"
4639
5180
  }
5181
+ },
5182
+ "org.primer.llm": {
5183
+ "usage": ["severe-muted", "urgent-muted"],
5184
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4640
5185
  }
4641
5186
  },
4642
5187
  "alpha": 0.4,
@@ -4645,6 +5190,7 @@
4645
5190
  "original": {
4646
5191
  "$value": "{base.color.orange.4}",
4647
5192
  "$type": "color",
5193
+ "$description": "Subtle severe border for high-priority warnings",
4648
5194
  "$extensions": {
4649
5195
  "org.primer.figma": {
4650
5196
  "collection": "mode",
@@ -4700,6 +5246,10 @@
4700
5246
  "isSource": true,
4701
5247
  "$type": "color"
4702
5248
  }
5249
+ },
5250
+ "org.primer.llm": {
5251
+ "usage": ["severe-muted", "urgent-muted"],
5252
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4703
5253
  }
4704
5254
  },
4705
5255
  "alpha": 0.4,
@@ -4713,6 +5263,7 @@
4713
5263
  "key": "{borderColor.sponsors.emphasis}",
4714
5264
  "$value": "#bf4b8a",
4715
5265
  "$type": "color",
5266
+ "$description": "Strong border for prominent GitHub Sponsors elements",
4716
5267
  "$extensions": {
4717
5268
  "org.primer.figma": {
4718
5269
  "collection": "mode",
@@ -4724,6 +5275,10 @@
4724
5275
  },
4725
5276
  "org.primer.overrides": {
4726
5277
  "dark-dimmed-high-contrast": "#f778ba"
5278
+ },
5279
+ "org.primer.llm": {
5280
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5281
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4727
5282
  }
4728
5283
  },
4729
5284
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4731,6 +5286,7 @@
4731
5286
  "original": {
4732
5287
  "$value": "{base.color.pink.5}",
4733
5288
  "$type": "color",
5289
+ "$description": "Strong border for prominent GitHub Sponsors elements",
4734
5290
  "$extensions": {
4735
5291
  "org.primer.figma": {
4736
5292
  "collection": "mode",
@@ -4742,6 +5298,10 @@
4742
5298
  },
4743
5299
  "org.primer.overrides": {
4744
5300
  "dark-dimmed-high-contrast": "{base.color.pink.3}"
5301
+ },
5302
+ "org.primer.llm": {
5303
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5304
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4745
5305
  }
4746
5306
  },
4747
5307
  "key": "{borderColor.sponsors.emphasis}"
@@ -4754,6 +5314,7 @@
4754
5314
  "key": "{borderColor.sponsors.muted}",
4755
5315
  "$value": "#db61a266",
4756
5316
  "$type": "color",
5317
+ "$description": "Subtle border for GitHub Sponsors content",
4757
5318
  "$extensions": {
4758
5319
  "org.primer.figma": {
4759
5320
  "collection": "mode",
@@ -4814,6 +5375,10 @@
4814
5375
  "isSource": true,
4815
5376
  "$type": "color"
4816
5377
  }
5378
+ },
5379
+ "org.primer.llm": {
5380
+ "usage": ["sponsors-muted", "funding-muted"],
5381
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4817
5382
  }
4818
5383
  },
4819
5384
  "alpha": 0.4,
@@ -4822,6 +5387,7 @@
4822
5387
  "original": {
4823
5388
  "$value": "{base.color.pink.4}",
4824
5389
  "$type": "color",
5390
+ "$description": "Subtle border for GitHub Sponsors content",
4825
5391
  "$extensions": {
4826
5392
  "org.primer.figma": {
4827
5393
  "collection": "mode",
@@ -4882,6 +5448,10 @@
4882
5448
  "isSource": true,
4883
5449
  "$type": "color"
4884
5450
  }
5451
+ },
5452
+ "org.primer.llm": {
5453
+ "usage": ["sponsors-muted", "funding-muted"],
5454
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4885
5455
  }
4886
5456
  },
4887
5457
  "alpha": 0.4,
@@ -4895,6 +5465,7 @@
4895
5465
  "key": "{borderColor.success.emphasis}",
4896
5466
  "$value": "#1f6feb",
4897
5467
  "$type": "color",
5468
+ "$description": "Strong success border for prominent positive elements",
4898
5469
  "$extensions": {
4899
5470
  "org.primer.figma": {
4900
5471
  "collection": "mode",
@@ -4914,6 +5485,10 @@
4914
5485
  "light-protanopia-deuteranopia": "#1f6feb",
4915
5486
  "light-protanopia-deuteranopia-high-contrast": "#1f6feb",
4916
5487
  "dark-dimmed-high-contrast": "#56d364"
5488
+ },
5489
+ "org.primer.llm": {
5490
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5491
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4917
5492
  }
4918
5493
  },
4919
5494
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4921,6 +5496,7 @@
4921
5496
  "original": {
4922
5497
  "$value": "{base.color.blue.5}",
4923
5498
  "$type": "color",
5499
+ "$description": "Strong success border for prominent positive elements",
4924
5500
  "$extensions": {
4925
5501
  "org.primer.figma": {
4926
5502
  "collection": "mode",
@@ -4940,6 +5516,10 @@
4940
5516
  "light-protanopia-deuteranopia": "{base.color.blue.5}",
4941
5517
  "light-protanopia-deuteranopia-high-contrast": "{base.color.blue.5}",
4942
5518
  "dark-dimmed-high-contrast": "{base.color.green.2}"
5519
+ },
5520
+ "org.primer.llm": {
5521
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5522
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4943
5523
  }
4944
5524
  },
4945
5525
  "key": "{borderColor.success.emphasis}"
@@ -4952,6 +5532,7 @@
4952
5532
  "key": "{borderColor.success.muted}",
4953
5533
  "$value": "#388bfd66",
4954
5534
  "$type": "color",
5535
+ "$description": "Subtle success border for positive feedback elements",
4955
5536
  "$extensions": {
4956
5537
  "org.primer.figma": {
4957
5538
  "collection": "mode",
@@ -5039,6 +5620,10 @@
5039
5620
  "isSource": true,
5040
5621
  "$type": "color"
5041
5622
  }
5623
+ },
5624
+ "org.primer.llm": {
5625
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5626
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5042
5627
  }
5043
5628
  },
5044
5629
  "alpha": 0.4,
@@ -5047,6 +5632,7 @@
5047
5632
  "original": {
5048
5633
  "$value": "{base.color.blue.4}",
5049
5634
  "$type": "color",
5635
+ "$description": "Subtle success border for positive feedback elements",
5050
5636
  "$extensions": {
5051
5637
  "org.primer.figma": {
5052
5638
  "collection": "mode",
@@ -5134,6 +5720,10 @@
5134
5720
  "isSource": true,
5135
5721
  "$type": "color"
5136
5722
  }
5723
+ },
5724
+ "org.primer.llm": {
5725
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5726
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5137
5727
  }
5138
5728
  },
5139
5729
  "alpha": 0.4,
@@ -5147,6 +5737,7 @@
5147
5737
  "key": "{borderColor.translucent}",
5148
5738
  "$value": "#ffffff26",
5149
5739
  "$type": "color",
5740
+ "$description": "Semi-transparent border for overlays and layered elements",
5150
5741
  "$extensions": {
5151
5742
  "org.primer.figma": {
5152
5743
  "collection": "mode",
@@ -5203,6 +5794,10 @@
5203
5794
  "isSource": true,
5204
5795
  "$type": "color"
5205
5796
  }
5797
+ },
5798
+ "org.primer.llm": {
5799
+ "usage": ["overlay-border", "translucent-border"],
5800
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5206
5801
  }
5207
5802
  },
5208
5803
  "alpha": 0.15,
@@ -5211,6 +5806,7 @@
5211
5806
  "original": {
5212
5807
  "$value": "{base.color.neutral.13}",
5213
5808
  "$type": "color",
5809
+ "$description": "Semi-transparent border for overlays and layered elements",
5214
5810
  "$extensions": {
5215
5811
  "org.primer.figma": {
5216
5812
  "collection": "mode",
@@ -5267,6 +5863,10 @@
5267
5863
  "isSource": true,
5268
5864
  "$type": "color"
5269
5865
  }
5866
+ },
5867
+ "org.primer.llm": {
5868
+ "usage": ["overlay-border", "translucent-border"],
5869
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5270
5870
  }
5271
5871
  },
5272
5872
  "alpha": 0.15,
@@ -5280,6 +5880,7 @@
5280
5880
  "key": "{borderColor.transparent}",
5281
5881
  "$value": "#00000000",
5282
5882
  "$type": "color",
5883
+ "$description": "Fully transparent border",
5283
5884
  "$extensions": {
5284
5885
  "org.primer.figma": {
5285
5886
  "collection": "mode",
@@ -5292,6 +5893,7 @@
5292
5893
  "original": {
5293
5894
  "$value": "{base.color.transparent}",
5294
5895
  "$type": "color",
5896
+ "$description": "Fully transparent border",
5295
5897
  "$extensions": {
5296
5898
  "org.primer.figma": {
5297
5899
  "collection": "mode",
@@ -5309,6 +5911,7 @@
5309
5911
  "key": "{borderColor.upsell.emphasis}",
5310
5912
  "$value": "#8957e5",
5311
5913
  "$type": "color",
5914
+ "$description": "Strong border for prominent upsell elements",
5312
5915
  "$extensions": {
5313
5916
  "org.primer.figma": {
5314
5917
  "collection": "mode",
@@ -5317,6 +5920,10 @@
5317
5920
  "codeSyntax": {
5318
5921
  "web": "var(--borderColor-upsell-emphasis)"
5319
5922
  }
5923
+ },
5924
+ "org.primer.llm": {
5925
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5926
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5320
5927
  }
5321
5928
  },
5322
5929
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5324,6 +5931,7 @@
5324
5931
  "original": {
5325
5932
  "$value": "{borderColor.done.emphasis}",
5326
5933
  "$type": "color",
5934
+ "$description": "Strong border for prominent upsell elements",
5327
5935
  "$extensions": {
5328
5936
  "org.primer.figma": {
5329
5937
  "collection": "mode",
@@ -5332,6 +5940,10 @@
5332
5940
  "codeSyntax": {
5333
5941
  "web": "var(--borderColor-upsell-emphasis)"
5334
5942
  }
5943
+ },
5944
+ "org.primer.llm": {
5945
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5946
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5335
5947
  }
5336
5948
  },
5337
5949
  "key": "{borderColor.upsell.emphasis}"
@@ -5344,6 +5956,7 @@
5344
5956
  "key": "{borderColor.upsell.muted}",
5345
5957
  "$value": "#ab7df866",
5346
5958
  "$type": "color",
5959
+ "$description": "Subtle border for upsell and promotional content",
5347
5960
  "$extensions": {
5348
5961
  "org.primer.figma": {
5349
5962
  "collection": "mode",
@@ -5352,6 +5965,10 @@
5352
5965
  "codeSyntax": {
5353
5966
  "web": "var(--borderColor-upsell-muted)"
5354
5967
  }
5968
+ },
5969
+ "org.primer.llm": {
5970
+ "usage": ["upsell-muted", "premium-muted"],
5971
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5355
5972
  }
5356
5973
  },
5357
5974
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5359,6 +5976,7 @@
5359
5976
  "original": {
5360
5977
  "$value": "{borderColor.done.muted}",
5361
5978
  "$type": "color",
5979
+ "$description": "Subtle border for upsell and promotional content",
5362
5980
  "$extensions": {
5363
5981
  "org.primer.figma": {
5364
5982
  "collection": "mode",
@@ -5367,6 +5985,10 @@
5367
5985
  "codeSyntax": {
5368
5986
  "web": "var(--borderColor-upsell-muted)"
5369
5987
  }
5988
+ },
5989
+ "org.primer.llm": {
5990
+ "usage": ["upsell-muted", "premium-muted"],
5991
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5370
5992
  }
5371
5993
  },
5372
5994
  "key": "{borderColor.upsell.muted}"
@@ -36515,6 +37137,7 @@
36515
37137
  "key": "{fgColor.accent}",
36516
37138
  "$value": "#4493f8",
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": "#1158c7",
36535
37158
  "light-tritanopia-high-contrast": "#1158c7",
36536
37159
  "light-protanopia-deuteranopia-high-contrast": "#1158c7"
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": "#4493F8",
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": "#d29922",
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": "#845306",
36588
37221
  "light-tritanopia-high-contrast": "#845306",
36589
37222
  "dark-dimmed-high-contrast": "#f2cc60"
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": "#9198a1",
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": "#9198a1",
36675
37328
  "light-tritanopia": "#9198a1",
36676
37329
  "light-tritanopia-high-contrast": "#9198a1"
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": "#f0883e",
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": "#ff7b72",
36732
37395
  "light-high-contrast": "#b62324",
36733
37396
  "light-tritanopia-high-contrast": "#b62324"
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.3}",
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": "#f0f6fc",
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.12}",
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": "#ab7df8",
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": "#6e40c9",
36901
37594
  "light-protanopia-deuteranopia-high-contrast": "#6e40c9",
36902
37595
  "light-tritanopia-high-contrast": "#6e40c9"
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": "{base.color.purple.4}",
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": "#9198a1",
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": "#4493f8",
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": "#9198a1",
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.9}",
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": "#9198a1",
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.9}",
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": "#db6d28",
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": "#ffa198",
37200
37963
  "light-tritanopia": "#da3633",
37201
37964
  "light-tritanopia-high-contrast": "#b62324"
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.4}",
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": "#db6d28",
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": "#da3633",
37257
38030
  "light-tritanopia-high-contrast": "#b62324",
37258
38031
  "light-protanopia-deuteranopia-high-contrast": "#9b4215"
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.4}",
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": "#db61a2",
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": "#9e3670",
37314
38097
  "light-protanopia-deuteranopia-high-contrast": "#9e3670",
37315
38098
  "light-tritanopia-high-contrast": "#9e3670"
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": "{base.color.pink.4}",
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": "#58a6ff",
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": "#79c0ff",
37373
38166
  "light-tritanopia": "#1f6feb",
37374
38167
  "light-tritanopia-high-contrast": "#1158c7"
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.3}",
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": "#ab7df8",
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 #1f6feb",
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": "#1f6feb",
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": "#1f6febb3",
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 #3d444d, 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 #3d444d, 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 #3d444d, 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 #3d444d, 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}"