@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
@@ -310,6 +310,10 @@
310
310
  "dark-dimmed-high-contrast": "#1b4b91",
311
311
  "dark-tritanopia-high-contrast": "#0f2d5c",
312
312
  "dark-protanopia-deuteranopia-high-contrast": "#0f2d5c"
313
+ },
314
+ "org.primer.llm": {
315
+ "usage": ["active-states", "current", "selected", "active-toggle"],
316
+ "rules": "MUST use for selected or active states. Pair with fgColor.onEmphasis for text."
313
317
  }
314
318
  },
315
319
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -317,6 +321,7 @@
317
321
  "original": {
318
322
  "$value": "{base.color.blue.5}",
319
323
  "$type": "color",
324
+ "$description": "Strong accent background for active states and focused states",
320
325
  "$extensions": {
321
326
  "org.primer.figma": {
322
327
  "collection": "mode",
@@ -332,6 +337,10 @@
332
337
  "dark-dimmed-high-contrast": "{base.color.blue.7}",
333
338
  "dark-tritanopia-high-contrast": "{base.color.blue.9}",
334
339
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.blue.9}"
340
+ },
341
+ "org.primer.llm": {
342
+ "usage": ["active-states", "current", "selected", "active-toggle"],
343
+ "rules": "MUST use for selected or active states. Pair with fgColor.onEmphasis for text."
335
344
  }
336
345
  },
337
346
  "key": "{bgColor.accent.emphasis}"
@@ -340,7 +349,8 @@
340
349
  "attributes": {},
341
350
  "path": ["bgColor", "accent", "emphasis"],
342
351
  "value": "#316dca",
343
- "type": "color"
352
+ "type": "color",
353
+ "description": "Strong accent background for active states and focused states"
344
354
  },
345
355
  "bgColor-accent-muted": {
346
356
  "key": "{bgColor.accent.muted}",
@@ -361,6 +371,10 @@
361
371
  "isSource": true,
362
372
  "$type": "color"
363
373
  }
374
+ },
375
+ "org.primer.llm": {
376
+ "usage": ["selected-row", "info-banner", "active-nav-item", "highlight"],
377
+ "rules": "Use for selected states or informational highlights. Pair with fgColor.accent for text."
364
378
  }
365
379
  },
366
380
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -369,6 +383,7 @@
369
383
  "original": {
370
384
  "$value": "{base.color.blue.4}",
371
385
  "$type": "color",
386
+ "$description": "Subtle accent background for informational or selected elements",
372
387
  "$extensions": {
373
388
  "org.primer.figma": {
374
389
  "collection": "mode",
@@ -386,6 +401,10 @@
386
401
  "isSource": true,
387
402
  "$type": "color"
388
403
  }
404
+ },
405
+ "org.primer.llm": {
406
+ "usage": ["selected-row", "info-banner", "active-nav-item", "highlight"],
407
+ "rules": "Use for selected states or informational highlights. Pair with fgColor.accent for text."
389
408
  }
390
409
  },
391
410
  "alpha": 0.1,
@@ -395,7 +414,8 @@
395
414
  "attributes": {},
396
415
  "path": ["bgColor", "accent", "muted"],
397
416
  "value": "#4184e41a",
398
- "type": "color"
417
+ "type": "color",
418
+ "description": "Subtle accent background for informational or selected elements"
399
419
  },
400
420
  "bgColor-attention-emphasis": {
401
421
  "key": "{bgColor.attention.emphasis}",
@@ -413,6 +433,10 @@
413
433
  "dark-dimmed-high-contrast": "#6c4400",
414
434
  "dark-protanopia-deuteranopia-high-contrast": "#452700",
415
435
  "dark-tritanopia-high-contrast": "#452700"
436
+ },
437
+ "org.primer.llm": {
438
+ "usage": ["warning-badge", "caution-label", "attention-indicator"],
439
+ "rules": "Use for prominent warnings. Consider fgColor.default for text due to yellow contrast."
416
440
  }
417
441
  },
418
442
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -420,6 +444,7 @@
420
444
  "original": {
421
445
  "$value": "{base.color.yellow.5}",
422
446
  "$type": "color",
447
+ "$description": "Strong attention background for prominent warnings",
423
448
  "$extensions": {
424
449
  "org.primer.figma": {
425
450
  "collection": "mode",
@@ -434,6 +459,10 @@
434
459
  "dark-dimmed-high-contrast": "{base.color.yellow.7}",
435
460
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.yellow.9}",
436
461
  "dark-tritanopia-high-contrast": "{base.color.yellow.9}"
462
+ },
463
+ "org.primer.llm": {
464
+ "usage": ["warning-badge", "caution-label", "attention-indicator"],
465
+ "rules": "Use for prominent warnings. Consider fgColor.default for text due to yellow contrast."
437
466
  }
438
467
  },
439
468
  "key": "{bgColor.attention.emphasis}"
@@ -442,7 +471,8 @@
442
471
  "attributes": {},
443
472
  "path": ["bgColor", "attention", "emphasis"],
444
473
  "value": "#966600",
445
- "type": "color"
474
+ "type": "color",
475
+ "description": "Strong attention background for prominent warnings"
446
476
  },
447
477
  "bgColor-attention-muted": {
448
478
  "key": "{bgColor.attention.muted}",
@@ -463,6 +493,10 @@
463
493
  "isSource": true,
464
494
  "$type": "color"
465
495
  }
496
+ },
497
+ "org.primer.llm": {
498
+ "usage": ["warning-banner", "caution-message", "pending-state"],
499
+ "rules": "Use for warnings that need user attention. Pair with fgColor.attention for text."
466
500
  }
467
501
  },
468
502
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -471,6 +505,7 @@
471
505
  "original": {
472
506
  "$value": "{base.color.yellow.4}",
473
507
  "$type": "color",
508
+ "$description": "Subtle attention background for warnings and caution states",
474
509
  "$extensions": {
475
510
  "org.primer.figma": {
476
511
  "collection": "mode",
@@ -488,6 +523,10 @@
488
523
  "isSource": true,
489
524
  "$type": "color"
490
525
  }
526
+ },
527
+ "org.primer.llm": {
528
+ "usage": ["warning-banner", "caution-message", "pending-state"],
529
+ "rules": "Use for warnings that need user attention. Pair with fgColor.attention for text."
491
530
  }
492
531
  },
493
532
  "alpha": 0.15,
@@ -497,7 +536,8 @@
497
536
  "attributes": {},
498
537
  "path": ["bgColor", "attention", "muted"],
499
538
  "value": "#ae7c1426",
500
- "type": "color"
539
+ "type": "color",
540
+ "description": "Subtle attention background for warnings and caution states"
501
541
  },
502
542
  "bgColor-black": {
503
543
  "key": "{bgColor.black}",
@@ -509,6 +549,10 @@
509
549
  },
510
550
  "org.primer.overrides": {
511
551
  "dark": "#010409"
552
+ },
553
+ "org.primer.llm": {
554
+ "doNotUse": true,
555
+ "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."
512
556
  }
513
557
  },
514
558
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -516,6 +560,7 @@
516
560
  "original": {
517
561
  "$value": "{base.color.neutral.0}",
518
562
  "$type": "color",
563
+ "$description": "Pure black background",
519
564
  "$extensions": {
520
565
  "org.primer.figma": {
521
566
  "collection": "mode",
@@ -524,6 +569,10 @@
524
569
  },
525
570
  "org.primer.overrides": {
526
571
  "dark": "{base.color.neutral.0}"
572
+ },
573
+ "org.primer.llm": {
574
+ "doNotUse": true,
575
+ "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."
527
576
  }
528
577
  },
529
578
  "key": "{bgColor.black}"
@@ -532,7 +581,8 @@
532
581
  "attributes": {},
533
582
  "path": ["bgColor", "black"],
534
583
  "value": "#010409",
535
- "type": "color"
584
+ "type": "color",
585
+ "description": "Pure black background"
536
586
  },
537
587
  "bgColor-closed-emphasis": {
538
588
  "key": "{bgColor.closed.emphasis}",
@@ -554,6 +604,10 @@
554
604
  "light-protanopia-deuteranopia-high-contrast": "#656c76",
555
605
  "dark-protanopia-deuteranopia": "#656c76",
556
606
  "dark-protanopia-deuteranopia-high-contrast": "#656c76"
607
+ },
608
+ "org.primer.llm": {
609
+ "usage": ["closed-badge", "closed-label", "declined-status-badge"],
610
+ "rules": "Use for prominent closed/declined state indicators. Pair with fgColor.onEmphasis for text."
557
611
  }
558
612
  },
559
613
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -561,6 +615,7 @@
561
615
  "original": {
562
616
  "$value": "{bgColor.danger.emphasis}",
563
617
  "$type": "color",
618
+ "$description": "Strong background for closed state badges and labels",
564
619
  "$extensions": {
565
620
  "org.primer.figma": {
566
621
  "collection": "mode",
@@ -579,6 +634,10 @@
579
634
  "light-protanopia-deuteranopia-high-contrast": "{bgColor.neutral.emphasis}",
580
635
  "dark-protanopia-deuteranopia": "{bgColor.neutral.emphasis}",
581
636
  "dark-protanopia-deuteranopia-high-contrast": "{bgColor.neutral.emphasis}"
637
+ },
638
+ "org.primer.llm": {
639
+ "usage": ["closed-badge", "closed-label", "declined-status-badge"],
640
+ "rules": "Use for prominent closed/declined state indicators. Pair with fgColor.onEmphasis for text."
582
641
  }
583
642
  },
584
643
  "key": "{bgColor.closed.emphasis}"
@@ -587,7 +646,8 @@
587
646
  "attributes": {},
588
647
  "path": ["bgColor", "closed", "emphasis"],
589
648
  "value": "#c93c37",
590
- "type": "color"
649
+ "type": "color",
650
+ "description": "Strong background for closed state badges and labels"
591
651
  },
592
652
  "bgColor-closed-muted": {
593
653
  "key": "{bgColor.closed.muted}",
@@ -626,6 +686,10 @@
626
686
  "isSource": true,
627
687
  "$type": "color"
628
688
  }
689
+ },
690
+ "org.primer.llm": {
691
+ "usage": ["closed-issue", "closed-pr", "declined-state"],
692
+ "rules": "Use for closed/declined status indicators. Specifically for GitHub issues and PRs."
629
693
  }
630
694
  },
631
695
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -633,6 +697,7 @@
633
697
  "original": {
634
698
  "$value": "{bgColor.danger.muted}",
635
699
  "$type": "color",
700
+ "$description": "Subtle background for closed state indicators (issues, PRs)",
636
701
  "$extensions": {
637
702
  "org.primer.figma": {
638
703
  "collection": "mode",
@@ -668,6 +733,10 @@
668
733
  "isSource": true,
669
734
  "$type": "color"
670
735
  }
736
+ },
737
+ "org.primer.llm": {
738
+ "usage": ["closed-issue", "closed-pr", "declined-state"],
739
+ "rules": "Use for closed/declined status indicators. Specifically for GitHub issues and PRs."
671
740
  }
672
741
  },
673
742
  "key": "{bgColor.closed.muted}"
@@ -676,7 +745,8 @@
676
745
  "attributes": {},
677
746
  "path": ["bgColor", "closed", "muted"],
678
747
  "value": "#e5534b1a",
679
- "type": "color"
748
+ "type": "color",
749
+ "description": "Subtle background for closed state indicators (issues, PRs)"
680
750
  },
681
751
  "bgColor-danger-emphasis": {
682
752
  "key": "{bgColor.danger.emphasis}",
@@ -697,6 +767,10 @@
697
767
  "dark-high-contrast": "#5d0f12",
698
768
  "dark-dimmed-high-contrast": "#922323",
699
769
  "dark-tritanopia-high-contrast": "#5d0f12"
770
+ },
771
+ "org.primer.llm": {
772
+ "usage": ["delete-button", "critical-alert", "destructive-confirmation"],
773
+ "rules": "MUST use for destructive action buttons like delete. Use fgColor.onEmphasis for text on this background."
700
774
  }
701
775
  },
702
776
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -704,6 +778,7 @@
704
778
  "original": {
705
779
  "$value": "{base.color.red.5}",
706
780
  "$type": "color",
781
+ "$description": "Emphasized danger background for critical errors and delete confirmations",
707
782
  "$extensions": {
708
783
  "org.primer.figma": {
709
784
  "collection": "mode",
@@ -721,6 +796,10 @@
721
796
  "dark-high-contrast": "{base.color.red.9}",
722
797
  "dark-dimmed-high-contrast": "{base.color.red.7}",
723
798
  "dark-tritanopia-high-contrast": "{base.color.red.9}"
799
+ },
800
+ "org.primer.llm": {
801
+ "usage": ["delete-button", "critical-alert", "destructive-confirmation"],
802
+ "rules": "MUST use for destructive action buttons like delete. Use fgColor.onEmphasis for text on this background."
724
803
  }
725
804
  },
726
805
  "key": "{bgColor.danger.emphasis}"
@@ -729,7 +808,8 @@
729
808
  "attributes": {},
730
809
  "path": ["bgColor", "danger", "emphasis"],
731
810
  "value": "#c93c37",
732
- "type": "color"
811
+ "type": "color",
812
+ "description": "Emphasized danger background for critical errors and delete confirmations"
733
813
  },
734
814
  "bgColor-danger-muted": {
735
815
  "key": "{bgColor.danger.muted}",
@@ -759,6 +839,10 @@
759
839
  "isSource": true,
760
840
  "$type": "color"
761
841
  }
842
+ },
843
+ "org.primer.llm": {
844
+ "usage": ["error-message", "destructive-action", "validation-error"],
845
+ "rules": "Use for error states and destructive action backgrounds. Pair with fgColor.danger for text."
762
846
  }
763
847
  },
764
848
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -767,6 +851,7 @@
767
851
  "original": {
768
852
  "$value": "{base.color.red.4}",
769
853
  "$type": "color",
854
+ "$description": "Muted danger background for error states and destructive action contexts",
770
855
  "$extensions": {
771
856
  "org.primer.figma": {
772
857
  "collection": "mode",
@@ -793,6 +878,10 @@
793
878
  "isSource": true,
794
879
  "$type": "color"
795
880
  }
881
+ },
882
+ "org.primer.llm": {
883
+ "usage": ["error-message", "destructive-action", "validation-error"],
884
+ "rules": "Use for error states and destructive action backgrounds. Pair with fgColor.danger for text."
796
885
  }
797
886
  },
798
887
  "alpha": 0.1,
@@ -802,7 +891,8 @@
802
891
  "attributes": {},
803
892
  "path": ["bgColor", "danger", "muted"],
804
893
  "value": "#e5534b1a",
805
- "type": "color"
894
+ "type": "color",
895
+ "description": "Muted danger background for error states and destructive action contexts"
806
896
  },
807
897
  "bgColor-default": {
808
898
  "key": "{bgColor.default}",
@@ -822,6 +912,10 @@
822
912
  "dark-high-contrast": "#010409",
823
913
  "dark-tritanopia-high-contrast": "#010409",
824
914
  "dark-protanopia-deuteranopia-high-contrast": "#010409"
915
+ },
916
+ "org.primer.llm": {
917
+ "usage": ["page-background", "main-content", "card-background"],
918
+ "rules": "Use as the primary background for pages and content areas. Do NOT use for emphasis or highlighting."
825
919
  }
826
920
  },
827
921
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -829,6 +923,7 @@
829
923
  "original": {
830
924
  "$value": "{base.color.neutral.3}",
831
925
  "$type": "color",
926
+ "$description": "Default background color for pages and main content areas",
832
927
  "$extensions": {
833
928
  "org.primer.figma": {
834
929
  "collection": "mode",
@@ -845,6 +940,10 @@
845
940
  "dark-high-contrast": "{base.color.neutral.0}",
846
941
  "dark-tritanopia-high-contrast": "{base.color.neutral.0}",
847
942
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.0}"
943
+ },
944
+ "org.primer.llm": {
945
+ "usage": ["page-background", "main-content", "card-background"],
946
+ "rules": "Use as the primary background for pages and content areas. Do NOT use for emphasis or highlighting."
848
947
  }
849
948
  },
850
949
  "key": "{bgColor.default}"
@@ -853,7 +952,8 @@
853
952
  "attributes": {},
854
953
  "path": ["bgColor", "default"],
855
954
  "value": "#212830",
856
- "type": "color"
955
+ "type": "color",
956
+ "description": "Default background color for pages and main content areas"
857
957
  },
858
958
  "bgColor-disabled": {
859
959
  "key": "{bgColor.disabled}",
@@ -873,6 +973,10 @@
873
973
  "dark-high-contrast": "#262c36",
874
974
  "dark-tritanopia-high-contrast": "#262c36",
875
975
  "dark-protanopia-deuteranopia-high-contrast": "#262c36"
976
+ },
977
+ "org.primer.llm": {
978
+ "usage": ["disabled-button", "disabled-input", "inactive-element"],
979
+ "rules": "MUST use for disabled state backgrounds. Pair with fgColor.disabled for text. Do NOT use for active elements."
876
980
  }
877
981
  },
878
982
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -880,6 +984,7 @@
880
984
  "original": {
881
985
  "$value": "{base.color.neutral.5}",
882
986
  "$type": "color",
987
+ "$description": "Background for disabled interactive elements",
883
988
  "$extensions": {
884
989
  "org.primer.figma": {
885
990
  "collection": "mode",
@@ -896,6 +1001,10 @@
896
1001
  "dark-high-contrast": "{base.color.neutral.4}",
897
1002
  "dark-tritanopia-high-contrast": "{base.color.neutral.4}",
898
1003
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.4}"
1004
+ },
1005
+ "org.primer.llm": {
1006
+ "usage": ["disabled-button", "disabled-input", "inactive-element"],
1007
+ "rules": "MUST use for disabled state backgrounds. Pair with fgColor.disabled for text. Do NOT use for active elements."
899
1008
  }
900
1009
  },
901
1010
  "key": "{bgColor.disabled}"
@@ -904,7 +1013,8 @@
904
1013
  "attributes": {},
905
1014
  "path": ["bgColor", "disabled"],
906
1015
  "value": "#2a313c",
907
- "type": "color"
1016
+ "type": "color",
1017
+ "description": "Background for disabled interactive elements"
908
1018
  },
909
1019
  "bgColor-done-emphasis": {
910
1020
  "key": "{bgColor.done.emphasis}",
@@ -922,6 +1032,10 @@
922
1032
  "dark-dimmed-high-contrast": "#5936a2",
923
1033
  "dark-tritanopia-high-contrast": "#352160",
924
1034
  "dark-protanopia-deuteranopia-high-contrast": "#352160"
1035
+ },
1036
+ "org.primer.llm": {
1037
+ "usage": ["done-badge", "merged-label", "completed-indicator"],
1038
+ "rules": "Use for prominent done/completed state indicators. Pair with fgColor.onEmphasis for text."
925
1039
  }
926
1040
  },
927
1041
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -929,6 +1043,7 @@
929
1043
  "original": {
930
1044
  "$value": "{base.color.purple.5}",
931
1045
  "$type": "color",
1046
+ "$description": "Strong background for completed/done state badges and labels",
932
1047
  "$extensions": {
933
1048
  "org.primer.figma": {
934
1049
  "collection": "mode",
@@ -943,6 +1058,10 @@
943
1058
  "dark-dimmed-high-contrast": "{base.color.purple.7}",
944
1059
  "dark-tritanopia-high-contrast": "{base.color.purple.9}",
945
1060
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.purple.9}"
1061
+ },
1062
+ "org.primer.llm": {
1063
+ "usage": ["done-badge", "merged-label", "completed-indicator"],
1064
+ "rules": "Use for prominent done/completed state indicators. Pair with fgColor.onEmphasis for text."
946
1065
  }
947
1066
  },
948
1067
  "key": "{bgColor.done.emphasis}"
@@ -951,7 +1070,8 @@
951
1070
  "attributes": {},
952
1071
  "path": ["bgColor", "done", "emphasis"],
953
1072
  "value": "#8256d0",
954
- "type": "color"
1073
+ "type": "color",
1074
+ "description": "Strong background for completed/done state badges and labels"
955
1075
  },
956
1076
  "bgColor-done-muted": {
957
1077
  "key": "{bgColor.done.muted}",
@@ -972,6 +1092,10 @@
972
1092
  "isSource": true,
973
1093
  "$type": "color"
974
1094
  }
1095
+ },
1096
+ "org.primer.llm": {
1097
+ "usage": ["completed-task", "merged-pr", "done-state"],
1098
+ "rules": "Use for completed/done status indicators. Conveys finished or merged state."
975
1099
  }
976
1100
  },
977
1101
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -980,6 +1104,7 @@
980
1104
  "original": {
981
1105
  "$value": "{base.color.purple.4}",
982
1106
  "$type": "color",
1107
+ "$description": "Subtle background for completed/done state indicators",
983
1108
  "$extensions": {
984
1109
  "org.primer.figma": {
985
1110
  "collection": "mode",
@@ -997,6 +1122,10 @@
997
1122
  "isSource": true,
998
1123
  "$type": "color"
999
1124
  }
1125
+ },
1126
+ "org.primer.llm": {
1127
+ "usage": ["completed-task", "merged-pr", "done-state"],
1128
+ "rules": "Use for completed/done status indicators. Conveys finished or merged state."
1000
1129
  }
1001
1130
  },
1002
1131
  "alpha": 0.15,
@@ -1006,7 +1135,8 @@
1006
1135
  "attributes": {},
1007
1136
  "path": ["bgColor", "done", "muted"],
1008
1137
  "value": "#986ee226",
1009
- "type": "color"
1138
+ "type": "color",
1139
+ "description": "Subtle background for completed/done state indicators"
1010
1140
  },
1011
1141
  "bgColor-draft-emphasis": {
1012
1142
  "key": "{bgColor.draft.emphasis}",
@@ -1018,6 +1148,10 @@
1018
1148
  "codeSyntax": {
1019
1149
  "web": "var(--bgColor-draft-emphasis)"
1020
1150
  }
1151
+ },
1152
+ "org.primer.llm": {
1153
+ "usage": ["draft-badge", "draft-label", "wip-indicator"],
1154
+ "rules": "Use for prominent draft state indicators. Pair with fgColor.onEmphasis for text."
1021
1155
  }
1022
1156
  },
1023
1157
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1025,6 +1159,7 @@
1025
1159
  "original": {
1026
1160
  "$value": "{bgColor.neutral.emphasis}",
1027
1161
  "$type": "color",
1162
+ "$description": "Strong background for draft state badges and labels",
1028
1163
  "$extensions": {
1029
1164
  "org.primer.figma": {
1030
1165
  "collection": "mode",
@@ -1033,6 +1168,10 @@
1033
1168
  "codeSyntax": {
1034
1169
  "web": "var(--bgColor-draft-emphasis)"
1035
1170
  }
1171
+ },
1172
+ "org.primer.llm": {
1173
+ "usage": ["draft-badge", "draft-label", "wip-indicator"],
1174
+ "rules": "Use for prominent draft state indicators. Pair with fgColor.onEmphasis for text."
1036
1175
  }
1037
1176
  },
1038
1177
  "key": "{bgColor.draft.emphasis}"
@@ -1041,7 +1180,8 @@
1041
1180
  "attributes": {},
1042
1181
  "path": ["bgColor", "draft", "emphasis"],
1043
1182
  "value": "#656c76",
1044
- "type": "color"
1183
+ "type": "color",
1184
+ "description": "Strong background for draft state badges and labels"
1045
1185
  },
1046
1186
  "bgColor-draft-muted": {
1047
1187
  "key": "{bgColor.draft.muted}",
@@ -1080,6 +1220,10 @@
1080
1220
  "isSource": true,
1081
1221
  "$type": "color"
1082
1222
  }
1223
+ },
1224
+ "org.primer.llm": {
1225
+ "usage": ["draft-pr", "draft-issue", "work-in-progress"],
1226
+ "rules": "Use for draft/WIP status indicators. Conveys incomplete or pending state."
1083
1227
  }
1084
1228
  },
1085
1229
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1087,6 +1231,7 @@
1087
1231
  "original": {
1088
1232
  "$value": "{bgColor.neutral.muted}",
1089
1233
  "$type": "color",
1234
+ "$description": "Subtle background for draft state indicators",
1090
1235
  "$extensions": {
1091
1236
  "org.primer.figma": {
1092
1237
  "collection": "mode",
@@ -1122,6 +1267,10 @@
1122
1267
  "isSource": true,
1123
1268
  "$type": "color"
1124
1269
  }
1270
+ },
1271
+ "org.primer.llm": {
1272
+ "usage": ["draft-pr", "draft-issue", "work-in-progress"],
1273
+ "rules": "Use for draft/WIP status indicators. Conveys incomplete or pending state."
1125
1274
  }
1126
1275
  },
1127
1276
  "key": "{bgColor.draft.muted}"
@@ -1130,7 +1279,8 @@
1130
1279
  "attributes": {},
1131
1280
  "path": ["bgColor", "draft", "muted"],
1132
1281
  "value": "#656c7633",
1133
- "type": "color"
1282
+ "type": "color",
1283
+ "description": "Subtle background for draft state indicators"
1134
1284
  },
1135
1285
  "bgColor-emphasis": {
1136
1286
  "key": "{bgColor.emphasis}",
@@ -1145,6 +1295,10 @@
1145
1295
  },
1146
1296
  "org.primer.overrides": {
1147
1297
  "dark": "#3d444d"
1298
+ },
1299
+ "org.primer.llm": {
1300
+ "usage": ["tooltip", "badge-background", "high-contrast-element"],
1301
+ "rules": "Use for elements needing strong visual emphasis. Pair with fgColor.onEmphasis for text. Do NOT use for large areas."
1148
1302
  }
1149
1303
  },
1150
1304
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1152,6 +1306,7 @@
1152
1306
  "original": {
1153
1307
  "$value": "{base.color.neutral.7}",
1154
1308
  "$type": "color",
1309
+ "$description": "High-emphasis dark background for strong visual contrast",
1155
1310
  "$extensions": {
1156
1311
  "org.primer.figma": {
1157
1312
  "collection": "mode",
@@ -1163,6 +1318,10 @@
1163
1318
  },
1164
1319
  "org.primer.overrides": {
1165
1320
  "dark": "{base.color.neutral.7}"
1321
+ },
1322
+ "org.primer.llm": {
1323
+ "usage": ["tooltip", "badge-background", "high-contrast-element"],
1324
+ "rules": "Use for elements needing strong visual emphasis. Pair with fgColor.onEmphasis for text. Do NOT use for large areas."
1166
1325
  }
1167
1326
  },
1168
1327
  "key": "{bgColor.emphasis}"
@@ -1171,7 +1330,8 @@
1171
1330
  "attributes": {},
1172
1331
  "path": ["bgColor", "emphasis"],
1173
1332
  "value": "#3d444d",
1174
- "type": "color"
1333
+ "type": "color",
1334
+ "description": "High-emphasis dark background for strong visual contrast"
1175
1335
  },
1176
1336
  "bgColor-inset": {
1177
1337
  "key": "{bgColor.inset}",
@@ -1191,6 +1351,10 @@
1191
1351
  "light-high-contrast": "#151b23",
1192
1352
  "light-tritanopia-high-contrast": "#151b23",
1193
1353
  "light-protanopia-deuteranopia-high-contrast": "#151b23"
1354
+ },
1355
+ "org.primer.llm": {
1356
+ "usage": ["well", "sunken-panel", "recessed-area", "input-background"],
1357
+ "rules": "Use for visually recessed areas. Creates depth hierarchy. Suitable for input fields and wells."
1194
1358
  }
1195
1359
  },
1196
1360
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1198,6 +1362,7 @@
1198
1362
  "original": {
1199
1363
  "$value": "{base.color.neutral.2}",
1200
1364
  "$type": "color",
1365
+ "$description": "Inset background for recessed content areas like wells or sunken panels",
1201
1366
  "$extensions": {
1202
1367
  "org.primer.figma": {
1203
1368
  "collection": "mode",
@@ -1214,6 +1379,10 @@
1214
1379
  "light-high-contrast": "{base.color.neutral.2}",
1215
1380
  "light-tritanopia-high-contrast": "{base.color.neutral.2}",
1216
1381
  "light-protanopia-deuteranopia-high-contrast": "{base.color.neutral.2}"
1382
+ },
1383
+ "org.primer.llm": {
1384
+ "usage": ["well", "sunken-panel", "recessed-area", "input-background"],
1385
+ "rules": "Use for visually recessed areas. Creates depth hierarchy. Suitable for input fields and wells."
1217
1386
  }
1218
1387
  },
1219
1388
  "key": "{bgColor.inset}"
@@ -1222,7 +1391,8 @@
1222
1391
  "attributes": {},
1223
1392
  "path": ["bgColor", "inset"],
1224
1393
  "value": "#151b23",
1225
- "type": "color"
1394
+ "type": "color",
1395
+ "description": "Inset background for recessed content areas like wells or sunken panels"
1226
1396
  },
1227
1397
  "bgColor-inverse": {
1228
1398
  "key": "{bgColor.inverse}",
@@ -1234,6 +1404,10 @@
1234
1404
  },
1235
1405
  "org.primer.overrides": {
1236
1406
  "dark": "#cdd9e5"
1407
+ },
1408
+ "org.primer.llm": {
1409
+ "usage": ["overlay-content", "inverse-theme-element"],
1410
+ "rules": "Use when you need opposite theme background. Pair with fgColor.onInverse for text."
1237
1411
  }
1238
1412
  },
1239
1413
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1241,6 +1415,7 @@
1241
1415
  "original": {
1242
1416
  "$value": "{base.color.neutral.13}",
1243
1417
  "$type": "color",
1418
+ "$description": "Inverse background that flips between light and dark modes",
1244
1419
  "$extensions": {
1245
1420
  "org.primer.figma": {
1246
1421
  "collection": "mode",
@@ -1249,6 +1424,10 @@
1249
1424
  },
1250
1425
  "org.primer.overrides": {
1251
1426
  "dark": "{base.color.neutral.13}"
1427
+ },
1428
+ "org.primer.llm": {
1429
+ "usage": ["overlay-content", "inverse-theme-element"],
1430
+ "rules": "Use when you need opposite theme background. Pair with fgColor.onInverse for text."
1252
1431
  }
1253
1432
  },
1254
1433
  "key": "{bgColor.inverse}"
@@ -1257,7 +1436,8 @@
1257
1436
  "attributes": {},
1258
1437
  "path": ["bgColor", "inverse"],
1259
1438
  "value": "#cdd9e5",
1260
- "type": "color"
1439
+ "type": "color",
1440
+ "description": "Inverse background that flips between light and dark modes"
1261
1441
  },
1262
1442
  "bgColor-muted": {
1263
1443
  "key": "{bgColor.muted}",
@@ -1280,6 +1460,10 @@
1280
1460
  "dark-high-contrast": "#151b23",
1281
1461
  "dark-tritanopia-high-contrast": "#151b23",
1282
1462
  "dark-protanopia-deuteranopia-high-contrast": "#151b23"
1463
+ },
1464
+ "org.primer.llm": {
1465
+ "usage": ["secondary-content", "code-block-background", "table-header", "sidebar"],
1466
+ "rules": "Use for secondary content areas or to create visual grouping. Do NOT use for primary page backgrounds."
1283
1467
  }
1284
1468
  },
1285
1469
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1287,6 +1471,7 @@
1287
1471
  "original": {
1288
1472
  "$value": "{base.color.neutral.4}",
1289
1473
  "$type": "color",
1474
+ "$description": "Muted background for secondary content areas and subtle grouping",
1290
1475
  "$extensions": {
1291
1476
  "org.primer.figma": {
1292
1477
  "collection": "mode",
@@ -1306,6 +1491,10 @@
1306
1491
  "dark-high-contrast": "{base.color.neutral.2}",
1307
1492
  "dark-tritanopia-high-contrast": "{base.color.neutral.2}",
1308
1493
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.2}"
1494
+ },
1495
+ "org.primer.llm": {
1496
+ "usage": ["secondary-content", "code-block-background", "table-header", "sidebar"],
1497
+ "rules": "Use for secondary content areas or to create visual grouping. Do NOT use for primary page backgrounds."
1309
1498
  }
1310
1499
  },
1311
1500
  "key": "{bgColor.muted}"
@@ -1314,7 +1503,8 @@
1314
1503
  "attributes": {},
1315
1504
  "path": ["bgColor", "muted"],
1316
1505
  "value": "#262c36",
1317
- "type": "color"
1506
+ "type": "color",
1507
+ "description": "Muted background for secondary content areas and subtle grouping"
1318
1508
  },
1319
1509
  "bgColor-neutral-emphasis": {
1320
1510
  "key": "{bgColor.neutral.emphasis}",
@@ -1334,6 +1524,10 @@
1334
1524
  "dark-high-contrast": "#3d444d",
1335
1525
  "dark-tritanopia-high-contrast": "#3d444d",
1336
1526
  "dark-protanopia-deuteranopia-high-contrast": "#3d444d"
1527
+ },
1528
+ "org.primer.llm": {
1529
+ "usage": ["neutral-button", "secondary-action", "neutral-indicator"],
1530
+ "rules": "Use for emphasized neutral elements. Pair with fgColor.onEmphasis for text."
1337
1531
  }
1338
1532
  },
1339
1533
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1341,6 +1535,7 @@
1341
1535
  "original": {
1342
1536
  "$value": "{base.color.neutral.8}",
1343
1537
  "$type": "color",
1538
+ "$description": "Strong neutral background for prominent neutral elements",
1344
1539
  "$extensions": {
1345
1540
  "org.primer.figma": {
1346
1541
  "collection": "mode",
@@ -1357,6 +1552,10 @@
1357
1552
  "dark-high-contrast": "{base.color.neutral.7}",
1358
1553
  "dark-tritanopia-high-contrast": "{base.color.neutral.7}",
1359
1554
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.7}"
1555
+ },
1556
+ "org.primer.llm": {
1557
+ "usage": ["neutral-button", "secondary-action", "neutral-indicator"],
1558
+ "rules": "Use for emphasized neutral elements. Pair with fgColor.onEmphasis for text."
1360
1559
  }
1361
1560
  },
1362
1561
  "key": "{bgColor.neutral.emphasis}"
@@ -1365,7 +1564,8 @@
1365
1564
  "attributes": {},
1366
1565
  "path": ["bgColor", "neutral", "emphasis"],
1367
1566
  "value": "#656c76",
1368
- "type": "color"
1567
+ "type": "color",
1568
+ "description": "Strong neutral background for prominent neutral elements"
1369
1569
  },
1370
1570
  "bgColor-neutral-muted": {
1371
1571
  "key": "{bgColor.neutral.muted}",
@@ -1396,6 +1596,10 @@
1396
1596
  "dark-high-contrast": "#212830",
1397
1597
  "dark-tritanopia-high-contrast": "#212830",
1398
1598
  "dark-protanopia-deuteranopia-high-contrast": "#212830"
1599
+ },
1600
+ "org.primer.llm": {
1601
+ "usage": ["neutral-label", "neutral-badge", "secondary-tag", "counter"],
1602
+ "rules": "Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators."
1399
1603
  }
1400
1604
  },
1401
1605
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1404,6 +1608,7 @@
1404
1608
  "original": {
1405
1609
  "$value": "{base.color.neutral.8}",
1406
1610
  "$type": "color",
1611
+ "$description": "Subtle neutral background for tags, labels, and secondary UI elements",
1407
1612
  "$extensions": {
1408
1613
  "org.primer.figma": {
1409
1614
  "collection": "mode",
@@ -1431,6 +1636,10 @@
1431
1636
  "dark-high-contrast": "{base.color.neutral.3}",
1432
1637
  "dark-tritanopia-high-contrast": "{base.color.neutral.3}",
1433
1638
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.3}"
1639
+ },
1640
+ "org.primer.llm": {
1641
+ "usage": ["neutral-label", "neutral-badge", "secondary-tag", "counter"],
1642
+ "rules": "Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators."
1434
1643
  }
1435
1644
  },
1436
1645
  "alpha": 0.2,
@@ -1440,7 +1649,8 @@
1440
1649
  "attributes": {},
1441
1650
  "path": ["bgColor", "neutral", "muted"],
1442
1651
  "value": "#656c7633",
1443
- "type": "color"
1652
+ "type": "color",
1653
+ "description": "Subtle neutral background for tags, labels, and secondary UI elements"
1444
1654
  },
1445
1655
  "bgColor-open-emphasis": {
1446
1656
  "key": "{bgColor.open.emphasis}",
@@ -1462,6 +1672,10 @@
1462
1672
  "light-protanopia-deuteranopia-high-contrast": "#ae5622",
1463
1673
  "dark-protanopia-deuteranopia": "#ae5622",
1464
1674
  "dark-protanopia-deuteranopia-high-contrast": "#4d210c"
1675
+ },
1676
+ "org.primer.llm": {
1677
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1678
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1465
1679
  }
1466
1680
  },
1467
1681
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1469,6 +1683,7 @@
1469
1683
  "original": {
1470
1684
  "$value": "{bgColor.success.emphasis}",
1471
1685
  "$type": "color",
1686
+ "$description": "Strong background for open state badges and labels",
1472
1687
  "$extensions": {
1473
1688
  "org.primer.figma": {
1474
1689
  "collection": "mode",
@@ -1487,6 +1702,10 @@
1487
1702
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
1488
1703
  "dark-protanopia-deuteranopia": "{base.color.orange.5}",
1489
1704
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1705
+ },
1706
+ "org.primer.llm": {
1707
+ "usage": ["open-badge", "open-label", "active-status-badge"],
1708
+ "rules": "Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text."
1490
1709
  }
1491
1710
  },
1492
1711
  "key": "{bgColor.open.emphasis}"
@@ -1495,7 +1714,8 @@
1495
1714
  "attributes": {},
1496
1715
  "path": ["bgColor", "open", "emphasis"],
1497
1716
  "value": "#347d39",
1498
- "type": "color"
1717
+ "type": "color",
1718
+ "description": "Strong background for open state badges and labels"
1499
1719
  },
1500
1720
  "bgColor-open-muted": {
1501
1721
  "key": "{bgColor.open.muted}",
@@ -1541,6 +1761,10 @@
1541
1761
  "isSource": true,
1542
1762
  "$type": "color"
1543
1763
  }
1764
+ },
1765
+ "org.primer.llm": {
1766
+ "usage": ["open-issue", "open-pr", "active-status"],
1767
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1544
1768
  }
1545
1769
  },
1546
1770
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1548,6 +1772,7 @@
1548
1772
  "original": {
1549
1773
  "$value": "{bgColor.success.muted}",
1550
1774
  "$type": "color",
1775
+ "$description": "Subtle background for open state indicators (issues, PRs)",
1551
1776
  "$extensions": {
1552
1777
  "org.primer.figma": {
1553
1778
  "collection": "mode",
@@ -1590,6 +1815,10 @@
1590
1815
  "isSource": true,
1591
1816
  "$type": "color"
1592
1817
  }
1818
+ },
1819
+ "org.primer.llm": {
1820
+ "usage": ["open-issue", "open-pr", "active-status"],
1821
+ "rules": "Use for open/active status indicators. Specifically for GitHub issues and PRs."
1593
1822
  }
1594
1823
  },
1595
1824
  "key": "{bgColor.open.muted}"
@@ -1598,7 +1827,8 @@
1598
1827
  "attributes": {},
1599
1828
  "path": ["bgColor", "open", "muted"],
1600
1829
  "value": "#46954a26",
1601
- "type": "color"
1830
+ "type": "color",
1831
+ "description": "Subtle background for open state indicators (issues, PRs)"
1602
1832
  },
1603
1833
  "bgColor-severe-emphasis": {
1604
1834
  "key": "{bgColor.severe.emphasis}",
@@ -1619,6 +1849,10 @@
1619
1849
  "dark-high-contrast": "#4d210c",
1620
1850
  "dark-dimmed-high-contrast": "#7f3913",
1621
1851
  "dark-protanopia-deuteranopia-high-contrast": "#4d210c"
1852
+ },
1853
+ "org.primer.llm": {
1854
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1855
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1622
1856
  }
1623
1857
  },
1624
1858
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1626,6 +1860,7 @@
1626
1860
  "original": {
1627
1861
  "$value": "{base.color.orange.5}",
1628
1862
  "$type": "color",
1863
+ "$description": "Strong severe background for prominent high-priority warnings",
1629
1864
  "$extensions": {
1630
1865
  "org.primer.figma": {
1631
1866
  "collection": "mode",
@@ -1643,6 +1878,10 @@
1643
1878
  "dark-high-contrast": "{base.color.orange.9}",
1644
1879
  "dark-dimmed-high-contrast": "{base.color.orange.7}",
1645
1880
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.9}"
1881
+ },
1882
+ "org.primer.llm": {
1883
+ "usage": ["severe-badge", "urgent-label", "high-priority-indicator"],
1884
+ "rules": "Use for prominent severe warnings. Pair with fgColor.onEmphasis for text."
1646
1885
  }
1647
1886
  },
1648
1887
  "key": "{bgColor.severe.emphasis}"
@@ -1651,7 +1890,8 @@
1651
1890
  "attributes": {},
1652
1891
  "path": ["bgColor", "severe", "emphasis"],
1653
1892
  "value": "#ae5622",
1654
- "type": "color"
1893
+ "type": "color",
1894
+ "description": "Strong severe background for prominent high-priority warnings"
1655
1895
  },
1656
1896
  "bgColor-severe-muted": {
1657
1897
  "key": "{bgColor.severe.muted}",
@@ -1681,6 +1921,10 @@
1681
1921
  "isSource": true,
1682
1922
  "$type": "color"
1683
1923
  }
1924
+ },
1925
+ "org.primer.llm": {
1926
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1927
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1684
1928
  }
1685
1929
  },
1686
1930
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1689,6 +1933,7 @@
1689
1933
  "original": {
1690
1934
  "$value": "{base.color.orange.4}",
1691
1935
  "$type": "color",
1936
+ "$description": "Subtle severe background for high-priority warnings",
1692
1937
  "$extensions": {
1693
1938
  "org.primer.figma": {
1694
1939
  "collection": "mode",
@@ -1715,6 +1960,10 @@
1715
1960
  "isSource": true,
1716
1961
  "$type": "color"
1717
1962
  }
1963
+ },
1964
+ "org.primer.llm": {
1965
+ "usage": ["high-priority-warning", "urgent-message", "escalation"],
1966
+ "rules": "Use for severe warnings, less critical than danger. Pair with fgColor.severe for text."
1718
1967
  }
1719
1968
  },
1720
1969
  "alpha": 0.1,
@@ -1724,7 +1973,8 @@
1724
1973
  "attributes": {},
1725
1974
  "path": ["bgColor", "severe", "muted"],
1726
1975
  "value": "#cc6b2c1a",
1727
- "type": "color"
1976
+ "type": "color",
1977
+ "description": "Subtle severe background for high-priority warnings"
1728
1978
  },
1729
1979
  "bgColor-sponsors-emphasis": {
1730
1980
  "key": "{bgColor.sponsors.emphasis}",
@@ -1742,6 +1992,10 @@
1742
1992
  "dark-dimmed-high-contrast": "#7e325a",
1743
1993
  "dark-tritanopia-high-contrast": "#551639",
1744
1994
  "dark-protanopia-deuteranopia-high-contrast": "#551639"
1995
+ },
1996
+ "org.primer.llm": {
1997
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
1998
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1745
1999
  }
1746
2000
  },
1747
2001
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1749,6 +2003,7 @@
1749
2003
  "original": {
1750
2004
  "$value": "{base.color.pink.5}",
1751
2005
  "$type": "color",
2006
+ "$description": "Strong background for prominent GitHub Sponsors elements",
1752
2007
  "$extensions": {
1753
2008
  "org.primer.figma": {
1754
2009
  "collection": "mode",
@@ -1763,6 +2018,10 @@
1763
2018
  "dark-dimmed-high-contrast": "{base.color.pink.7}",
1764
2019
  "dark-tritanopia-high-contrast": "{base.color.pink.9}",
1765
2020
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.pink.9}"
2021
+ },
2022
+ "org.primer.llm": {
2023
+ "usage": ["sponsor-button", "sponsor-badge", "funding-cta"],
2024
+ "rules": "Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text."
1766
2025
  }
1767
2026
  },
1768
2027
  "key": "{bgColor.sponsors.emphasis}"
@@ -1771,7 +2030,8 @@
1771
2030
  "attributes": {},
1772
2031
  "path": ["bgColor", "sponsors", "emphasis"],
1773
2032
  "value": "#ae4c82",
1774
- "type": "color"
2033
+ "type": "color",
2034
+ "description": "Strong background for prominent GitHub Sponsors elements"
1775
2035
  },
1776
2036
  "bgColor-sponsors-muted": {
1777
2037
  "key": "{bgColor.sponsors.muted}",
@@ -1799,6 +2059,10 @@
1799
2059
  "isSource": true,
1800
2060
  "$type": "color"
1801
2061
  }
2062
+ },
2063
+ "org.primer.llm": {
2064
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2065
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1802
2066
  }
1803
2067
  },
1804
2068
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1807,6 +2071,7 @@
1807
2071
  "original": {
1808
2072
  "$value": "{base.color.pink.4}",
1809
2073
  "$type": "color",
2074
+ "$description": "Subtle background for GitHub Sponsors content",
1810
2075
  "$extensions": {
1811
2076
  "org.primer.figma": {
1812
2077
  "collection": "mode",
@@ -1831,6 +2096,10 @@
1831
2096
  "isSource": true,
1832
2097
  "$type": "color"
1833
2098
  }
2099
+ },
2100
+ "org.primer.llm": {
2101
+ "usage": ["sponsor-card", "sponsor-highlight", "funding-prompt"],
2102
+ "rules": "Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements."
1834
2103
  }
1835
2104
  },
1836
2105
  "alpha": 0.1,
@@ -1840,7 +2109,8 @@
1840
2109
  "attributes": {},
1841
2110
  "path": ["bgColor", "sponsors", "muted"],
1842
2111
  "value": "#c961981a",
1843
- "type": "color"
2112
+ "type": "color",
2113
+ "description": "Subtle background for GitHub Sponsors content"
1844
2114
  },
1845
2115
  "bgColor-success-emphasis": {
1846
2116
  "key": "{bgColor.success.emphasis}",
@@ -1866,6 +2136,10 @@
1866
2136
  "light-high-contrast": "#347d39",
1867
2137
  "dark-high-contrast": "#113417",
1868
2138
  "dark-dimmed-high-contrast": "#245829"
2139
+ },
2140
+ "org.primer.llm": {
2141
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2142
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1869
2143
  }
1870
2144
  },
1871
2145
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1873,6 +2147,7 @@
1873
2147
  "original": {
1874
2148
  "$value": "{base.color.green.5}",
1875
2149
  "$type": "color",
2150
+ "$description": "Strong success background for prominent positive actions",
1876
2151
  "$extensions": {
1877
2152
  "org.primer.figma": {
1878
2153
  "collection": "mode",
@@ -1895,6 +2170,10 @@
1895
2170
  "light-high-contrast": "{base.color.green.5}",
1896
2171
  "dark-high-contrast": "{base.color.green.9}",
1897
2172
  "dark-dimmed-high-contrast": "{base.color.green.7}"
2173
+ },
2174
+ "org.primer.llm": {
2175
+ "usage": ["merge-button", "confirm-action", "success-badge"],
2176
+ "rules": "Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text."
1898
2177
  }
1899
2178
  },
1900
2179
  "key": "{bgColor.success.emphasis}"
@@ -1903,7 +2182,8 @@
1903
2182
  "attributes": {},
1904
2183
  "path": ["bgColor", "success", "emphasis"],
1905
2184
  "value": "#347d39",
1906
- "type": "color"
2185
+ "type": "color",
2186
+ "description": "Strong success background for prominent positive actions"
1907
2187
  },
1908
2188
  "bgColor-success-muted": {
1909
2189
  "key": "{bgColor.success.muted}",
@@ -1956,6 +2236,10 @@
1956
2236
  "isSource": true,
1957
2237
  "$type": "color"
1958
2238
  }
2239
+ },
2240
+ "org.primer.llm": {
2241
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2242
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
1959
2243
  }
1960
2244
  },
1961
2245
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -1964,6 +2248,7 @@
1964
2248
  "original": {
1965
2249
  "$value": "{base.color.green.4}",
1966
2250
  "$type": "color",
2251
+ "$description": "Subtle success background for positive feedback and completed states",
1967
2252
  "$extensions": {
1968
2253
  "org.primer.figma": {
1969
2254
  "collection": "mode",
@@ -2013,6 +2298,10 @@
2013
2298
  "isSource": true,
2014
2299
  "$type": "color"
2015
2300
  }
2301
+ },
2302
+ "org.primer.llm": {
2303
+ "usage": ["success-message", "completed-state", "positive-feedback"],
2304
+ "rules": "Use for success states and positive feedback. Pair with fgColor.success for text."
2016
2305
  }
2017
2306
  },
2018
2307
  "alpha": 0.15,
@@ -2022,7 +2311,8 @@
2022
2311
  "attributes": {},
2023
2312
  "path": ["bgColor", "success", "muted"],
2024
2313
  "value": "#46954a26",
2025
- "type": "color"
2314
+ "type": "color",
2315
+ "description": "Subtle success background for positive feedback and completed states"
2026
2316
  },
2027
2317
  "bgColor-transparent": {
2028
2318
  "key": "{bgColor.transparent}",
@@ -2034,6 +2324,10 @@
2034
2324
  "codeSyntax": {
2035
2325
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2036
2326
  }
2327
+ },
2328
+ "org.primer.llm": {
2329
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2330
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2037
2331
  }
2038
2332
  },
2039
2333
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2041,6 +2335,7 @@
2041
2335
  "original": {
2042
2336
  "$value": "{base.color.transparent}",
2043
2337
  "$type": "color",
2338
+ "$description": "Fully transparent background",
2044
2339
  "$extensions": {
2045
2340
  "org.primer.figma": {
2046
2341
  "collection": "mode",
@@ -2049,6 +2344,10 @@
2049
2344
  "codeSyntax": {
2050
2345
  "web": "var(--bgColor-transparent) /* utility class: .color-bg-transparent */"
2051
2346
  }
2347
+ },
2348
+ "org.primer.llm": {
2349
+ "usage": ["ghost-button", "icon-button", "overlay-trigger"],
2350
+ "rules": "Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states."
2052
2351
  }
2053
2352
  },
2054
2353
  "key": "{bgColor.transparent}"
@@ -2057,7 +2356,8 @@
2057
2356
  "attributes": {},
2058
2357
  "path": ["bgColor", "transparent"],
2059
2358
  "value": "#00000000",
2060
- "type": "color"
2359
+ "type": "color",
2360
+ "description": "Fully transparent background"
2061
2361
  },
2062
2362
  "bgColor-upsell-emphasis": {
2063
2363
  "key": "{bgColor.upsell.emphasis}",
@@ -2069,6 +2369,10 @@
2069
2369
  "codeSyntax": {
2070
2370
  "web": "var(--bgColor-upsell-emphasis)"
2071
2371
  }
2372
+ },
2373
+ "org.primer.llm": {
2374
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2375
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2072
2376
  }
2073
2377
  },
2074
2378
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2076,6 +2380,7 @@
2076
2380
  "original": {
2077
2381
  "$value": "{bgColor.done.emphasis}",
2078
2382
  "$type": "color",
2383
+ "$description": "Strong background for prominent upsell elements",
2079
2384
  "$extensions": {
2080
2385
  "org.primer.figma": {
2081
2386
  "collection": "mode",
@@ -2084,6 +2389,10 @@
2084
2389
  "codeSyntax": {
2085
2390
  "web": "var(--bgColor-upsell-emphasis)"
2086
2391
  }
2392
+ },
2393
+ "org.primer.llm": {
2394
+ "usage": ["upgrade-button", "premium-badge", "upsell-cta"],
2395
+ "rules": "Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text."
2087
2396
  }
2088
2397
  },
2089
2398
  "key": "{bgColor.upsell.emphasis}"
@@ -2092,7 +2401,8 @@
2092
2401
  "attributes": {},
2093
2402
  "path": ["bgColor", "upsell", "emphasis"],
2094
2403
  "value": "#8256d0",
2095
- "type": "color"
2404
+ "type": "color",
2405
+ "description": "Strong background for prominent upsell elements"
2096
2406
  },
2097
2407
  "bgColor-upsell-muted": {
2098
2408
  "key": "{bgColor.upsell.muted}",
@@ -2104,6 +2414,10 @@
2104
2414
  "codeSyntax": {
2105
2415
  "web": "var(--bgColor-upsell-muted)"
2106
2416
  }
2417
+ },
2418
+ "org.primer.llm": {
2419
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2420
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2107
2421
  }
2108
2422
  },
2109
2423
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2111,6 +2425,7 @@
2111
2425
  "original": {
2112
2426
  "$value": "{bgColor.done.muted}",
2113
2427
  "$type": "color",
2428
+ "$description": "Subtle background for upsell and promotional content",
2114
2429
  "$extensions": {
2115
2430
  "org.primer.figma": {
2116
2431
  "collection": "mode",
@@ -2119,6 +2434,10 @@
2119
2434
  "codeSyntax": {
2120
2435
  "web": "var(--bgColor-upsell-muted)"
2121
2436
  }
2437
+ },
2438
+ "org.primer.llm": {
2439
+ "usage": ["upgrade-prompt", "premium-feature", "promotional-banner"],
2440
+ "rules": "Use for upgrade prompts and premium feature highlights. Do NOT use for regular content."
2122
2441
  }
2123
2442
  },
2124
2443
  "key": "{bgColor.upsell.muted}"
@@ -2127,7 +2446,8 @@
2127
2446
  "attributes": {},
2128
2447
  "path": ["bgColor", "upsell", "muted"],
2129
2448
  "value": "#986ee226",
2130
- "type": "color"
2449
+ "type": "color",
2450
+ "description": "Subtle background for upsell and promotional content"
2131
2451
  },
2132
2452
  "bgColor-white": {
2133
2453
  "key": "{bgColor.white}",
@@ -2139,6 +2459,10 @@
2139
2459
  },
2140
2460
  "org.primer.overrides": {
2141
2461
  "dark": "#cdd9e5"
2462
+ },
2463
+ "org.primer.llm": {
2464
+ "doNotUse": true,
2465
+ "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."
2142
2466
  }
2143
2467
  },
2144
2468
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2146,6 +2470,7 @@
2146
2470
  "original": {
2147
2471
  "$value": "{base.color.neutral.13}",
2148
2472
  "$type": "color",
2473
+ "$description": "Pure white background",
2149
2474
  "$extensions": {
2150
2475
  "org.primer.figma": {
2151
2476
  "collection": "mode",
@@ -2154,6 +2479,10 @@
2154
2479
  },
2155
2480
  "org.primer.overrides": {
2156
2481
  "dark": "{base.color.neutral.13}"
2482
+ },
2483
+ "org.primer.llm": {
2484
+ "doNotUse": true,
2485
+ "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."
2157
2486
  }
2158
2487
  },
2159
2488
  "key": "{bgColor.white}"
@@ -2162,7 +2491,8 @@
2162
2491
  "attributes": {},
2163
2492
  "path": ["bgColor", "white"],
2164
2493
  "value": "#cdd9e5",
2165
- "type": "color"
2494
+ "type": "color",
2495
+ "description": "Pure white background"
2166
2496
  },
2167
2497
  "border-accent-emphasis": {
2168
2498
  "key": "{border.accent.emphasis}",
@@ -2674,6 +3004,10 @@
2674
3004
  },
2675
3005
  "org.primer.overrides": {
2676
3006
  "dark-dimmed-high-contrast": "#6cb6ff"
3007
+ },
3008
+ "org.primer.llm": {
3009
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3010
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2677
3011
  }
2678
3012
  },
2679
3013
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2681,6 +3015,7 @@
2681
3015
  "original": {
2682
3016
  "$value": "{base.color.blue.5}",
2683
3017
  "$type": "color",
3018
+ "$description": "Strong accent border for selected or focused elements",
2684
3019
  "$extensions": {
2685
3020
  "org.primer.figma": {
2686
3021
  "collection": "mode",
@@ -2692,6 +3027,10 @@
2692
3027
  },
2693
3028
  "org.primer.overrides": {
2694
3029
  "dark-dimmed-high-contrast": "{base.color.blue.2}"
3030
+ },
3031
+ "org.primer.llm": {
3032
+ "usage": ["accent-emphasis", "selected-border", "focus-border"],
3033
+ "rules": "Use for selected elements and focus states. Strong visual emphasis."
2695
3034
  }
2696
3035
  },
2697
3036
  "key": "{borderColor.accent.emphasis}"
@@ -2700,7 +3039,8 @@
2700
3039
  "attributes": {},
2701
3040
  "path": ["borderColor", "accent", "emphasis"],
2702
3041
  "value": "#316dca",
2703
- "type": "color"
3042
+ "type": "color",
3043
+ "description": "Strong accent border for selected or focused elements"
2704
3044
  },
2705
3045
  "borderColor-accent-muted": {
2706
3046
  "key": "{borderColor.accent.muted}",
@@ -2764,6 +3104,10 @@
2764
3104
  "isSource": true,
2765
3105
  "$type": "color"
2766
3106
  }
3107
+ },
3108
+ "org.primer.llm": {
3109
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3110
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2767
3111
  }
2768
3112
  },
2769
3113
  "alpha": 0.4,
@@ -2772,6 +3116,7 @@
2772
3116
  "original": {
2773
3117
  "$value": "{base.color.blue.4}",
2774
3118
  "$type": "color",
3119
+ "$description": "Subtle accent border for selected or focused elements",
2775
3120
  "$extensions": {
2776
3121
  "org.primer.figma": {
2777
3122
  "collection": "mode",
@@ -2832,6 +3177,10 @@
2832
3177
  "isSource": true,
2833
3178
  "$type": "color"
2834
3179
  }
3180
+ },
3181
+ "org.primer.llm": {
3182
+ "usage": ["accent-muted", "selected-muted", "info-muted"],
3183
+ "rules": "Use for accent-colored borders on selected elements. Pair with bgColor.accent.muted."
2835
3184
  }
2836
3185
  },
2837
3186
  "alpha": 0.4,
@@ -2841,7 +3190,8 @@
2841
3190
  "attributes": {},
2842
3191
  "path": ["borderColor", "accent", "muted"],
2843
3192
  "value": "#4184e466",
2844
- "type": "color"
3193
+ "type": "color",
3194
+ "description": "Subtle accent border for selected or focused elements"
2845
3195
  },
2846
3196
  "borderColor-attention-emphasis": {
2847
3197
  "key": "{borderColor.attention.emphasis}",
@@ -2856,6 +3206,10 @@
2856
3206
  },
2857
3207
  "org.primer.overrides": {
2858
3208
  "dark-dimmed-high-contrast": "#daaa3f"
3209
+ },
3210
+ "org.primer.llm": {
3211
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3212
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2859
3213
  }
2860
3214
  },
2861
3215
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -2863,6 +3217,7 @@
2863
3217
  "original": {
2864
3218
  "$value": "{base.color.yellow.5}",
2865
3219
  "$type": "color",
3220
+ "$description": "Strong attention border for prominent warnings",
2866
3221
  "$extensions": {
2867
3222
  "org.primer.figma": {
2868
3223
  "collection": "mode",
@@ -2874,6 +3229,10 @@
2874
3229
  },
2875
3230
  "org.primer.overrides": {
2876
3231
  "dark-dimmed-high-contrast": "{base.color.yellow.2}"
3232
+ },
3233
+ "org.primer.llm": {
3234
+ "usage": ["attention-emphasis", "warning-emphasis", "caution-emphasis"],
3235
+ "rules": "Use for emphasized warning borders. Pair with bgColor.attention.emphasis."
2877
3236
  }
2878
3237
  },
2879
3238
  "key": "{borderColor.attention.emphasis}"
@@ -2882,7 +3241,8 @@
2882
3241
  "attributes": {},
2883
3242
  "path": ["borderColor", "attention", "emphasis"],
2884
3243
  "value": "#966600",
2885
- "type": "color"
3244
+ "type": "color",
3245
+ "description": "Strong attention border for prominent warnings"
2886
3246
  },
2887
3247
  "borderColor-attention-muted": {
2888
3248
  "key": "{borderColor.attention.muted}",
@@ -2946,6 +3306,10 @@
2946
3306
  "isSource": true,
2947
3307
  "$type": "color"
2948
3308
  }
3309
+ },
3310
+ "org.primer.llm": {
3311
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3312
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
2949
3313
  }
2950
3314
  },
2951
3315
  "alpha": 0.4,
@@ -2954,6 +3318,7 @@
2954
3318
  "original": {
2955
3319
  "$value": "{base.color.yellow.4}",
2956
3320
  "$type": "color",
3321
+ "$description": "Subtle attention border for warnings and caution states",
2957
3322
  "$extensions": {
2958
3323
  "org.primer.figma": {
2959
3324
  "collection": "mode",
@@ -3014,6 +3379,10 @@
3014
3379
  "isSource": true,
3015
3380
  "$type": "color"
3016
3381
  }
3382
+ },
3383
+ "org.primer.llm": {
3384
+ "usage": ["attention-muted", "warning-muted", "caution-muted"],
3385
+ "rules": "Use for warning state borders. Pair with bgColor.attention.muted."
3017
3386
  }
3018
3387
  },
3019
3388
  "alpha": 0.4,
@@ -3023,7 +3392,8 @@
3023
3392
  "attributes": {},
3024
3393
  "path": ["borderColor", "attention", "muted"],
3025
3394
  "value": "#ae7c1466",
3026
- "type": "color"
3395
+ "type": "color",
3396
+ "description": "Subtle attention border for warnings and caution states"
3027
3397
  },
3028
3398
  "borderColor-closed-emphasis": {
3029
3399
  "key": "{borderColor.closed.emphasis}",
@@ -3045,6 +3415,10 @@
3045
3415
  "dark-tritanopia-high-contrast": "#656c76",
3046
3416
  "light-tritanopia": "#656c76",
3047
3417
  "light-tritanopia-high-contrast": "#656c76"
3418
+ },
3419
+ "org.primer.llm": {
3420
+ "usage": ["closed-emphasis", "closed-status"],
3421
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3048
3422
  }
3049
3423
  },
3050
3424
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3052,6 +3426,7 @@
3052
3426
  "original": {
3053
3427
  "$value": "{borderColor.danger.emphasis}",
3054
3428
  "$type": "color",
3429
+ "$description": "Strong border for closed state badges",
3055
3430
  "$extensions": {
3056
3431
  "org.primer.figma": {
3057
3432
  "collection": "mode",
@@ -3070,6 +3445,10 @@
3070
3445
  "dark-tritanopia-high-contrast": "{borderColor.emphasis}",
3071
3446
  "light-tritanopia": "{borderColor.emphasis}",
3072
3447
  "light-tritanopia-high-contrast": "{borderColor.emphasis}"
3448
+ },
3449
+ "org.primer.llm": {
3450
+ "usage": ["closed-emphasis", "closed-status"],
3451
+ "rules": "Use for emphasized closed state borders. Pair with bgColor.closed.emphasis."
3073
3452
  }
3074
3453
  },
3075
3454
  "key": "{borderColor.closed.emphasis}"
@@ -3078,7 +3457,8 @@
3078
3457
  "attributes": {},
3079
3458
  "path": ["borderColor", "closed", "emphasis"],
3080
3459
  "value": "#c93c37",
3081
- "type": "color"
3460
+ "type": "color",
3461
+ "description": "Strong border for closed state badges"
3082
3462
  },
3083
3463
  "borderColor-closed-muted": {
3084
3464
  "key": "{borderColor.closed.muted}",
@@ -3148,6 +3528,10 @@
3148
3528
  "isSource": true,
3149
3529
  "$type": "color"
3150
3530
  }
3531
+ },
3532
+ "org.primer.llm": {
3533
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3534
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3151
3535
  }
3152
3536
  },
3153
3537
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3155,6 +3539,7 @@
3155
3539
  "original": {
3156
3540
  "$value": "{borderColor.danger.muted}",
3157
3541
  "$type": "color",
3542
+ "$description": "Subtle border for closed state indicators",
3158
3543
  "$extensions": {
3159
3544
  "org.primer.figma": {
3160
3545
  "collection": "mode",
@@ -3221,6 +3606,10 @@
3221
3606
  "isSource": true,
3222
3607
  "$type": "color"
3223
3608
  }
3609
+ },
3610
+ "org.primer.llm": {
3611
+ "usage": ["closed-muted", "closed-issue", "closed-pr"],
3612
+ "rules": "Use for closed/declined status borders. Specifically for GitHub issues and PRs."
3224
3613
  }
3225
3614
  },
3226
3615
  "key": "{borderColor.closed.muted}"
@@ -3229,7 +3618,8 @@
3229
3618
  "attributes": {},
3230
3619
  "path": ["borderColor", "closed", "muted"],
3231
3620
  "value": "#e5534b66",
3232
- "type": "color"
3621
+ "type": "color",
3622
+ "description": "Subtle border for closed state indicators"
3233
3623
  },
3234
3624
  "borderColor-danger-emphasis": {
3235
3625
  "key": "{borderColor.danger.emphasis}",
@@ -3268,6 +3658,10 @@
3268
3658
  "$type": "color"
3269
3659
  },
3270
3660
  "dark-dimmed-high-contrast": "#ff938a"
3661
+ },
3662
+ "org.primer.llm": {
3663
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3664
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3271
3665
  }
3272
3666
  },
3273
3667
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3275,6 +3669,7 @@
3275
3669
  "original": {
3276
3670
  "$value": "{base.color.red.5}",
3277
3671
  "$type": "color",
3672
+ "$description": "Strong danger border for destructive actions and errors",
3278
3673
  "$extensions": {
3279
3674
  "org.primer.figma": {
3280
3675
  "collection": "mode",
@@ -3310,6 +3705,10 @@
3310
3705
  "$type": "color"
3311
3706
  },
3312
3707
  "dark-dimmed-high-contrast": "{base.color.red.2}"
3708
+ },
3709
+ "org.primer.llm": {
3710
+ "usage": ["danger-emphasis", "error-emphasis", "destructive-emphasis"],
3711
+ "rules": "MUST use for destructive action borders. Pair with bgColor.danger.emphasis."
3313
3712
  }
3314
3713
  },
3315
3714
  "key": "{borderColor.danger.emphasis}"
@@ -3318,7 +3717,8 @@
3318
3717
  "attributes": {},
3319
3718
  "path": ["borderColor", "danger", "emphasis"],
3320
3719
  "value": "#c93c37",
3321
- "type": "color"
3720
+ "type": "color",
3721
+ "description": "Strong danger border for destructive actions and errors"
3322
3722
  },
3323
3723
  "borderColor-danger-muted": {
3324
3724
  "key": "{borderColor.danger.muted}",
@@ -3395,6 +3795,10 @@
3395
3795
  "isSource": true,
3396
3796
  "$type": "color"
3397
3797
  }
3798
+ },
3799
+ "org.primer.llm": {
3800
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3801
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3398
3802
  }
3399
3803
  },
3400
3804
  "alpha": 0.4,
@@ -3403,6 +3807,7 @@
3403
3807
  "original": {
3404
3808
  "$value": "{base.color.red.4}",
3405
3809
  "$type": "color",
3810
+ "$description": "Subtle danger border for errors and destructive contexts",
3406
3811
  "$extensions": {
3407
3812
  "org.primer.figma": {
3408
3813
  "collection": "mode",
@@ -3476,6 +3881,10 @@
3476
3881
  "isSource": true,
3477
3882
  "$type": "color"
3478
3883
  }
3884
+ },
3885
+ "org.primer.llm": {
3886
+ "usage": ["danger-muted", "error-muted", "destructive-muted"],
3887
+ "rules": "Use for error state borders. Pair with bgColor.danger.muted."
3479
3888
  }
3480
3889
  },
3481
3890
  "alpha": 0.4,
@@ -3485,7 +3894,8 @@
3485
3894
  "attributes": {},
3486
3895
  "path": ["borderColor", "danger", "muted"],
3487
3896
  "value": "#e5534b66",
3488
- "type": "color"
3897
+ "type": "color",
3898
+ "description": "Subtle danger border for errors and destructive contexts"
3489
3899
  },
3490
3900
  "borderColor-default": {
3491
3901
  "key": "{borderColor.default}",
@@ -3508,6 +3918,10 @@
3508
3918
  "codeSyntax": {
3509
3919
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3510
3920
  }
3921
+ },
3922
+ "org.primer.llm": {
3923
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3924
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3511
3925
  }
3512
3926
  },
3513
3927
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3515,6 +3929,7 @@
3515
3929
  "original": {
3516
3930
  "$value": "{base.color.neutral.7}",
3517
3931
  "$type": "color",
3932
+ "$description": "Default border color for most UI elements",
3518
3933
  "$extensions": {
3519
3934
  "org.primer.overrides": {
3520
3935
  "dark": "{base.color.neutral.7}",
@@ -3534,6 +3949,10 @@
3534
3949
  "codeSyntax": {
3535
3950
  "web": "var(--borderColor-default) /* utility class: .color-border-default */"
3536
3951
  }
3952
+ },
3953
+ "org.primer.llm": {
3954
+ "usage": ["default-border", "card-border", "input-border", "divider"],
3955
+ "rules": "RECOMMENDED default for all borders. Use for cards, inputs, and dividers."
3537
3956
  }
3538
3957
  },
3539
3958
  "key": "{borderColor.default}"
@@ -3542,7 +3961,8 @@
3542
3961
  "attributes": {},
3543
3962
  "path": ["borderColor", "default"],
3544
3963
  "value": "#3d444d",
3545
- "type": "color"
3964
+ "type": "color",
3965
+ "description": "Default border color for most UI elements"
3546
3966
  },
3547
3967
  "borderColor-disabled": {
3548
3968
  "key": "{borderColor.disabled}",
@@ -3588,6 +4008,10 @@
3588
4008
  "isSource": true,
3589
4009
  "$type": "color"
3590
4010
  }
4011
+ },
4012
+ "org.primer.llm": {
4013
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4014
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3591
4015
  }
3592
4016
  },
3593
4017
  "alpha": 0.1,
@@ -3596,6 +4020,7 @@
3596
4020
  "original": {
3597
4021
  "$value": "{base.color.neutral.8}",
3598
4022
  "$type": "color",
4023
+ "$description": "Border color for disabled interactive elements",
3599
4024
  "$extensions": {
3600
4025
  "org.primer.figma": {
3601
4026
  "collection": "mode",
@@ -3638,6 +4063,10 @@
3638
4063
  "isSource": true,
3639
4064
  "$type": "color"
3640
4065
  }
4066
+ },
4067
+ "org.primer.llm": {
4068
+ "usage": ["disabled-border", "inactive-border", "unavailable"],
4069
+ "rules": "MUST use for disabled state borders. Pair with bgColor.disabled. Do NOT use for active elements."
3641
4070
  }
3642
4071
  },
3643
4072
  "alpha": 0.1,
@@ -3647,7 +4076,8 @@
3647
4076
  "attributes": {},
3648
4077
  "path": ["borderColor", "disabled"],
3649
4078
  "value": "#656c761a",
3650
- "type": "color"
4079
+ "type": "color",
4080
+ "description": "Border color for disabled interactive elements"
3651
4081
  },
3652
4082
  "borderColor-done-emphasis": {
3653
4083
  "key": "{borderColor.done.emphasis}",
@@ -3662,6 +4092,10 @@
3662
4092
  },
3663
4093
  "org.primer.overrides": {
3664
4094
  "dark-dimmed-high-contrast": "#dcbdfb"
4095
+ },
4096
+ "org.primer.llm": {
4097
+ "usage": ["done-emphasis", "merged-status"],
4098
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3665
4099
  }
3666
4100
  },
3667
4101
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3669,6 +4103,7 @@
3669
4103
  "original": {
3670
4104
  "$value": "{base.color.purple.5}",
3671
4105
  "$type": "color",
4106
+ "$description": "Strong border for completed/done state badges",
3672
4107
  "$extensions": {
3673
4108
  "org.primer.figma": {
3674
4109
  "collection": "mode",
@@ -3680,6 +4115,10 @@
3680
4115
  },
3681
4116
  "org.primer.overrides": {
3682
4117
  "dark-dimmed-high-contrast": "{base.color.purple.2}"
4118
+ },
4119
+ "org.primer.llm": {
4120
+ "usage": ["done-emphasis", "merged-status"],
4121
+ "rules": "Use for emphasized done state borders. Pair with bgColor.done.emphasis."
3683
4122
  }
3684
4123
  },
3685
4124
  "key": "{borderColor.done.emphasis}"
@@ -3688,7 +4127,8 @@
3688
4127
  "attributes": {},
3689
4128
  "path": ["borderColor", "done", "emphasis"],
3690
4129
  "value": "#8256d0",
3691
- "type": "color"
4130
+ "type": "color",
4131
+ "description": "Strong border for completed/done state badges"
3692
4132
  },
3693
4133
  "borderColor-done-muted": {
3694
4134
  "key": "{borderColor.done.muted}",
@@ -3752,6 +4192,10 @@
3752
4192
  "isSource": true,
3753
4193
  "$type": "color"
3754
4194
  }
4195
+ },
4196
+ "org.primer.llm": {
4197
+ "usage": ["done-muted", "merged", "completed"],
4198
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3755
4199
  }
3756
4200
  },
3757
4201
  "alpha": 0.4,
@@ -3760,6 +4204,7 @@
3760
4204
  "original": {
3761
4205
  "$value": "{base.color.purple.4}",
3762
4206
  "$type": "color",
4207
+ "$description": "Subtle border for completed/done state indicators",
3763
4208
  "$extensions": {
3764
4209
  "org.primer.figma": {
3765
4210
  "collection": "mode",
@@ -3820,6 +4265,10 @@
3820
4265
  "isSource": true,
3821
4266
  "$type": "color"
3822
4267
  }
4268
+ },
4269
+ "org.primer.llm": {
4270
+ "usage": ["done-muted", "merged", "completed"],
4271
+ "rules": "Use for completed/done status borders. Conveys finished or merged state."
3823
4272
  }
3824
4273
  },
3825
4274
  "alpha": 0.4,
@@ -3829,7 +4278,8 @@
3829
4278
  "attributes": {},
3830
4279
  "path": ["borderColor", "done", "muted"],
3831
4280
  "value": "#986ee266",
3832
- "type": "color"
4281
+ "type": "color",
4282
+ "description": "Subtle border for completed/done state indicators"
3833
4283
  },
3834
4284
  "borderColor-draft-emphasis": {
3835
4285
  "key": "{borderColor.draft.emphasis}",
@@ -3841,6 +4291,10 @@
3841
4291
  "codeSyntax": {
3842
4292
  "web": "var(--borderColor-draft-emphasis)"
3843
4293
  }
4294
+ },
4295
+ "org.primer.llm": {
4296
+ "usage": ["draft-emphasis", "draft-status"],
4297
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3844
4298
  }
3845
4299
  },
3846
4300
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3848,6 +4302,7 @@
3848
4302
  "original": {
3849
4303
  "$value": "{borderColor.neutral.emphasis}",
3850
4304
  "$type": "color",
4305
+ "$description": "Strong border for draft state badges",
3851
4306
  "$extensions": {
3852
4307
  "org.primer.figma": {
3853
4308
  "collection": "mode",
@@ -3856,6 +4311,10 @@
3856
4311
  "codeSyntax": {
3857
4312
  "web": "var(--borderColor-draft-emphasis)"
3858
4313
  }
4314
+ },
4315
+ "org.primer.llm": {
4316
+ "usage": ["draft-emphasis", "draft-status"],
4317
+ "rules": "Use for emphasized draft state borders. Pair with bgColor.draft.emphasis."
3859
4318
  }
3860
4319
  },
3861
4320
  "key": "{borderColor.draft.emphasis}"
@@ -3864,7 +4323,8 @@
3864
4323
  "attributes": {},
3865
4324
  "path": ["borderColor", "draft", "emphasis"],
3866
4325
  "value": "#656c76",
3867
- "type": "color"
4326
+ "type": "color",
4327
+ "description": "Strong border for draft state badges"
3868
4328
  },
3869
4329
  "borderColor-draft-muted": {
3870
4330
  "key": "{borderColor.draft.muted}",
@@ -3934,6 +4394,10 @@
3934
4394
  "isSource": true,
3935
4395
  "$type": "color"
3936
4396
  }
4397
+ },
4398
+ "org.primer.llm": {
4399
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4400
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
3937
4401
  }
3938
4402
  },
3939
4403
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -3941,6 +4405,7 @@
3941
4405
  "original": {
3942
4406
  "$value": "{borderColor.neutral.muted}",
3943
4407
  "$type": "color",
4408
+ "$description": "Subtle border for draft state indicators",
3944
4409
  "$extensions": {
3945
4410
  "org.primer.figma": {
3946
4411
  "collection": "mode",
@@ -4007,6 +4472,10 @@
4007
4472
  "isSource": true,
4008
4473
  "$type": "color"
4009
4474
  }
4475
+ },
4476
+ "org.primer.llm": {
4477
+ "usage": ["draft-muted", "draft-pr", "draft-issue"],
4478
+ "rules": "Use for draft/WIP status borders. Conveys incomplete or pending state."
4010
4479
  }
4011
4480
  },
4012
4481
  "key": "{borderColor.draft.muted}"
@@ -4015,7 +4484,8 @@
4015
4484
  "attributes": {},
4016
4485
  "path": ["borderColor", "draft", "muted"],
4017
4486
  "value": "#3d444db3",
4018
- "type": "color"
4487
+ "type": "color",
4488
+ "description": "Subtle border for draft state indicators"
4019
4489
  },
4020
4490
  "borderColor-emphasis": {
4021
4491
  "key": "{borderColor.emphasis}",
@@ -4033,6 +4503,10 @@
4033
4503
  "dark-dimmed-high-contrast": "#3d444d",
4034
4504
  "dark-tritanopia-high-contrast": "#3d444d",
4035
4505
  "dark-protanopia-deuteranopia-high-contrast": "#3d444d"
4506
+ },
4507
+ "org.primer.llm": {
4508
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4509
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4036
4510
  }
4037
4511
  },
4038
4512
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4040,6 +4514,7 @@
4040
4514
  "original": {
4041
4515
  "$value": "{base.color.neutral.8}",
4042
4516
  "$type": "color",
4517
+ "$description": "Strong border for emphasis and visual weight",
4043
4518
  "$extensions": {
4044
4519
  "org.primer.figma": {
4045
4520
  "collection": "mode",
@@ -4054,6 +4529,10 @@
4054
4529
  "dark-dimmed-high-contrast": "{borderColor.default}",
4055
4530
  "dark-tritanopia-high-contrast": "{borderColor.default}",
4056
4531
  "dark-protanopia-deuteranopia-high-contrast": "{borderColor.default}"
4532
+ },
4533
+ "org.primer.llm": {
4534
+ "usage": ["emphasis-border", "strong-border", "selected-border"],
4535
+ "rules": "Use for borders needing more visual weight. Darker than borderColor.default."
4057
4536
  }
4058
4537
  },
4059
4538
  "key": "{borderColor.emphasis}"
@@ -4062,7 +4541,8 @@
4062
4541
  "attributes": {},
4063
4542
  "path": ["borderColor", "emphasis"],
4064
4543
  "value": "#656c76",
4065
- "type": "color"
4544
+ "type": "color",
4545
+ "description": "Strong border for emphasis and visual weight"
4066
4546
  },
4067
4547
  "borderColor-muted": {
4068
4548
  "key": "{borderColor.muted}",
@@ -4132,6 +4612,10 @@
4132
4612
  "isSource": true,
4133
4613
  "$type": "color"
4134
4614
  }
4615
+ },
4616
+ "org.primer.llm": {
4617
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4618
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4135
4619
  }
4136
4620
  },
4137
4621
  "alpha": 0.7,
@@ -4140,6 +4624,7 @@
4140
4624
  "original": {
4141
4625
  "$value": "{base.color.neutral.7}",
4142
4626
  "$type": "color",
4627
+ "$description": "Subtle border for secondary elements and light separators",
4143
4628
  "$extensions": {
4144
4629
  "org.primer.figma": {
4145
4630
  "collection": "mode",
@@ -4206,6 +4691,10 @@
4206
4691
  "isSource": true,
4207
4692
  "$type": "color"
4208
4693
  }
4694
+ },
4695
+ "org.primer.llm": {
4696
+ "usage": ["subtle-border", "light-divider", "secondary-border"],
4697
+ "rules": "Use for subtle borders and separators. Less prominent than borderColor.default."
4209
4698
  }
4210
4699
  },
4211
4700
  "alpha": 0.7,
@@ -4215,7 +4704,8 @@
4215
4704
  "attributes": {},
4216
4705
  "path": ["borderColor", "muted"],
4217
4706
  "value": "#3d444db3",
4218
- "type": "color"
4707
+ "type": "color",
4708
+ "description": "Subtle border for secondary elements and light separators"
4219
4709
  },
4220
4710
  "borderColor-neutral-emphasis": {
4221
4711
  "key": "{borderColor.neutral.emphasis}",
@@ -4227,6 +4717,10 @@
4227
4717
  },
4228
4718
  "org.primer.overrides": {
4229
4719
  "dark": "#656c76"
4720
+ },
4721
+ "org.primer.llm": {
4722
+ "usage": ["neutral-emphasis", "neutral-strong"],
4723
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4230
4724
  }
4231
4725
  },
4232
4726
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4234,6 +4728,7 @@
4234
4728
  "original": {
4235
4729
  "$value": "{borderColor.emphasis}",
4236
4730
  "$type": "color",
4731
+ "$description": "Strong neutral semantic border",
4237
4732
  "$extensions": {
4238
4733
  "org.primer.figma": {
4239
4734
  "collection": "mode",
@@ -4242,6 +4737,10 @@
4242
4737
  },
4243
4738
  "org.primer.overrides": {
4244
4739
  "dark": "{borderColor.emphasis}"
4740
+ },
4741
+ "org.primer.llm": {
4742
+ "usage": ["neutral-emphasis", "neutral-strong"],
4743
+ "rules": "Use for emphasized neutral semantic borders. Stronger than neutral.muted."
4245
4744
  }
4246
4745
  },
4247
4746
  "key": "{borderColor.neutral.emphasis}"
@@ -4250,7 +4749,8 @@
4250
4749
  "attributes": {},
4251
4750
  "path": ["borderColor", "neutral", "emphasis"],
4252
4751
  "value": "#656c76",
4253
- "type": "color"
4752
+ "type": "color",
4753
+ "description": "Strong neutral semantic border"
4254
4754
  },
4255
4755
  "borderColor-neutral-muted": {
4256
4756
  "key": "{borderColor.neutral.muted}",
@@ -4275,6 +4775,10 @@
4275
4775
  "isSource": true,
4276
4776
  "$type": "color"
4277
4777
  }
4778
+ },
4779
+ "org.primer.llm": {
4780
+ "usage": ["neutral-muted", "neutral-secondary"],
4781
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4278
4782
  }
4279
4783
  },
4280
4784
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4283,6 +4787,7 @@
4283
4787
  "original": {
4284
4788
  "$value": "{base.color.neutral.7}",
4285
4789
  "$type": "color",
4790
+ "$description": "Subtle neutral semantic border",
4286
4791
  "$extensions": {
4287
4792
  "org.primer.figma": {
4288
4793
  "collection": "mode",
@@ -4304,6 +4809,10 @@
4304
4809
  "isSource": true,
4305
4810
  "$type": "color"
4306
4811
  }
4812
+ },
4813
+ "org.primer.llm": {
4814
+ "usage": ["neutral-muted", "neutral-secondary"],
4815
+ "rules": "Use for neutral semantic borders on tags and badges. Prefer borderColor.muted for general use."
4307
4816
  }
4308
4817
  },
4309
4818
  "alpha": 0.7,
@@ -4313,7 +4822,8 @@
4313
4822
  "attributes": {},
4314
4823
  "path": ["borderColor", "neutral", "muted"],
4315
4824
  "value": "#3d444db3",
4316
- "type": "color"
4825
+ "type": "color",
4826
+ "description": "Subtle neutral semantic border"
4317
4827
  },
4318
4828
  "borderColor-open-emphasis": {
4319
4829
  "key": "{borderColor.open.emphasis}",
@@ -4335,6 +4845,10 @@
4335
4845
  "dark-protanopia-deuteranopia-high-contrast": "#ae5622",
4336
4846
  "light-protanopia-deuteranopia": "#ae5622",
4337
4847
  "light-protanopia-deuteranopia-high-contrast": "#ae5622"
4848
+ },
4849
+ "org.primer.llm": {
4850
+ "usage": ["open-emphasis", "open-status"],
4851
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4338
4852
  }
4339
4853
  },
4340
4854
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4342,6 +4856,7 @@
4342
4856
  "original": {
4343
4857
  "$value": "{borderColor.success.emphasis}",
4344
4858
  "$type": "color",
4859
+ "$description": "Strong border for open state badges",
4345
4860
  "$extensions": {
4346
4861
  "org.primer.figma": {
4347
4862
  "collection": "mode",
@@ -4360,6 +4875,10 @@
4360
4875
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}",
4361
4876
  "light-protanopia-deuteranopia": "{base.color.orange.5}",
4362
4877
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.5}"
4878
+ },
4879
+ "org.primer.llm": {
4880
+ "usage": ["open-emphasis", "open-status"],
4881
+ "rules": "Use for emphasized open state borders. Pair with bgColor.open.emphasis."
4363
4882
  }
4364
4883
  },
4365
4884
  "key": "{borderColor.open.emphasis}"
@@ -4368,7 +4887,8 @@
4368
4887
  "attributes": {},
4369
4888
  "path": ["borderColor", "open", "emphasis"],
4370
4889
  "value": "#347d39",
4371
- "type": "color"
4890
+ "type": "color",
4891
+ "description": "Strong border for open state badges"
4372
4892
  },
4373
4893
  "borderColor-open-muted": {
4374
4894
  "key": "{borderColor.open.muted}",
@@ -4438,6 +4958,10 @@
4438
4958
  "isSource": true,
4439
4959
  "$type": "color"
4440
4960
  }
4961
+ },
4962
+ "org.primer.llm": {
4963
+ "usage": ["open-muted", "open-issue", "open-pr"],
4964
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4441
4965
  }
4442
4966
  },
4443
4967
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4445,6 +4969,7 @@
4445
4969
  "original": {
4446
4970
  "$value": "{borderColor.success.muted}",
4447
4971
  "$type": "color",
4972
+ "$description": "Subtle border for open state indicators",
4448
4973
  "$extensions": {
4449
4974
  "org.primer.figma": {
4450
4975
  "collection": "mode",
@@ -4511,6 +5036,10 @@
4511
5036
  "isSource": true,
4512
5037
  "$type": "color"
4513
5038
  }
5039
+ },
5040
+ "org.primer.llm": {
5041
+ "usage": ["open-muted", "open-issue", "open-pr"],
5042
+ "rules": "Use for open/active status borders. Specifically for GitHub issues and PRs."
4514
5043
  }
4515
5044
  },
4516
5045
  "key": "{borderColor.open.muted}"
@@ -4519,7 +5048,8 @@
4519
5048
  "attributes": {},
4520
5049
  "path": ["borderColor", "open", "muted"],
4521
5050
  "value": "#46954a66",
4522
- "type": "color"
5051
+ "type": "color",
5052
+ "description": "Subtle border for open state indicators"
4523
5053
  },
4524
5054
  "borderColor-severe-emphasis": {
4525
5055
  "key": "{borderColor.severe.emphasis}",
@@ -4537,6 +5067,10 @@
4537
5067
  "light-tritanopia": "#c93c37",
4538
5068
  "light-tritanopia-high-contrast": "#c93c37",
4539
5069
  "dark-dimmed-high-contrast": "#f69d50"
5070
+ },
5071
+ "org.primer.llm": {
5072
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5073
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4540
5074
  }
4541
5075
  },
4542
5076
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4544,6 +5078,7 @@
4544
5078
  "original": {
4545
5079
  "$value": "{base.color.orange.5}",
4546
5080
  "$type": "color",
5081
+ "$description": "Strong severe border for prominent high-priority warnings",
4547
5082
  "$extensions": {
4548
5083
  "org.primer.figma": {
4549
5084
  "collection": "mode",
@@ -4558,6 +5093,10 @@
4558
5093
  "light-tritanopia": "{base.color.red.5}",
4559
5094
  "light-tritanopia-high-contrast": "{base.color.red.5}",
4560
5095
  "dark-dimmed-high-contrast": "{base.color.orange.2}"
5096
+ },
5097
+ "org.primer.llm": {
5098
+ "usage": ["severe-emphasis", "urgent-emphasis"],
5099
+ "rules": "Use for emphasized severe borders. Pair with bgColor.severe.emphasis."
4561
5100
  }
4562
5101
  },
4563
5102
  "key": "{borderColor.severe.emphasis}"
@@ -4566,7 +5105,8 @@
4566
5105
  "attributes": {},
4567
5106
  "path": ["borderColor", "severe", "emphasis"],
4568
5107
  "value": "#ae5622",
4569
- "type": "color"
5108
+ "type": "color",
5109
+ "description": "Strong severe border for prominent high-priority warnings"
4570
5110
  },
4571
5111
  "borderColor-severe-muted": {
4572
5112
  "key": "{borderColor.severe.muted}",
@@ -4625,6 +5165,10 @@
4625
5165
  "isSource": true,
4626
5166
  "$type": "color"
4627
5167
  }
5168
+ },
5169
+ "org.primer.llm": {
5170
+ "usage": ["severe-muted", "urgent-muted"],
5171
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4628
5172
  }
4629
5173
  },
4630
5174
  "alpha": 0.4,
@@ -4633,6 +5177,7 @@
4633
5177
  "original": {
4634
5178
  "$value": "{base.color.orange.4}",
4635
5179
  "$type": "color",
5180
+ "$description": "Subtle severe border for high-priority warnings",
4636
5181
  "$extensions": {
4637
5182
  "org.primer.figma": {
4638
5183
  "collection": "mode",
@@ -4688,6 +5233,10 @@
4688
5233
  "isSource": true,
4689
5234
  "$type": "color"
4690
5235
  }
5236
+ },
5237
+ "org.primer.llm": {
5238
+ "usage": ["severe-muted", "urgent-muted"],
5239
+ "rules": "Use for severe warning borders. More critical than attention, less than danger."
4691
5240
  }
4692
5241
  },
4693
5242
  "alpha": 0.4,
@@ -4697,7 +5246,8 @@
4697
5246
  "attributes": {},
4698
5247
  "path": ["borderColor", "severe", "muted"],
4699
5248
  "value": "#cc6b2c66",
4700
- "type": "color"
5249
+ "type": "color",
5250
+ "description": "Subtle severe border for high-priority warnings"
4701
5251
  },
4702
5252
  "borderColor-sponsors-emphasis": {
4703
5253
  "key": "{borderColor.sponsors.emphasis}",
@@ -4712,6 +5262,10 @@
4712
5262
  },
4713
5263
  "org.primer.overrides": {
4714
5264
  "dark-dimmed-high-contrast": "#e275ad"
5265
+ },
5266
+ "org.primer.llm": {
5267
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5268
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4715
5269
  }
4716
5270
  },
4717
5271
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4719,6 +5273,7 @@
4719
5273
  "original": {
4720
5274
  "$value": "{base.color.pink.5}",
4721
5275
  "$type": "color",
5276
+ "$description": "Strong border for prominent GitHub Sponsors elements",
4722
5277
  "$extensions": {
4723
5278
  "org.primer.figma": {
4724
5279
  "collection": "mode",
@@ -4730,6 +5285,10 @@
4730
5285
  },
4731
5286
  "org.primer.overrides": {
4732
5287
  "dark-dimmed-high-contrast": "{base.color.pink.3}"
5288
+ },
5289
+ "org.primer.llm": {
5290
+ "usage": ["sponsors-emphasis", "funding-emphasis"],
5291
+ "rules": "Use for emphasized Sponsors borders. Pair with bgColor.sponsors.emphasis."
4733
5292
  }
4734
5293
  },
4735
5294
  "key": "{borderColor.sponsors.emphasis}"
@@ -4738,7 +5297,8 @@
4738
5297
  "attributes": {},
4739
5298
  "path": ["borderColor", "sponsors", "emphasis"],
4740
5299
  "value": "#ae4c82",
4741
- "type": "color"
5300
+ "type": "color",
5301
+ "description": "Strong border for prominent GitHub Sponsors elements"
4742
5302
  },
4743
5303
  "borderColor-sponsors-muted": {
4744
5304
  "key": "{borderColor.sponsors.muted}",
@@ -4802,6 +5362,10 @@
4802
5362
  "isSource": true,
4803
5363
  "$type": "color"
4804
5364
  }
5365
+ },
5366
+ "org.primer.llm": {
5367
+ "usage": ["sponsors-muted", "funding-muted"],
5368
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4805
5369
  }
4806
5370
  },
4807
5371
  "alpha": 0.4,
@@ -4810,6 +5374,7 @@
4810
5374
  "original": {
4811
5375
  "$value": "{base.color.pink.4}",
4812
5376
  "$type": "color",
5377
+ "$description": "Subtle border for GitHub Sponsors content",
4813
5378
  "$extensions": {
4814
5379
  "org.primer.figma": {
4815
5380
  "collection": "mode",
@@ -4870,6 +5435,10 @@
4870
5435
  "isSource": true,
4871
5436
  "$type": "color"
4872
5437
  }
5438
+ },
5439
+ "org.primer.llm": {
5440
+ "usage": ["sponsors-muted", "funding-muted"],
5441
+ "rules": "Use for GitHub Sponsors related borders. Do NOT use for general pink-colored elements."
4873
5442
  }
4874
5443
  },
4875
5444
  "alpha": 0.4,
@@ -4879,7 +5448,8 @@
4879
5448
  "attributes": {},
4880
5449
  "path": ["borderColor", "sponsors", "muted"],
4881
5450
  "value": "#c9619866",
4882
- "type": "color"
5451
+ "type": "color",
5452
+ "description": "Subtle border for GitHub Sponsors content"
4883
5453
  },
4884
5454
  "borderColor-success-emphasis": {
4885
5455
  "key": "{borderColor.success.emphasis}",
@@ -4902,6 +5472,10 @@
4902
5472
  "light-protanopia-deuteranopia": "#316dca",
4903
5473
  "light-protanopia-deuteranopia-high-contrast": "#316dca",
4904
5474
  "dark-dimmed-high-contrast": "#6bc46d"
5475
+ },
5476
+ "org.primer.llm": {
5477
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5478
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4905
5479
  }
4906
5480
  },
4907
5481
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -4909,6 +5483,7 @@
4909
5483
  "original": {
4910
5484
  "$value": "{base.color.green.5}",
4911
5485
  "$type": "color",
5486
+ "$description": "Strong success border for prominent positive elements",
4912
5487
  "$extensions": {
4913
5488
  "org.primer.figma": {
4914
5489
  "collection": "mode",
@@ -4928,6 +5503,10 @@
4928
5503
  "light-protanopia-deuteranopia": "{base.color.blue.5}",
4929
5504
  "light-protanopia-deuteranopia-high-contrast": "{base.color.blue.5}",
4930
5505
  "dark-dimmed-high-contrast": "{base.color.green.2}"
5506
+ },
5507
+ "org.primer.llm": {
5508
+ "usage": ["success-emphasis", "confirmed", "positive-emphasis"],
5509
+ "rules": "Use for emphasized success borders. Pair with bgColor.success.emphasis."
4931
5510
  }
4932
5511
  },
4933
5512
  "key": "{borderColor.success.emphasis}"
@@ -4936,7 +5515,8 @@
4936
5515
  "attributes": {},
4937
5516
  "path": ["borderColor", "success", "emphasis"],
4938
5517
  "value": "#347d39",
4939
- "type": "color"
5518
+ "type": "color",
5519
+ "description": "Strong success border for prominent positive elements"
4940
5520
  },
4941
5521
  "borderColor-success-muted": {
4942
5522
  "key": "{borderColor.success.muted}",
@@ -5027,6 +5607,10 @@
5027
5607
  "isSource": true,
5028
5608
  "$type": "color"
5029
5609
  }
5610
+ },
5611
+ "org.primer.llm": {
5612
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5613
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5030
5614
  }
5031
5615
  },
5032
5616
  "alpha": 0.4,
@@ -5035,6 +5619,7 @@
5035
5619
  "original": {
5036
5620
  "$value": "{base.color.green.4}",
5037
5621
  "$type": "color",
5622
+ "$description": "Subtle success border for positive feedback elements",
5038
5623
  "$extensions": {
5039
5624
  "org.primer.figma": {
5040
5625
  "collection": "mode",
@@ -5122,6 +5707,10 @@
5122
5707
  "isSource": true,
5123
5708
  "$type": "color"
5124
5709
  }
5710
+ },
5711
+ "org.primer.llm": {
5712
+ "usage": ["success-muted", "valid-muted", "positive-muted"],
5713
+ "rules": "Use for success state borders. Pair with bgColor.success.muted."
5125
5714
  }
5126
5715
  },
5127
5716
  "alpha": 0.4,
@@ -5131,7 +5720,8 @@
5131
5720
  "attributes": {},
5132
5721
  "path": ["borderColor", "success", "muted"],
5133
5722
  "value": "#46954a66",
5134
- "type": "color"
5723
+ "type": "color",
5724
+ "description": "Subtle success border for positive feedback elements"
5135
5725
  },
5136
5726
  "borderColor-translucent": {
5137
5727
  "key": "{borderColor.translucent}",
@@ -5191,6 +5781,10 @@
5191
5781
  "isSource": true,
5192
5782
  "$type": "color"
5193
5783
  }
5784
+ },
5785
+ "org.primer.llm": {
5786
+ "usage": ["overlay-border", "translucent-border"],
5787
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5194
5788
  }
5195
5789
  },
5196
5790
  "alpha": 0.15,
@@ -5199,6 +5793,7 @@
5199
5793
  "original": {
5200
5794
  "$value": "{base.color.neutral.13}",
5201
5795
  "$type": "color",
5796
+ "$description": "Semi-transparent border for overlays and layered elements",
5202
5797
  "$extensions": {
5203
5798
  "org.primer.figma": {
5204
5799
  "collection": "mode",
@@ -5255,6 +5850,10 @@
5255
5850
  "isSource": true,
5256
5851
  "$type": "color"
5257
5852
  }
5853
+ },
5854
+ "org.primer.llm": {
5855
+ "usage": ["overlay-border", "translucent-border"],
5856
+ "rules": "Use for semi-transparent borders on overlays. Works well with translucent backgrounds."
5258
5857
  }
5259
5858
  },
5260
5859
  "alpha": 0.15,
@@ -5264,7 +5863,8 @@
5264
5863
  "attributes": {},
5265
5864
  "path": ["borderColor", "translucent"],
5266
5865
  "value": "#cdd9e526",
5267
- "type": "color"
5866
+ "type": "color",
5867
+ "description": "Semi-transparent border for overlays and layered elements"
5268
5868
  },
5269
5869
  "borderColor-transparent": {
5270
5870
  "key": "{borderColor.transparent}",
@@ -5280,6 +5880,7 @@
5280
5880
  "original": {
5281
5881
  "$value": "{base.color.transparent}",
5282
5882
  "$type": "color",
5883
+ "$description": "Fully transparent border",
5283
5884
  "$extensions": {
5284
5885
  "org.primer.figma": {
5285
5886
  "collection": "mode",
@@ -5293,7 +5894,8 @@
5293
5894
  "attributes": {},
5294
5895
  "path": ["borderColor", "transparent"],
5295
5896
  "value": "#00000000",
5296
- "type": "color"
5897
+ "type": "color",
5898
+ "description": "Fully transparent border"
5297
5899
  },
5298
5900
  "borderColor-upsell-emphasis": {
5299
5901
  "key": "{borderColor.upsell.emphasis}",
@@ -5305,6 +5907,10 @@
5305
5907
  "codeSyntax": {
5306
5908
  "web": "var(--borderColor-upsell-emphasis)"
5307
5909
  }
5910
+ },
5911
+ "org.primer.llm": {
5912
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5913
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5308
5914
  }
5309
5915
  },
5310
5916
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5312,6 +5918,7 @@
5312
5918
  "original": {
5313
5919
  "$value": "{borderColor.done.emphasis}",
5314
5920
  "$type": "color",
5921
+ "$description": "Strong border for prominent upsell elements",
5315
5922
  "$extensions": {
5316
5923
  "org.primer.figma": {
5317
5924
  "collection": "mode",
@@ -5320,6 +5927,10 @@
5320
5927
  "codeSyntax": {
5321
5928
  "web": "var(--borderColor-upsell-emphasis)"
5322
5929
  }
5930
+ },
5931
+ "org.primer.llm": {
5932
+ "usage": ["upsell-emphasis", "premium-emphasis"],
5933
+ "rules": "Use for emphasized upsell borders. Pair with bgColor.upsell.emphasis."
5323
5934
  }
5324
5935
  },
5325
5936
  "key": "{borderColor.upsell.emphasis}"
@@ -5328,7 +5939,8 @@
5328
5939
  "attributes": {},
5329
5940
  "path": ["borderColor", "upsell", "emphasis"],
5330
5941
  "value": "#8256d0",
5331
- "type": "color"
5942
+ "type": "color",
5943
+ "description": "Strong border for prominent upsell elements"
5332
5944
  },
5333
5945
  "borderColor-upsell-muted": {
5334
5946
  "key": "{borderColor.upsell.muted}",
@@ -5340,6 +5952,10 @@
5340
5952
  "codeSyntax": {
5341
5953
  "web": "var(--borderColor-upsell-muted)"
5342
5954
  }
5955
+ },
5956
+ "org.primer.llm": {
5957
+ "usage": ["upsell-muted", "premium-muted"],
5958
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5343
5959
  }
5344
5960
  },
5345
5961
  "filePath": "src/tokens/functional/color/borderColor.json5",
@@ -5347,6 +5963,7 @@
5347
5963
  "original": {
5348
5964
  "$value": "{borderColor.done.muted}",
5349
5965
  "$type": "color",
5966
+ "$description": "Subtle border for upsell and promotional content",
5350
5967
  "$extensions": {
5351
5968
  "org.primer.figma": {
5352
5969
  "collection": "mode",
@@ -5355,6 +5972,10 @@
5355
5972
  "codeSyntax": {
5356
5973
  "web": "var(--borderColor-upsell-muted)"
5357
5974
  }
5975
+ },
5976
+ "org.primer.llm": {
5977
+ "usage": ["upsell-muted", "premium-muted"],
5978
+ "rules": "Use for upgrade prompts and premium feature borders. Do NOT use for regular content."
5358
5979
  }
5359
5980
  },
5360
5981
  "key": "{borderColor.upsell.muted}"
@@ -5363,7 +5984,8 @@
5363
5984
  "attributes": {},
5364
5985
  "path": ["borderColor", "upsell", "muted"],
5365
5986
  "value": "#986ee266",
5366
- "type": "color"
5987
+ "type": "color",
5988
+ "description": "Subtle border for upsell and promotional content"
5367
5989
  },
5368
5990
  "button-danger-bgColor-active": {
5369
5991
  "key": "{button.danger.bgColor.active}",
@@ -6766,7 +7388,7 @@
6766
7388
  },
6767
7389
  "org.primer.overrides": {
6768
7390
  "dark": {
6769
- "$value": "#d1d7e0",
7391
+ "$value": "#f0f6fc",
6770
7392
  "filePath": "src/tokens/component/button.json5",
6771
7393
  "isSource": true,
6772
7394
  "$type": "color"
@@ -6798,7 +7420,7 @@
6798
7420
  "name": "button-default-fgColor-rest",
6799
7421
  "attributes": {},
6800
7422
  "path": ["button", "default", "fgColor", "rest"],
6801
- "value": "#d1d7e0",
7423
+ "value": "#f0f6fc",
6802
7424
  "type": "color"
6803
7425
  },
6804
7426
  "button-default-shadow-resting": {
@@ -7493,7 +8115,7 @@
7493
8115
  },
7494
8116
  "org.primer.overrides": {
7495
8117
  "dark": {
7496
- "$value": "#d1d7e0",
8118
+ "$value": "#f0f6fc",
7497
8119
  "filePath": "src/tokens/component/button.json5",
7498
8120
  "isSource": true,
7499
8121
  "$type": "color"
@@ -7525,7 +8147,7 @@
7525
8147
  "name": "button-invisible-fgColor-active",
7526
8148
  "attributes": {},
7527
8149
  "path": ["button", "invisible", "fgColor", "active"],
7528
- "value": "#d1d7e0",
8150
+ "value": "#f0f6fc",
7529
8151
  "type": "color"
7530
8152
  },
7531
8153
  "button-invisible-fgColor-disabled": {
@@ -7583,7 +8205,7 @@
7583
8205
  },
7584
8206
  "org.primer.overrides": {
7585
8207
  "dark": {
7586
- "$value": "#d1d7e0",
8208
+ "$value": "#f0f6fc",
7587
8209
  "filePath": "src/tokens/component/button.json5",
7588
8210
  "isSource": true,
7589
8211
  "$type": "color"
@@ -7651,7 +8273,7 @@
7651
8273
  "name": "button-invisible-fgColor-hover",
7652
8274
  "attributes": {},
7653
8275
  "path": ["button", "invisible", "fgColor", "hover"],
7654
- "value": "#d1d7e0",
8276
+ "value": "#f0f6fc",
7655
8277
  "type": "color"
7656
8278
  },
7657
8279
  "button-invisible-fgColor-rest": {
@@ -7664,7 +8286,7 @@
7664
8286
  },
7665
8287
  "org.primer.overrides": {
7666
8288
  "dark": {
7667
- "$value": "#d1d7e0",
8289
+ "$value": "#f0f6fc",
7668
8290
  "filePath": "src/tokens/component/button.json5",
7669
8291
  "isSource": true,
7670
8292
  "$type": "color"
@@ -7696,7 +8318,7 @@
7696
8318
  "name": "button-invisible-fgColor-rest",
7697
8319
  "attributes": {},
7698
8320
  "path": ["button", "invisible", "fgColor", "rest"],
7699
- "value": "#d1d7e0",
8321
+ "value": "#f0f6fc",
7700
8322
  "type": "color"
7701
8323
  },
7702
8324
  "button-invisible-iconColor-disabled": {
@@ -12330,7 +12952,7 @@
12330
12952
  "scopes": ["fgColor"]
12331
12953
  },
12332
12954
  "org.primer.overrides": {
12333
- "dark": "#d1d7e0"
12955
+ "dark": "#f0f6fc"
12334
12956
  }
12335
12957
  },
12336
12958
  "filePath": "src/tokens/component/codeMirror.json5",
@@ -12353,7 +12975,7 @@
12353
12975
  "name": "codeMirror-cursor-fgColor",
12354
12976
  "attributes": {},
12355
12977
  "path": ["codeMirror", "cursor", "fgColor"],
12356
- "value": "#d1d7e0",
12978
+ "value": "#f0f6fc",
12357
12979
  "type": "color"
12358
12980
  },
12359
12981
  "codeMirror-fgColor": {
@@ -12365,7 +12987,7 @@
12365
12987
  "scopes": ["fgColor"]
12366
12988
  },
12367
12989
  "org.primer.overrides": {
12368
- "dark": "#d1d7e0"
12990
+ "dark": "#f0f6fc"
12369
12991
  }
12370
12992
  },
12371
12993
  "filePath": "src/tokens/component/codeMirror.json5",
@@ -12388,7 +13010,7 @@
12388
13010
  "name": "codeMirror-fgColor",
12389
13011
  "attributes": {},
12390
13012
  "path": ["codeMirror", "fgColor"],
12391
- "value": "#d1d7e0",
13013
+ "value": "#f0f6fc",
12392
13014
  "type": "color"
12393
13015
  },
12394
13016
  "codeMirror-gutterMarker-fgColor-default": {
@@ -12575,7 +13197,7 @@
12575
13197
  "scopes": ["fgColor"]
12576
13198
  },
12577
13199
  "org.primer.overrides": {
12578
- "dark": "#d1d7e0"
13200
+ "dark": "#f0f6fc"
12579
13201
  }
12580
13202
  },
12581
13203
  "filePath": "src/tokens/component/codeMirror.json5",
@@ -12598,7 +13220,7 @@
12598
13220
  "name": "codeMirror-matchingBracket-fgColor",
12599
13221
  "attributes": {},
12600
13222
  "path": ["codeMirror", "matchingBracket", "fgColor"],
12601
- "value": "#d1d7e0",
13223
+ "value": "#f0f6fc",
12602
13224
  "type": "color"
12603
13225
  },
12604
13226
  "codeMirror-selection-bgColor": {
@@ -17562,7 +18184,7 @@
17562
18184
  "scopes": ["fgColor"]
17563
18185
  },
17564
18186
  "org.primer.overrides": {
17565
- "dark": "#d1d7e0"
18187
+ "dark": "#f0f6fc"
17566
18188
  }
17567
18189
  },
17568
18190
  "filePath": "src/tokens/functional/color/control.json5",
@@ -17585,7 +18207,7 @@
17585
18207
  "name": "control-fgColor-rest",
17586
18208
  "attributes": {},
17587
18209
  "path": ["control", "fgColor", "rest"],
17588
- "value": "#d1d7e0",
18210
+ "value": "#f0f6fc",
17589
18211
  "type": "color"
17590
18212
  },
17591
18213
  "control-iconColor-rest": {
@@ -19325,19 +19947,19 @@
19325
19947
  "org.primer.overrides": {
19326
19948
  "dark": "#9198a1",
19327
19949
  "dark-high-contrast": {
19328
- "$value": "#d1d7e0",
19950
+ "$value": "#f0f6fc",
19329
19951
  "filePath": "src/tokens/functional/color/control.json5",
19330
19952
  "isSource": true,
19331
19953
  "$type": "color"
19332
19954
  },
19333
19955
  "dark-tritanopia-high-contrast": {
19334
- "$value": "#d1d7e0",
19956
+ "$value": "#f0f6fc",
19335
19957
  "filePath": "src/tokens/functional/color/control.json5",
19336
19958
  "isSource": true,
19337
19959
  "$type": "color"
19338
19960
  },
19339
19961
  "dark-protanopia-deuteranopia-high-contrast": {
19340
- "$value": "#d1d7e0",
19962
+ "$value": "#f0f6fc",
19341
19963
  "filePath": "src/tokens/functional/color/control.json5",
19342
19964
  "isSource": true,
19343
19965
  "$type": "color"
@@ -20904,7 +21526,7 @@
20904
21526
  "name": "diffBlob-additionLine-fgColor",
20905
21527
  "attributes": {},
20906
21528
  "path": ["diffBlob", "additionLine", "fgColor"],
20907
- "value": "#d1d7e0",
21529
+ "value": "#f0f6fc",
20908
21530
  "type": "color"
20909
21531
  },
20910
21532
  "diffBlob-additionNum-bgColor": {
@@ -21046,7 +21668,7 @@
21046
21668
  "name": "diffBlob-additionNum-fgColor",
21047
21669
  "attributes": {},
21048
21670
  "path": ["diffBlob", "additionNum", "fgColor"],
21049
- "value": "#d1d7e0",
21671
+ "value": "#f0f6fc",
21050
21672
  "type": "color"
21051
21673
  },
21052
21674
  "diffBlob-additionWord-bgColor": {
@@ -21178,7 +21800,7 @@
21178
21800
  "name": "diffBlob-additionWord-fgColor",
21179
21801
  "attributes": {},
21180
21802
  "path": ["diffBlob", "additionWord", "fgColor"],
21181
- "value": "#d1d7e0",
21803
+ "value": "#f0f6fc",
21182
21804
  "type": "color"
21183
21805
  },
21184
21806
  "diffBlob-deletionLine-bgColor": {
@@ -21306,7 +21928,7 @@
21306
21928
  "name": "diffBlob-deletionLine-fgColor",
21307
21929
  "attributes": {},
21308
21930
  "path": ["diffBlob", "deletionLine", "fgColor"],
21309
- "value": "#d1d7e0",
21931
+ "value": "#f0f6fc",
21310
21932
  "type": "color"
21311
21933
  },
21312
21934
  "diffBlob-deletionNum-bgColor": {
@@ -21416,7 +22038,7 @@
21416
22038
  "name": "diffBlob-deletionNum-fgColor",
21417
22039
  "attributes": {},
21418
22040
  "path": ["diffBlob", "deletionNum", "fgColor"],
21419
- "value": "#d1d7e0",
22041
+ "value": "#f0f6fc",
21420
22042
  "type": "color"
21421
22043
  },
21422
22044
  "diffBlob-deletionWord-bgColor": {
@@ -21546,7 +22168,7 @@
21546
22168
  "name": "diffBlob-deletionWord-fgColor",
21547
22169
  "attributes": {},
21548
22170
  "path": ["diffBlob", "deletionWord", "fgColor"],
21549
- "value": "#d1d7e0",
22171
+ "value": "#f0f6fc",
21550
22172
  "type": "color"
21551
22173
  },
21552
22174
  "diffBlob-emptyLine-bgColor": {
@@ -21616,12 +22238,12 @@
21616
22238
  "scopes": ["fgColor"]
21617
22239
  },
21618
22240
  "org.primer.overrides": {
21619
- "light-high-contrast": "#d1d7e0",
21620
- "light-tritanopia-high-contrast": "#d1d7e0",
21621
- "light-protanopia-deuteranopia-high-contrast": "#d1d7e0",
21622
- "dark-high-contrast": "#d1d7e0",
21623
- "dark-tritanopia-high-contrast": "#d1d7e0",
21624
- "dark-protanopia-deuteranopia-high-contrast": "#d1d7e0"
22241
+ "light-high-contrast": "#f0f6fc",
22242
+ "light-tritanopia-high-contrast": "#f0f6fc",
22243
+ "light-protanopia-deuteranopia-high-contrast": "#f0f6fc",
22244
+ "dark-high-contrast": "#f0f6fc",
22245
+ "dark-tritanopia-high-contrast": "#f0f6fc",
22246
+ "dark-protanopia-deuteranopia-high-contrast": "#f0f6fc"
21625
22247
  }
21626
22248
  },
21627
22249
  "filePath": "src/tokens/component/diffBlob.json5",
@@ -21867,10 +22489,10 @@
21867
22489
  "scopes": ["fgColor"]
21868
22490
  },
21869
22491
  "org.primer.overrides": {
21870
- "light-protanopia-deuteranopia": "#d1d7e0",
21871
- "light-tritanopia": "#d1d7e0",
21872
- "light-protanopia-deuteranopia-high-contrast": "#d1d7e0",
21873
- "light-tritanopia-high-contrast": "#d1d7e0"
22492
+ "light-protanopia-deuteranopia": "#f0f6fc",
22493
+ "light-tritanopia": "#f0f6fc",
22494
+ "light-protanopia-deuteranopia-high-contrast": "#f0f6fc",
22495
+ "light-tritanopia-high-contrast": "#f0f6fc"
21874
22496
  }
21875
22497
  },
21876
22498
  "filePath": "src/tokens/component/diffBlob.json5",
@@ -21925,7 +22547,7 @@
21925
22547
  "name": "diffBlob-hunkNum-fgColor-rest",
21926
22548
  "attributes": {},
21927
22549
  "path": ["diffBlob", "hunkNum", "fgColor", "rest"],
21928
- "value": "#d1d7e0",
22550
+ "value": "#f0f6fc",
21929
22551
  "type": "color"
21930
22552
  },
21931
22553
  "display-auburn-bgColor-emphasis": {
@@ -36522,6 +37144,10 @@
36522
37144
  "light-high-contrast": "#255ab2",
36523
37145
  "light-tritanopia-high-contrast": "#255ab2",
36524
37146
  "light-protanopia-deuteranopia-high-contrast": "#255ab2"
37147
+ },
37148
+ "org.primer.llm": {
37149
+ "usage": ["accent-text", "info-text", "accent-icon"],
37150
+ "rules": "Use for accent-colored text and icons. Pair with bgColor.accent.muted for backgrounds."
36525
37151
  }
36526
37152
  },
36527
37153
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36529,6 +37155,7 @@
36529
37155
  "original": {
36530
37156
  "$value": "#478be6",
36531
37157
  "$type": "color",
37158
+ "$description": "Accent text for links and interactive elements",
36532
37159
  "$extensions": {
36533
37160
  "org.primer.figma": {
36534
37161
  "collection": "mode",
@@ -36548,6 +37175,10 @@
36548
37175
  "light-high-contrast": "{base.color.blue.6}",
36549
37176
  "light-tritanopia-high-contrast": "{base.color.blue.6}",
36550
37177
  "light-protanopia-deuteranopia-high-contrast": "{base.color.blue.6}"
37178
+ },
37179
+ "org.primer.llm": {
37180
+ "usage": ["accent-text", "info-text", "accent-icon"],
37181
+ "rules": "Use for accent-colored text and icons. Pair with bgColor.accent.muted for backgrounds."
36551
37182
  }
36552
37183
  },
36553
37184
  "key": "{fgColor.accent}"
@@ -36556,7 +37187,8 @@
36556
37187
  "attributes": {},
36557
37188
  "path": ["fgColor", "accent"],
36558
37189
  "value": "#478be6",
36559
- "type": "color"
37190
+ "type": "color",
37191
+ "description": "Accent text for links and interactive elements"
36560
37192
  },
36561
37193
  "fgColor-attention": {
36562
37194
  "key": "{fgColor.attention}",
@@ -36575,6 +37207,10 @@
36575
37207
  "light-protanopia-deuteranopia-high-contrast": "#805400",
36576
37208
  "light-tritanopia-high-contrast": "#805400",
36577
37209
  "dark-dimmed-high-contrast": "#eac55f"
37210
+ },
37211
+ "org.primer.llm": {
37212
+ "usage": ["attention-text", "warning-text", "caution-text"],
37213
+ "rules": "Use for warning and caution text. Pair with bgColor.attention.muted for backgrounds."
36578
37214
  }
36579
37215
  },
36580
37216
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36582,6 +37218,7 @@
36582
37218
  "original": {
36583
37219
  "$value": "{base.color.yellow.3}",
36584
37220
  "$type": "color",
37221
+ "$description": "Attention text for warnings and caution states",
36585
37222
  "$extensions": {
36586
37223
  "org.primer.figma": {
36587
37224
  "collection": "mode",
@@ -36597,6 +37234,10 @@
36597
37234
  "light-protanopia-deuteranopia-high-contrast": "{base.color.yellow.6}",
36598
37235
  "light-tritanopia-high-contrast": "{base.color.yellow.6}",
36599
37236
  "dark-dimmed-high-contrast": "{base.color.yellow.1}"
37237
+ },
37238
+ "org.primer.llm": {
37239
+ "usage": ["attention-text", "warning-text", "caution-text"],
37240
+ "rules": "Use for warning and caution text. Pair with bgColor.attention.muted for backgrounds."
36600
37241
  }
36601
37242
  },
36602
37243
  "key": "{fgColor.attention}"
@@ -36605,7 +37246,8 @@
36605
37246
  "attributes": {},
36606
37247
  "path": ["fgColor", "attention"],
36607
37248
  "value": "#c69026",
36608
- "type": "color"
37249
+ "type": "color",
37250
+ "description": "Attention text for warnings and caution states"
36609
37251
  },
36610
37252
  "fgColor-black": {
36611
37253
  "key": "{fgColor.black}",
@@ -36617,6 +37259,10 @@
36617
37259
  },
36618
37260
  "org.primer.overrides": {
36619
37261
  "dark": "#010409"
37262
+ },
37263
+ "org.primer.llm": {
37264
+ "doNotUse": true,
37265
+ "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."
36620
37266
  }
36621
37267
  },
36622
37268
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36624,6 +37270,7 @@
36624
37270
  "original": {
36625
37271
  "$value": "{base.color.neutral.0}",
36626
37272
  "$type": "color",
37273
+ "$description": "Pure black text",
36627
37274
  "$extensions": {
36628
37275
  "org.primer.figma": {
36629
37276
  "collection": "mode",
@@ -36632,6 +37279,10 @@
36632
37279
  },
36633
37280
  "org.primer.overrides": {
36634
37281
  "dark": "{base.color.neutral.0}"
37282
+ },
37283
+ "org.primer.llm": {
37284
+ "doNotUse": true,
37285
+ "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."
36635
37286
  }
36636
37287
  },
36637
37288
  "key": "{fgColor.black}"
@@ -36640,7 +37291,8 @@
36640
37291
  "attributes": {},
36641
37292
  "path": ["fgColor", "black"],
36642
37293
  "value": "#010409",
36643
- "type": "color"
37294
+ "type": "color",
37295
+ "description": "Pure black text"
36644
37296
  },
36645
37297
  "fgColor-closed": {
36646
37298
  "key": "{fgColor.closed}",
@@ -36662,6 +37314,10 @@
36662
37314
  "dark-tritanopia-high-contrast": "#9198a1",
36663
37315
  "light-tritanopia": "#9198a1",
36664
37316
  "light-tritanopia-high-contrast": "#9198a1"
37317
+ },
37318
+ "org.primer.llm": {
37319
+ "usage": ["closed-text", "closed-issue", "closed-pr"],
37320
+ "rules": "Use for closed/declined status text. Specifically for GitHub issues and PRs."
36665
37321
  }
36666
37322
  },
36667
37323
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36669,6 +37325,7 @@
36669
37325
  "original": {
36670
37326
  "$value": "{fgColor.danger}",
36671
37327
  "$type": "color",
37328
+ "$description": "Text color for closed state indicators (issues, PRs)",
36672
37329
  "$extensions": {
36673
37330
  "org.primer.figma": {
36674
37331
  "collection": "mode",
@@ -36687,6 +37344,10 @@
36687
37344
  "dark-tritanopia-high-contrast": "{fgColor.muted}",
36688
37345
  "light-tritanopia": "{fgColor.muted}",
36689
37346
  "light-tritanopia-high-contrast": "{fgColor.muted}"
37347
+ },
37348
+ "org.primer.llm": {
37349
+ "usage": ["closed-text", "closed-issue", "closed-pr"],
37350
+ "rules": "Use for closed/declined status text. Specifically for GitHub issues and PRs."
36690
37351
  }
36691
37352
  },
36692
37353
  "key": "{fgColor.closed}"
@@ -36695,7 +37356,8 @@
36695
37356
  "attributes": {},
36696
37357
  "path": ["fgColor", "closed"],
36697
37358
  "value": "#e5534b",
36698
- "type": "color"
37359
+ "type": "color",
37360
+ "description": "Text color for closed state indicators (issues, PRs)"
36699
37361
  },
36700
37362
  "fgColor-danger": {
36701
37363
  "key": "{fgColor.danger}",
@@ -36719,6 +37381,10 @@
36719
37381
  "dark-tritanopia-high-contrast": "#f47067",
36720
37382
  "light-high-contrast": "#ad2e2c",
36721
37383
  "light-tritanopia-high-contrast": "#ad2e2c"
37384
+ },
37385
+ "org.primer.llm": {
37386
+ "usage": ["danger-text", "error-text", "destructive-text"],
37387
+ "rules": "Use for error messages and destructive action text. Pair with bgColor.danger.muted for backgrounds."
36722
37388
  }
36723
37389
  },
36724
37390
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36726,6 +37392,7 @@
36726
37392
  "original": {
36727
37393
  "$value": "{base.color.red.4}",
36728
37394
  "$type": "color",
37395
+ "$description": "Danger text for errors and destructive actions",
36729
37396
  "$extensions": {
36730
37397
  "org.primer.figma": {
36731
37398
  "collection": "mode",
@@ -36746,6 +37413,10 @@
36746
37413
  "dark-tritanopia-high-contrast": "{base.color.red.3}",
36747
37414
  "light-high-contrast": "{base.color.red.6}",
36748
37415
  "light-tritanopia-high-contrast": "{base.color.red.6}"
37416
+ },
37417
+ "org.primer.llm": {
37418
+ "usage": ["danger-text", "error-text", "destructive-text"],
37419
+ "rules": "Use for error messages and destructive action text. Pair with bgColor.danger.muted for backgrounds."
36749
37420
  }
36750
37421
  },
36751
37422
  "key": "{fgColor.danger}"
@@ -36754,7 +37425,8 @@
36754
37425
  "attributes": {},
36755
37426
  "path": ["fgColor", "danger"],
36756
37427
  "value": "#e5534b",
36757
- "type": "color"
37428
+ "type": "color",
37429
+ "description": "Danger text for errors and destructive actions"
36758
37430
  },
36759
37431
  "fgColor-default": {
36760
37432
  "key": "{fgColor.default}",
@@ -36772,15 +37444,20 @@
36772
37444
  "dark-high-contrast": "#cdd9e5",
36773
37445
  "dark-tritanopia-high-contrast": "#cdd9e5",
36774
37446
  "dark-protanopia-deuteranopia-high-contrast": "#cdd9e5",
36775
- "dark-dimmed": "#d1d7e0",
37447
+ "dark-dimmed": "#f0f6fc",
36776
37448
  "dark-dimmed-high-contrast": "#f0f6fc"
37449
+ },
37450
+ "org.primer.llm": {
37451
+ "usage": ["default-text", "heading", "body-text"],
37452
+ "rules": "RECOMMENDED default for all text. Use for headings, body text, and primary labels."
36777
37453
  }
36778
37454
  },
36779
37455
  "filePath": "src/tokens/functional/color/fgColor.json5",
36780
37456
  "isSource": true,
36781
37457
  "original": {
36782
- "$value": "{base.color.neutral.11}",
37458
+ "$value": "{base.color.neutral.12}",
36783
37459
  "$type": "color",
37460
+ "$description": "Default text color for primary content and headings",
36784
37461
  "$extensions": {
36785
37462
  "org.primer.figma": {
36786
37463
  "collection": "mode",
@@ -36795,8 +37472,12 @@
36795
37472
  "dark-high-contrast": "{base.color.neutral.13}",
36796
37473
  "dark-tritanopia-high-contrast": "{base.color.neutral.13}",
36797
37474
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.13}",
36798
- "dark-dimmed": "{base.color.neutral.11}",
37475
+ "dark-dimmed": "{base.color.neutral.12}",
36799
37476
  "dark-dimmed-high-contrast": "{base.color.neutral.12}"
37477
+ },
37478
+ "org.primer.llm": {
37479
+ "usage": ["default-text", "heading", "body-text"],
37480
+ "rules": "RECOMMENDED default for all text. Use for headings, body text, and primary labels."
36800
37481
  }
36801
37482
  },
36802
37483
  "key": "{fgColor.default}"
@@ -36804,8 +37485,9 @@
36804
37485
  "name": "fgColor-default",
36805
37486
  "attributes": {},
36806
37487
  "path": ["fgColor", "default"],
36807
- "value": "#d1d7e0",
36808
- "type": "color"
37488
+ "value": "#f0f6fc",
37489
+ "type": "color",
37490
+ "description": "Default text color for primary content and headings"
36809
37491
  },
36810
37492
  "fgColor-disabled": {
36811
37493
  "key": "{fgColor.disabled}",
@@ -36830,6 +37512,10 @@
36830
37512
  "dark-high-contrast": "#656c76",
36831
37513
  "dark-tritanopia-high-contrast": "#656c76",
36832
37514
  "dark-protanopia-deuteranopia-high-contrast": "#656c76"
37515
+ },
37516
+ "org.primer.llm": {
37517
+ "usage": ["disabled-text", "inactive-text", "unavailable"],
37518
+ "rules": "MUST use for disabled state text. Pair with bgColor.disabled. Do NOT use for active elements."
36833
37519
  }
36834
37520
  },
36835
37521
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36837,6 +37523,7 @@
36837
37523
  "original": {
36838
37524
  "$value": "{base.color.neutral.8}",
36839
37525
  "$type": "color",
37526
+ "$description": "Text color for disabled interactive elements",
36840
37527
  "$extensions": {
36841
37528
  "org.primer.figma": {
36842
37529
  "collection": "mode",
@@ -36858,6 +37545,10 @@
36858
37545
  "dark-high-contrast": "{base.color.neutral.8}",
36859
37546
  "dark-tritanopia-high-contrast": "{base.color.neutral.8}",
36860
37547
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.8}"
37548
+ },
37549
+ "org.primer.llm": {
37550
+ "usage": ["disabled-text", "inactive-text", "unavailable"],
37551
+ "rules": "MUST use for disabled state text. Pair with bgColor.disabled. Do NOT use for active elements."
36861
37552
  }
36862
37553
  },
36863
37554
  "key": "{fgColor.disabled}"
@@ -36866,7 +37557,8 @@
36866
37557
  "attributes": {},
36867
37558
  "path": ["fgColor", "disabled"],
36868
37559
  "value": "#656c76",
36869
- "type": "color"
37560
+ "type": "color",
37561
+ "description": "Text color for disabled interactive elements"
36870
37562
  },
36871
37563
  "fgColor-done": {
36872
37564
  "key": "{fgColor.done}",
@@ -36888,6 +37580,10 @@
36888
37580
  "light-high-contrast": "#6b44bc",
36889
37581
  "light-protanopia-deuteranopia-high-contrast": "#6b44bc",
36890
37582
  "light-tritanopia-high-contrast": "#6b44bc"
37583
+ },
37584
+ "org.primer.llm": {
37585
+ "usage": ["done-text", "merged", "completed"],
37586
+ "rules": "Use for completed/done status text. Conveys finished or merged state."
36891
37587
  }
36892
37588
  },
36893
37589
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36895,6 +37591,7 @@
36895
37591
  "original": {
36896
37592
  "$value": "{base.color.purple.4}",
36897
37593
  "$type": "color",
37594
+ "$description": "Text color for completed/done state indicators",
36898
37595
  "$extensions": {
36899
37596
  "org.primer.figma": {
36900
37597
  "collection": "mode",
@@ -36913,6 +37610,10 @@
36913
37610
  "light-high-contrast": "{base.color.purple.6}",
36914
37611
  "light-protanopia-deuteranopia-high-contrast": "{base.color.purple.6}",
36915
37612
  "light-tritanopia-high-contrast": "{base.color.purple.6}"
37613
+ },
37614
+ "org.primer.llm": {
37615
+ "usage": ["done-text", "merged", "completed"],
37616
+ "rules": "Use for completed/done status text. Conveys finished or merged state."
36916
37617
  }
36917
37618
  },
36918
37619
  "key": "{fgColor.done}"
@@ -36921,7 +37622,8 @@
36921
37622
  "attributes": {},
36922
37623
  "path": ["fgColor", "done"],
36923
37624
  "value": "#986ee2",
36924
- "type": "color"
37625
+ "type": "color",
37626
+ "description": "Text color for completed/done state indicators"
36925
37627
  },
36926
37628
  "fgColor-draft": {
36927
37629
  "key": "{fgColor.draft}",
@@ -36933,6 +37635,10 @@
36933
37635
  "codeSyntax": {
36934
37636
  "web": "var(--fgColor-draft)"
36935
37637
  }
37638
+ },
37639
+ "org.primer.llm": {
37640
+ "usage": ["draft-text", "draft-pr", "draft-issue"],
37641
+ "rules": "Use for draft/WIP status text. Conveys incomplete or pending state."
36936
37642
  }
36937
37643
  },
36938
37644
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36940,6 +37646,7 @@
36940
37646
  "original": {
36941
37647
  "$value": "{fgColor.neutral}",
36942
37648
  "$type": "color",
37649
+ "$description": "Text color for draft state indicators",
36943
37650
  "$extensions": {
36944
37651
  "org.primer.figma": {
36945
37652
  "collection": "mode",
@@ -36948,6 +37655,10 @@
36948
37655
  "codeSyntax": {
36949
37656
  "web": "var(--fgColor-draft)"
36950
37657
  }
37658
+ },
37659
+ "org.primer.llm": {
37660
+ "usage": ["draft-text", "draft-pr", "draft-issue"],
37661
+ "rules": "Use for draft/WIP status text. Conveys incomplete or pending state."
36951
37662
  }
36952
37663
  },
36953
37664
  "key": "{fgColor.draft}"
@@ -36956,7 +37667,8 @@
36956
37667
  "attributes": {},
36957
37668
  "path": ["fgColor", "draft"],
36958
37669
  "value": "#9198a1",
36959
- "type": "color"
37670
+ "type": "color",
37671
+ "description": "Text color for draft state indicators"
36960
37672
  },
36961
37673
  "fgColor-link": {
36962
37674
  "key": "{fgColor.link}",
@@ -36968,6 +37680,10 @@
36968
37680
  "codeSyntax": {
36969
37681
  "web": "var(--fgColor-link) /* utility class: .color-fg-accent */"
36970
37682
  }
37683
+ },
37684
+ "org.primer.llm": {
37685
+ "usage": ["link-text", "hyperlink"],
37686
+ "rules": "MUST use for all text links. Provides expected link affordance."
36971
37687
  }
36972
37688
  },
36973
37689
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -36975,6 +37691,7 @@
36975
37691
  "original": {
36976
37692
  "$value": "{fgColor.accent}",
36977
37693
  "$type": "color",
37694
+ "$description": "Text color for hyperlinks",
36978
37695
  "$extensions": {
36979
37696
  "org.primer.figma": {
36980
37697
  "collection": "mode",
@@ -36983,6 +37700,10 @@
36983
37700
  "codeSyntax": {
36984
37701
  "web": "var(--fgColor-link) /* utility class: .color-fg-accent */"
36985
37702
  }
37703
+ },
37704
+ "org.primer.llm": {
37705
+ "usage": ["link-text", "hyperlink"],
37706
+ "rules": "MUST use for all text links. Provides expected link affordance."
36986
37707
  }
36987
37708
  },
36988
37709
  "key": "{fgColor.link}"
@@ -36991,7 +37712,8 @@
36991
37712
  "attributes": {},
36992
37713
  "path": ["fgColor", "link"],
36993
37714
  "value": "#478be6",
36994
- "type": "color"
37715
+ "type": "color",
37716
+ "description": "Text color for hyperlinks"
36995
37717
  },
36996
37718
  "fgColor-muted": {
36997
37719
  "key": "{fgColor.muted}",
@@ -37012,6 +37734,10 @@
37012
37734
  "dark-dimmed-high-contrast": "#b7bdc8",
37013
37735
  "dark-tritanopia-high-contrast": "#b7bdc8",
37014
37736
  "dark-protanopia-deuteranopia-high-contrast": "#b7bdc8"
37737
+ },
37738
+ "org.primer.llm": {
37739
+ "usage": ["muted-text", "secondary-text", "helper-text", "placeholder"],
37740
+ "rules": "Use for secondary text like timestamps, metadata, and helper text. Do NOT use for primary content."
37015
37741
  }
37016
37742
  },
37017
37743
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37019,6 +37745,7 @@
37019
37745
  "original": {
37020
37746
  "$value": "{base.color.neutral.9}",
37021
37747
  "$type": "color",
37748
+ "$description": "Muted text for secondary content and less important information",
37022
37749
  "$extensions": {
37023
37750
  "org.primer.figma": {
37024
37751
  "collection": "mode",
@@ -37036,6 +37763,10 @@
37036
37763
  "dark-dimmed-high-contrast": "{base.color.neutral.10}",
37037
37764
  "dark-tritanopia-high-contrast": "{base.color.neutral.10}",
37038
37765
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.10}"
37766
+ },
37767
+ "org.primer.llm": {
37768
+ "usage": ["muted-text", "secondary-text", "helper-text", "placeholder"],
37769
+ "rules": "Use for secondary text like timestamps, metadata, and helper text. Do NOT use for primary content."
37039
37770
  }
37040
37771
  },
37041
37772
  "key": "{fgColor.muted}"
@@ -37044,7 +37775,8 @@
37044
37775
  "attributes": {},
37045
37776
  "path": ["fgColor", "muted"],
37046
37777
  "value": "#9198a1",
37047
- "type": "color"
37778
+ "type": "color",
37779
+ "description": "Muted text for secondary content and less important information"
37048
37780
  },
37049
37781
  "fgColor-neutral": {
37050
37782
  "key": "{fgColor.neutral}",
@@ -37062,6 +37794,10 @@
37062
37794
  "dark-dimmed-high-contrast": "#d1d7e0",
37063
37795
  "dark-tritanopia-high-contrast": "#d1d7e0",
37064
37796
  "dark-protanopia-deuteranopia-high-contrast": "#d1d7e0"
37797
+ },
37798
+ "org.primer.llm": {
37799
+ "usage": ["neutral-icon", "neutral-text"],
37800
+ "rules": "Use for neutral semantic elements. Prefer fgColor.muted for secondary text."
37065
37801
  }
37066
37802
  },
37067
37803
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37069,6 +37805,7 @@
37069
37805
  "original": {
37070
37806
  "$value": "{base.color.neutral.9}",
37071
37807
  "$type": "color",
37808
+ "$description": "Neutral semantic text for icons and secondary elements",
37072
37809
  "$extensions": {
37073
37810
  "org.primer.figma": {
37074
37811
  "collection": "mode",
@@ -37083,6 +37820,10 @@
37083
37820
  "dark-dimmed-high-contrast": "{base.color.neutral.11}",
37084
37821
  "dark-tritanopia-high-contrast": "{base.color.neutral.11}",
37085
37822
  "dark-protanopia-deuteranopia-high-contrast": "{base.color.neutral.11}"
37823
+ },
37824
+ "org.primer.llm": {
37825
+ "usage": ["neutral-icon", "neutral-text"],
37826
+ "rules": "Use for neutral semantic elements. Prefer fgColor.muted for secondary text."
37086
37827
  }
37087
37828
  },
37088
37829
  "key": "{fgColor.neutral}"
@@ -37091,7 +37832,8 @@
37091
37832
  "attributes": {},
37092
37833
  "path": ["fgColor", "neutral"],
37093
37834
  "value": "#9198a1",
37094
- "type": "color"
37835
+ "type": "color",
37836
+ "description": "Neutral semantic text for icons and secondary elements"
37095
37837
  },
37096
37838
  "fgColor-onEmphasis": {
37097
37839
  "key": "{fgColor.onEmphasis}",
@@ -37108,6 +37850,10 @@
37108
37850
  "dark": "#cdd9e5",
37109
37851
  "dark-dimmed": "#f0f6fc",
37110
37852
  "dark-dimmed-high-contrast": "#ffffff"
37853
+ },
37854
+ "org.primer.llm": {
37855
+ "usage": ["text-on-emphasis", "contrast-text"],
37856
+ "rules": "MUST use for text on any emphasis background (bgColor.*.emphasis). Ensures accessibility contrast."
37111
37857
  }
37112
37858
  },
37113
37859
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37115,6 +37861,7 @@
37115
37861
  "original": {
37116
37862
  "$value": "{base.color.neutral.12}",
37117
37863
  "$type": "color",
37864
+ "$description": "Text color for use on emphasis backgrounds",
37118
37865
  "$extensions": {
37119
37866
  "org.primer.figma": {
37120
37867
  "collection": "mode",
@@ -37128,6 +37875,10 @@
37128
37875
  "dark": "{base.color.neutral.13}",
37129
37876
  "dark-dimmed": "{base.color.neutral.12}",
37130
37877
  "dark-dimmed-high-contrast": "#ffffff"
37878
+ },
37879
+ "org.primer.llm": {
37880
+ "usage": ["text-on-emphasis", "contrast-text"],
37881
+ "rules": "MUST use for text on any emphasis background (bgColor.*.emphasis). Ensures accessibility contrast."
37131
37882
  }
37132
37883
  },
37133
37884
  "key": "{fgColor.onEmphasis}"
@@ -37136,7 +37887,8 @@
37136
37887
  "attributes": {},
37137
37888
  "path": ["fgColor", "onEmphasis"],
37138
37889
  "value": "#f0f6fc",
37139
- "type": "color"
37890
+ "type": "color",
37891
+ "description": "Text color for use on emphasis backgrounds"
37140
37892
  },
37141
37893
  "fgColor-onInverse": {
37142
37894
  "key": "{fgColor.onInverse}",
@@ -37145,6 +37897,10 @@
37145
37897
  "collection": "mode",
37146
37898
  "group": "semantic",
37147
37899
  "scopes": ["fgColor"]
37900
+ },
37901
+ "org.primer.llm": {
37902
+ "usage": ["text-on-inverse", "inverse-text"],
37903
+ "rules": "Use for text on bgColor.inverse. Provides appropriate contrast in both themes."
37148
37904
  }
37149
37905
  },
37150
37906
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37152,11 +37908,16 @@
37152
37908
  "original": {
37153
37909
  "$value": "{base.color.neutral.0}",
37154
37910
  "$type": "color",
37911
+ "$description": "Text color for use on inverse backgrounds",
37155
37912
  "$extensions": {
37156
37913
  "org.primer.figma": {
37157
37914
  "collection": "mode",
37158
37915
  "group": "semantic",
37159
37916
  "scopes": ["fgColor"]
37917
+ },
37918
+ "org.primer.llm": {
37919
+ "usage": ["text-on-inverse", "inverse-text"],
37920
+ "rules": "Use for text on bgColor.inverse. Provides appropriate contrast in both themes."
37160
37921
  }
37161
37922
  },
37162
37923
  "key": "{fgColor.onInverse}"
@@ -37165,7 +37926,8 @@
37165
37926
  "attributes": {},
37166
37927
  "path": ["fgColor", "onInverse"],
37167
37928
  "value": "#010409",
37168
- "type": "color"
37929
+ "type": "color",
37930
+ "description": "Text color for use on inverse backgrounds"
37169
37931
  },
37170
37932
  "fgColor-open": {
37171
37933
  "key": "{fgColor.open}",
@@ -37187,6 +37949,10 @@
37187
37949
  "dark-tritanopia-high-contrast": "#ff938a",
37188
37950
  "light-tritanopia": "#c93c37",
37189
37951
  "light-tritanopia-high-contrast": "#ad2e2c"
37952
+ },
37953
+ "org.primer.llm": {
37954
+ "usage": ["open-text", "open-issue", "open-pr"],
37955
+ "rules": "Use for open/active status text. Specifically for GitHub issues and PRs."
37190
37956
  }
37191
37957
  },
37192
37958
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37194,6 +37960,7 @@
37194
37960
  "original": {
37195
37961
  "$value": "{fgColor.success}",
37196
37962
  "$type": "color",
37963
+ "$description": "Text color for open state indicators (issues, PRs)",
37197
37964
  "$extensions": {
37198
37965
  "org.primer.figma": {
37199
37966
  "collection": "mode",
@@ -37212,6 +37979,10 @@
37212
37979
  "dark-tritanopia-high-contrast": "{base.color.red.2}",
37213
37980
  "light-tritanopia": "{base.color.red.5}",
37214
37981
  "light-tritanopia-high-contrast": "{base.color.red.6}"
37982
+ },
37983
+ "org.primer.llm": {
37984
+ "usage": ["open-text", "open-issue", "open-pr"],
37985
+ "rules": "Use for open/active status text. Specifically for GitHub issues and PRs."
37215
37986
  }
37216
37987
  },
37217
37988
  "key": "{fgColor.open}"
@@ -37220,7 +37991,8 @@
37220
37991
  "attributes": {},
37221
37992
  "path": ["fgColor", "open"],
37222
37993
  "value": "#57ab5a",
37223
- "type": "color"
37994
+ "type": "color",
37995
+ "description": "Text color for open state indicators (issues, PRs)"
37224
37996
  },
37225
37997
  "fgColor-severe": {
37226
37998
  "key": "{fgColor.severe}",
@@ -37244,6 +38016,10 @@
37244
38016
  "light-tritanopia": "#c93c37",
37245
38017
  "light-tritanopia-high-contrast": "#ad2e2c",
37246
38018
  "light-protanopia-deuteranopia-high-contrast": "#94471b"
38019
+ },
38020
+ "org.primer.llm": {
38021
+ "usage": ["severe-text", "urgent-text", "severe-icon"],
38022
+ "rules": "Use for severe warnings, less critical than danger. Pair with bgColor.severe.muted for backgrounds."
37247
38023
  }
37248
38024
  },
37249
38025
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37251,6 +38027,7 @@
37251
38027
  "original": {
37252
38028
  "$value": "{base.color.orange.4}",
37253
38029
  "$type": "color",
38030
+ "$description": "Severe text for high-priority warnings",
37254
38031
  "$extensions": {
37255
38032
  "org.primer.figma": {
37256
38033
  "collection": "mode",
@@ -37271,6 +38048,10 @@
37271
38048
  "light-tritanopia": "{base.color.red.5}",
37272
38049
  "light-tritanopia-high-contrast": "{base.color.red.6}",
37273
38050
  "light-protanopia-deuteranopia-high-contrast": "{base.color.orange.6}"
38051
+ },
38052
+ "org.primer.llm": {
38053
+ "usage": ["severe-text", "urgent-text", "severe-icon"],
38054
+ "rules": "Use for severe warnings, less critical than danger. Pair with bgColor.severe.muted for backgrounds."
37274
38055
  }
37275
38056
  },
37276
38057
  "key": "{fgColor.severe}"
@@ -37279,7 +38060,8 @@
37279
38060
  "attributes": {},
37280
38061
  "path": ["fgColor", "severe"],
37281
38062
  "value": "#cc6b2c",
37282
- "type": "color"
38063
+ "type": "color",
38064
+ "description": "Severe text for high-priority warnings"
37283
38065
  },
37284
38066
  "fgColor-sponsors": {
37285
38067
  "key": "{fgColor.sponsors}",
@@ -37301,6 +38083,10 @@
37301
38083
  "light-high-contrast": "#983b6e",
37302
38084
  "light-protanopia-deuteranopia-high-contrast": "#983b6e",
37303
38085
  "light-tritanopia-high-contrast": "#983b6e"
38086
+ },
38087
+ "org.primer.llm": {
38088
+ "usage": ["sponsors-text", "funding-text", "sponsors-icon"],
38089
+ "rules": "Use for GitHub Sponsors related text. Do NOT use for general pink-colored text."
37304
38090
  }
37305
38091
  },
37306
38092
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37308,6 +38094,7 @@
37308
38094
  "original": {
37309
38095
  "$value": "{base.color.pink.4}",
37310
38096
  "$type": "color",
38097
+ "$description": "Text color for GitHub Sponsors content",
37311
38098
  "$extensions": {
37312
38099
  "org.primer.figma": {
37313
38100
  "collection": "mode",
@@ -37326,6 +38113,10 @@
37326
38113
  "light-high-contrast": "{base.color.pink.6}",
37327
38114
  "light-protanopia-deuteranopia-high-contrast": "{base.color.pink.6}",
37328
38115
  "light-tritanopia-high-contrast": "{base.color.pink.6}"
38116
+ },
38117
+ "org.primer.llm": {
38118
+ "usage": ["sponsors-text", "funding-text", "sponsors-icon"],
38119
+ "rules": "Use for GitHub Sponsors related text. Do NOT use for general pink-colored text."
37329
38120
  }
37330
38121
  },
37331
38122
  "key": "{fgColor.sponsors}"
@@ -37334,7 +38125,8 @@
37334
38125
  "attributes": {},
37335
38126
  "path": ["fgColor", "sponsors"],
37336
38127
  "value": "#c96198",
37337
- "type": "color"
38128
+ "type": "color",
38129
+ "description": "Text color for GitHub Sponsors content"
37338
38130
  },
37339
38131
  "fgColor-success": {
37340
38132
  "key": "{fgColor.success}",
@@ -37360,6 +38152,10 @@
37360
38152
  "dark-tritanopia-high-contrast": "#6cb6ff",
37361
38153
  "light-tritanopia": "#316dca",
37362
38154
  "light-tritanopia-high-contrast": "#255ab2"
38155
+ },
38156
+ "org.primer.llm": {
38157
+ "usage": ["success-text", "positive-text", "success-icon"],
38158
+ "rules": "Use for success states and positive feedback text. Pair with bgColor.success.muted for backgrounds."
37363
38159
  }
37364
38160
  },
37365
38161
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37367,6 +38163,7 @@
37367
38163
  "original": {
37368
38164
  "$value": "{base.color.green.3}",
37369
38165
  "$type": "color",
38166
+ "$description": "Success text for positive feedback and completed states",
37370
38167
  "$extensions": {
37371
38168
  "org.primer.figma": {
37372
38169
  "collection": "mode",
@@ -37389,6 +38186,10 @@
37389
38186
  "dark-tritanopia-high-contrast": "{base.color.blue.2}",
37390
38187
  "light-tritanopia": "{base.color.blue.5}",
37391
38188
  "light-tritanopia-high-contrast": "{base.color.blue.6}"
38189
+ },
38190
+ "org.primer.llm": {
38191
+ "usage": ["success-text", "positive-text", "success-icon"],
38192
+ "rules": "Use for success states and positive feedback text. Pair with bgColor.success.muted for backgrounds."
37392
38193
  }
37393
38194
  },
37394
38195
  "key": "{fgColor.success}"
@@ -37397,7 +38198,8 @@
37397
38198
  "attributes": {},
37398
38199
  "path": ["fgColor", "success"],
37399
38200
  "value": "#57ab5a",
37400
- "type": "color"
38201
+ "type": "color",
38202
+ "description": "Success text for positive feedback and completed states"
37401
38203
  },
37402
38204
  "fgColor-upsell": {
37403
38205
  "key": "{fgColor.upsell}",
@@ -37409,6 +38211,10 @@
37409
38211
  "codeSyntax": {
37410
38212
  "web": "var(--fgColor-upsell)"
37411
38213
  }
38214
+ },
38215
+ "org.primer.llm": {
38216
+ "usage": ["upsell-text", "premium-text", "promotional"],
38217
+ "rules": "Use for upgrade prompts and premium feature text. Do NOT use for regular content."
37412
38218
  }
37413
38219
  },
37414
38220
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37416,6 +38222,7 @@
37416
38222
  "original": {
37417
38223
  "$value": "{fgColor.done}",
37418
38224
  "$type": "color",
38225
+ "$description": "Text color for upsell and promotional content",
37419
38226
  "$extensions": {
37420
38227
  "org.primer.figma": {
37421
38228
  "collection": "mode",
@@ -37424,6 +38231,10 @@
37424
38231
  "codeSyntax": {
37425
38232
  "web": "var(--fgColor-upsell)"
37426
38233
  }
38234
+ },
38235
+ "org.primer.llm": {
38236
+ "usage": ["upsell-text", "premium-text", "promotional"],
38237
+ "rules": "Use for upgrade prompts and premium feature text. Do NOT use for regular content."
37427
38238
  }
37428
38239
  },
37429
38240
  "key": "{fgColor.upsell}"
@@ -37432,7 +38243,8 @@
37432
38243
  "attributes": {},
37433
38244
  "path": ["fgColor", "upsell"],
37434
38245
  "value": "#986ee2",
37435
- "type": "color"
38246
+ "type": "color",
38247
+ "description": "Text color for upsell and promotional content"
37436
38248
  },
37437
38249
  "fgColor-white": {
37438
38250
  "key": "{fgColor.white}",
@@ -37444,6 +38256,10 @@
37444
38256
  },
37445
38257
  "org.primer.overrides": {
37446
38258
  "dark": "#cdd9e5"
38259
+ },
38260
+ "org.primer.llm": {
38261
+ "doNotUse": true,
38262
+ "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."
37447
38263
  }
37448
38264
  },
37449
38265
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37451,6 +38267,7 @@
37451
38267
  "original": {
37452
38268
  "$value": "{base.color.neutral.13}",
37453
38269
  "$type": "color",
38270
+ "$description": "Pure white text",
37454
38271
  "$extensions": {
37455
38272
  "org.primer.figma": {
37456
38273
  "collection": "mode",
@@ -37459,6 +38276,10 @@
37459
38276
  },
37460
38277
  "org.primer.overrides": {
37461
38278
  "dark": "{base.color.neutral.13}"
38279
+ },
38280
+ "org.primer.llm": {
38281
+ "doNotUse": true,
38282
+ "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."
37462
38283
  }
37463
38284
  },
37464
38285
  "key": "{fgColor.white}"
@@ -37467,10 +38288,17 @@
37467
38288
  "attributes": {},
37468
38289
  "path": ["fgColor", "white"],
37469
38290
  "value": "#cdd9e5",
37470
- "type": "color"
38291
+ "type": "color",
38292
+ "description": "Pure white text"
37471
38293
  },
37472
38294
  "focus-outline": {
37473
38295
  "key": "{focus.outline}",
38296
+ "$extensions": {
38297
+ "org.primer.llm": {
38298
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38299
+ "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."
38300
+ }
38301
+ },
37474
38302
  "filePath": "src/tokens/functional/border/border.json5",
37475
38303
  "isSource": true,
37476
38304
  "original": {
@@ -37480,13 +38308,21 @@
37480
38308
  "width": "2px"
37481
38309
  },
37482
38310
  "$type": "border",
38311
+ "$description": "Focus ring outline for keyboard navigation and accessibility.",
38312
+ "$extensions": {
38313
+ "org.primer.llm": {
38314
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38315
+ "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."
38316
+ }
38317
+ },
37483
38318
  "key": "{focus.outline}"
37484
38319
  },
37485
38320
  "name": "focus-outline",
37486
38321
  "attributes": {},
37487
38322
  "path": ["focus", "outline"],
37488
38323
  "value": "2px solid #316dca",
37489
- "type": "border"
38324
+ "type": "border",
38325
+ "description": "Focus ring outline for keyboard navigation and accessibility."
37490
38326
  },
37491
38327
  "focus-outlineColor": {
37492
38328
  "key": "{focus.outlineColor}",
@@ -37495,6 +38331,10 @@
37495
38331
  "collection": "mode",
37496
38332
  "group": "component (internal)",
37497
38333
  "scopes": ["borderColor", "effectColor"]
38334
+ },
38335
+ "org.primer.llm": {
38336
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38337
+ "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."
37498
38338
  }
37499
38339
  },
37500
38340
  "filePath": "src/tokens/functional/color/focus.json5",
@@ -37502,11 +38342,16 @@
37502
38342
  "original": {
37503
38343
  "$value": "{borderColor.accent.emphasis}",
37504
38344
  "$type": "color",
38345
+ "$description": "Outline color for focus states on interactive elements",
37505
38346
  "$extensions": {
37506
38347
  "org.primer.figma": {
37507
38348
  "collection": "mode",
37508
38349
  "group": "component (internal)",
37509
38350
  "scopes": ["borderColor", "effectColor"]
38351
+ },
38352
+ "org.primer.llm": {
38353
+ "usage": ["focus-ring", "keyboard-navigation", "accessibility-indicator"],
38354
+ "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
38355
  }
37511
38356
  },
37512
38357
  "key": "{focus.outlineColor}"
@@ -37515,7 +38360,8 @@
37515
38360
  "attributes": {},
37516
38361
  "path": ["focus", "outlineColor"],
37517
38362
  "value": "#316dca",
37518
- "type": "color"
38363
+ "type": "color",
38364
+ "description": "Outline color for focus states on interactive elements"
37519
38365
  },
37520
38366
  "header-bgColor": {
37521
38367
  "key": "{header.bgColor}",
@@ -46576,6 +47422,10 @@
46576
47422
  "isSource": true,
46577
47423
  "$type": "color"
46578
47424
  }
47425
+ },
47426
+ "org.primer.llm": {
47427
+ "usage": ["text-selection", "highlighted-text", "selected-content"],
47428
+ "rules": "Use for native text selection (::selection) and programmatic text highlighting. Do NOT use for general emphasis or background colors on containers."
46579
47429
  }
46580
47430
  },
46581
47431
  "alpha": 0.7,
@@ -46584,6 +47434,7 @@
46584
47434
  "original": {
46585
47435
  "$value": "{bgColor.accent.emphasis}",
46586
47436
  "$type": "color",
47437
+ "$description": "Background color for text selection highlights",
46587
47438
  "$extensions": {
46588
47439
  "org.primer.figma": {
46589
47440
  "collection": "mode",
@@ -46598,6 +47449,10 @@
46598
47449
  "isSource": true,
46599
47450
  "$type": "color"
46600
47451
  }
47452
+ },
47453
+ "org.primer.llm": {
47454
+ "usage": ["text-selection", "highlighted-text", "selected-content"],
47455
+ "rules": "Use for native text selection (::selection) and programmatic text highlighting. Do NOT use for general emphasis or background colors on containers."
46601
47456
  }
46602
47457
  },
46603
47458
  "alpha": 0.7,
@@ -46607,7 +47462,8 @@
46607
47462
  "attributes": {},
46608
47463
  "path": ["selection", "bgColor"],
46609
47464
  "value": "#316dcab3",
46610
- "type": "color"
47465
+ "type": "color",
47466
+ "description": "Background color for text selection highlights"
46611
47467
  },
46612
47468
  "shadow-floating-large": {
46613
47469
  "key": "{shadow.floating.large}",
@@ -46640,6 +47496,10 @@
46640
47496
  "isSource": true,
46641
47497
  "$type": "shadow"
46642
47498
  }
47499
+ },
47500
+ "org.primer.llm": {
47501
+ "usage": ["modal", "dialog", "full-screen-overlay"],
47502
+ "rules": "MUST use for modals and dialogs. Do NOT use for small floating elements."
46643
47503
  }
46644
47504
  },
46645
47505
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46664,6 +47524,7 @@
46664
47524
  }
46665
47525
  ],
46666
47526
  "$type": "shadow",
47527
+ "$description": "Large floating shadow for modals and dialogs",
46667
47528
  "$extensions": {
46668
47529
  "org.primer.figma": {
46669
47530
  "collection": "mode",
@@ -46693,6 +47554,10 @@
46693
47554
  "isSource": true,
46694
47555
  "$type": "shadow"
46695
47556
  }
47557
+ },
47558
+ "org.primer.llm": {
47559
+ "usage": ["modal", "dialog", "full-screen-overlay"],
47560
+ "rules": "MUST use for modals and dialogs. Do NOT use for small floating elements."
46696
47561
  }
46697
47562
  },
46698
47563
  "key": "{shadow.floating.large}"
@@ -46701,7 +47566,8 @@
46701
47566
  "attributes": {},
46702
47567
  "path": ["shadow", "floating", "large"],
46703
47568
  "value": "0px 0px 0px 1px #3d444d, 0px 24px 48px 0px #010409",
46704
- "type": "shadow"
47569
+ "type": "shadow",
47570
+ "description": "Large floating shadow for modals and dialogs"
46705
47571
  },
46706
47572
  "shadow-floating-legacy": {
46707
47573
  "key": "{shadow.floating.legacy}",
@@ -46731,6 +47597,10 @@
46731
47597
  "isSource": true,
46732
47598
  "$type": "shadow"
46733
47599
  }
47600
+ },
47601
+ "org.primer.llm": {
47602
+ "usage": ["legacy-component", "backward-compatibility"],
47603
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
46734
47604
  }
46735
47605
  },
46736
47606
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46755,6 +47625,7 @@
46755
47625
  }
46756
47626
  ],
46757
47627
  "$type": "shadow",
47628
+ "$description": "Legacy floating shadow for backward compatibility",
46758
47629
  "$extensions": {
46759
47630
  "org.primer.figma": {},
46760
47631
  "org.primer.overrides": {
@@ -46781,6 +47652,10 @@
46781
47652
  "isSource": true,
46782
47653
  "$type": "shadow"
46783
47654
  }
47655
+ },
47656
+ "org.primer.llm": {
47657
+ "usage": ["legacy-component", "backward-compatibility"],
47658
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
46784
47659
  }
46785
47660
  },
46786
47661
  "key": "{shadow.floating.legacy}"
@@ -46789,7 +47664,8 @@
46789
47664
  "attributes": {},
46790
47665
  "path": ["shadow", "floating", "legacy"],
46791
47666
  "value": "0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966",
46792
- "type": "shadow"
47667
+ "type": "shadow",
47668
+ "description": "Legacy floating shadow for backward compatibility"
46793
47669
  },
46794
47670
  "shadow-floating-medium": {
46795
47671
  "key": "{shadow.floating.medium}",
@@ -46846,6 +47722,10 @@
46846
47722
  "isSource": true,
46847
47723
  "$type": "shadow"
46848
47724
  }
47725
+ },
47726
+ "org.primer.llm": {
47727
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47728
+ "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."
46849
47729
  }
46850
47730
  },
46851
47731
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -46894,6 +47774,7 @@
46894
47774
  }
46895
47775
  ],
46896
47776
  "$type": "shadow",
47777
+ "$description": "Medium floating shadow for popovers and action menus",
46897
47778
  "$extensions": {
46898
47779
  "org.primer.figma": {
46899
47780
  "collection": "mode",
@@ -46947,6 +47828,10 @@
46947
47828
  "isSource": true,
46948
47829
  "$type": "shadow"
46949
47830
  }
47831
+ },
47832
+ "org.primer.llm": {
47833
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47834
+ "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."
46950
47835
  }
46951
47836
  },
46952
47837
  "key": "{shadow.floating.medium}"
@@ -46955,7 +47840,8 @@
46955
47840
  "attributes": {},
46956
47841
  "path": ["shadow", "floating", "medium"],
46957
47842
  "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",
46958
- "type": "shadow"
47843
+ "type": "shadow",
47844
+ "description": "Medium floating shadow for popovers and action menus"
46959
47845
  },
46960
47846
  "shadow-floating-small": {
46961
47847
  "key": "{shadow.floating.small}",
@@ -46996,6 +47882,10 @@
46996
47882
  "isSource": true,
46997
47883
  "$type": "shadow"
46998
47884
  }
47885
+ },
47886
+ "org.primer.llm": {
47887
+ "usage": ["dropdown", "tooltip", "popover", "menu"],
47888
+ "rules": "Use for small floating elements like dropdowns and tooltips. Do NOT use for modals or dialogs."
46999
47889
  }
47000
47890
  },
47001
47891
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47028,6 +47918,7 @@
47028
47918
  }
47029
47919
  ],
47030
47920
  "$type": "shadow",
47921
+ "$description": "Small floating shadow for dropdowns, tooltips, and small overlays",
47031
47922
  "$extensions": {
47032
47923
  "org.primer.figma": {
47033
47924
  "collection": "mode",
@@ -47065,6 +47956,10 @@
47065
47956
  "isSource": true,
47066
47957
  "$type": "shadow"
47067
47958
  }
47959
+ },
47960
+ "org.primer.llm": {
47961
+ "usage": ["dropdown", "tooltip", "popover", "menu"],
47962
+ "rules": "Use for small floating elements like dropdowns and tooltips. Do NOT use for modals or dialogs."
47068
47963
  }
47069
47964
  },
47070
47965
  "key": "{shadow.floating.small}"
@@ -47073,7 +47968,8 @@
47073
47968
  "attributes": {},
47074
47969
  "path": ["shadow", "floating", "small"],
47075
47970
  "value": "0px 0px 0px 1px #3d444d, 0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966",
47076
- "type": "shadow"
47971
+ "type": "shadow",
47972
+ "description": "Small floating shadow for dropdowns, tooltips, and small overlays"
47077
47973
  },
47078
47974
  "shadow-floating-xlarge": {
47079
47975
  "key": "{shadow.floating.xlarge}",
@@ -47106,6 +48002,10 @@
47106
48002
  "isSource": true,
47107
48003
  "$type": "shadow"
47108
48004
  }
48005
+ },
48006
+ "org.primer.llm": {
48007
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48008
+ "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."
47109
48009
  }
47110
48010
  },
47111
48011
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47130,6 +48030,7 @@
47130
48030
  }
47131
48031
  ],
47132
48032
  "$type": "shadow",
48033
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47133
48034
  "$extensions": {
47134
48035
  "org.primer.figma": {
47135
48036
  "collection": "mode",
@@ -47159,6 +48060,10 @@
47159
48060
  "isSource": true,
47160
48061
  "$type": "shadow"
47161
48062
  }
48063
+ },
48064
+ "org.primer.llm": {
48065
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48066
+ "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."
47162
48067
  }
47163
48068
  },
47164
48069
  "key": "{shadow.floating.xlarge}"
@@ -47167,7 +48072,8 @@
47167
48072
  "attributes": {},
47168
48073
  "path": ["shadow", "floating", "xlarge"],
47169
48074
  "value": "0px 0px 0px 1px #3d444d, 0px 32px 64px 0px #010409",
47170
- "type": "shadow"
48075
+ "type": "shadow",
48076
+ "description": "Extra large floating shadow for full-screen overlays and sheets"
47171
48077
  },
47172
48078
  "shadow-inset": {
47173
48079
  "key": "{shadow.inset}",
@@ -47191,6 +48097,10 @@
47191
48097
  "isSource": true,
47192
48098
  "$type": "shadow"
47193
48099
  }
48100
+ },
48101
+ "org.primer.llm": {
48102
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48103
+ "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."
47194
48104
  }
47195
48105
  },
47196
48106
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47206,6 +48116,7 @@
47206
48116
  "inset": true
47207
48117
  },
47208
48118
  "$type": "shadow",
48119
+ "$description": "Inset shadow for recessed elements",
47209
48120
  "$extensions": {
47210
48121
  "org.primer.figma": {
47211
48122
  "collection": "mode",
@@ -47226,6 +48137,10 @@
47226
48137
  "isSource": true,
47227
48138
  "$type": "shadow"
47228
48139
  }
48140
+ },
48141
+ "org.primer.llm": {
48142
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48143
+ "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."
47229
48144
  }
47230
48145
  },
47231
48146
  "key": "{shadow.inset}"
@@ -47234,7 +48149,8 @@
47234
48149
  "attributes": {},
47235
48150
  "path": ["shadow", "inset"],
47236
48151
  "value": "inset 0px 1px 0px 0px #0104093d",
47237
- "type": "shadow"
48152
+ "type": "shadow",
48153
+ "description": "Inset shadow for recessed elements"
47238
48154
  },
47239
48155
  "shadow-resting-medium": {
47240
48156
  "key": "{shadow.resting.medium}",
@@ -47267,6 +48183,10 @@
47267
48183
  "isSource": true,
47268
48184
  "$type": "shadow"
47269
48185
  }
48186
+ },
48187
+ "org.primer.llm": {
48188
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48189
+ "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."
47270
48190
  }
47271
48191
  },
47272
48192
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47291,6 +48211,7 @@
47291
48211
  }
47292
48212
  ],
47293
48213
  "$type": "shadow",
48214
+ "$description": "Medium resting shadow for cards and elevated surfaces",
47294
48215
  "$extensions": {
47295
48216
  "org.primer.figma": {
47296
48217
  "collection": "mode",
@@ -47320,6 +48241,10 @@
47320
48241
  "isSource": true,
47321
48242
  "$type": "shadow"
47322
48243
  }
48244
+ },
48245
+ "org.primer.llm": {
48246
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48247
+ "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."
47323
48248
  }
47324
48249
  },
47325
48250
  "key": "{shadow.resting.medium}"
@@ -47328,7 +48253,8 @@
47328
48253
  "attributes": {},
47329
48254
  "path": ["shadow", "resting", "medium"],
47330
48255
  "value": "0px 1px 1px 0px #01040966, 0px 3px 6px 0px #010409cc",
47331
- "type": "shadow"
48256
+ "type": "shadow",
48257
+ "description": "Medium resting shadow for cards and elevated surfaces"
47332
48258
  },
47333
48259
  "shadow-resting-small": {
47334
48260
  "key": "{shadow.resting.small}",
@@ -47363,6 +48289,10 @@
47363
48289
  "isSource": true,
47364
48290
  "$type": "shadow"
47365
48291
  }
48292
+ },
48293
+ "org.primer.llm": {
48294
+ "usage": ["button", "interactive-card", "clickable-element"],
48295
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
47366
48296
  }
47367
48297
  },
47368
48298
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47389,6 +48319,7 @@
47389
48319
  }
47390
48320
  ],
47391
48321
  "$type": "shadow",
48322
+ "$description": "Small resting shadow for buttons and interactive elements",
47392
48323
  "$extensions": {
47393
48324
  "org.primer.figma": {
47394
48325
  "collection": "mode",
@@ -47420,6 +48351,10 @@
47420
48351
  "isSource": true,
47421
48352
  "$type": "shadow"
47422
48353
  }
48354
+ },
48355
+ "org.primer.llm": {
48356
+ "usage": ["button", "interactive-card", "clickable-element"],
48357
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
47423
48358
  }
47424
48359
  },
47425
48360
  "key": "{shadow.resting.small}"
@@ -47428,7 +48363,8 @@
47428
48363
  "attributes": {},
47429
48364
  "path": ["shadow", "resting", "small"],
47430
48365
  "value": "0px 1px 1px 0px #01040999, 0px 1px 3px 0px #01040999",
47431
- "type": "shadow"
48366
+ "type": "shadow",
48367
+ "description": "Small resting shadow for buttons and interactive elements"
47432
48368
  },
47433
48369
  "shadow-resting-xsmall": {
47434
48370
  "key": "{shadow.resting.xsmall}",
@@ -47452,6 +48388,10 @@
47452
48388
  "isSource": true,
47453
48389
  "$type": "shadow"
47454
48390
  }
48391
+ },
48392
+ "org.primer.llm": {
48393
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48394
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
47455
48395
  }
47456
48396
  },
47457
48397
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47467,6 +48407,7 @@
47467
48407
  "inset": false
47468
48408
  },
47469
48409
  "$type": "shadow",
48410
+ "$description": "Extra small resting shadow for minimal elevation",
47470
48411
  "$extensions": {
47471
48412
  "org.primer.figma": {
47472
48413
  "collection": "mode",
@@ -47487,6 +48428,10 @@
47487
48428
  "isSource": true,
47488
48429
  "$type": "shadow"
47489
48430
  }
48431
+ },
48432
+ "org.primer.llm": {
48433
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48434
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
47490
48435
  }
47491
48436
  },
47492
48437
  "key": "{shadow.resting.xsmall}"
@@ -47495,7 +48440,8 @@
47495
48440
  "attributes": {},
47496
48441
  "path": ["shadow", "resting", "xsmall"],
47497
48442
  "value": "0px 1px 1px 0px #010409cc",
47498
- "type": "shadow"
48443
+ "type": "shadow",
48444
+ "description": "Extra small resting shadow for minimal elevation"
47499
48445
  },
47500
48446
  "sideNav-bgColor-selected": {
47501
48447
  "key": "{sideNav.bgColor.selected}",