@primer/primitives 11.4.0 → 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 (131) hide show
  1. package/DESIGN_TOKENS_GUIDE.md +185 -0
  2. package/DESIGN_TOKENS_SPEC.md +565 -0
  3. package/dist/build/formats/markdownLlmGuidelines.d.ts +7 -6
  4. package/dist/build/formats/markdownLlmGuidelines.js +1034 -60
  5. package/dist/build/schemas/borderToken.d.ts +16 -2
  6. package/dist/build/schemas/dimensionToken.d.ts +8 -1
  7. package/dist/build/schemas/dimensionValue.d.ts +24 -1
  8. package/dist/build/schemas/dimensionValue.js +20 -1
  9. package/dist/build/schemas/durationToken.d.ts +7 -1
  10. package/dist/build/schemas/durationValue.d.ts +11 -1
  11. package/dist/build/schemas/durationValue.js +13 -3
  12. package/dist/build/schemas/shadowToken.d.ts +672 -84
  13. package/dist/build/schemas/transitionToken.d.ts +14 -2
  14. package/dist/build/schemas/typographyToken.d.ts +32 -4
  15. package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
  16. package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
  17. package/dist/build/transformers/dimensionToRem.d.ts +2 -1
  18. package/dist/build/transformers/dimensionToRem.js +21 -22
  19. package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
  20. package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
  21. package/dist/build/transformers/durationToCss.d.ts +2 -1
  22. package/dist/build/transformers/durationToCss.js +18 -11
  23. package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
  24. package/dist/build/transformers/utilities/parseDimension.js +31 -0
  25. package/dist/build/types/dimensionTokenValue.d.ts +9 -0
  26. package/dist/css/functional/themes/dark-colorblind-high-contrast.css +18 -14
  27. package/dist/css/functional/themes/dark-colorblind.css +18 -14
  28. package/dist/css/functional/themes/dark-dimmed-high-contrast.css +18 -14
  29. package/dist/css/functional/themes/dark-dimmed.css +18 -14
  30. package/dist/css/functional/themes/dark-high-contrast.css +18 -14
  31. package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +18 -14
  32. package/dist/css/functional/themes/dark-tritanopia.css +18 -14
  33. package/dist/css/functional/themes/dark.css +18 -14
  34. package/dist/css/functional/themes/light-colorblind-high-contrast.css +18 -14
  35. package/dist/css/functional/themes/light-colorblind.css +18 -14
  36. package/dist/css/functional/themes/light-high-contrast.css +18 -14
  37. package/dist/css/functional/themes/light-tritanopia-high-contrast.css +18 -14
  38. package/dist/css/functional/themes/light-tritanopia.css +18 -14
  39. package/dist/css/functional/themes/light.css +18 -14
  40. package/dist/css/primitives.css +4 -0
  41. package/dist/docs/base/motion/motion.json +96 -24
  42. package/dist/docs/base/size/size.json +76 -19
  43. package/dist/docs/base/typography/typography.json +24 -6
  44. package/dist/docs/functional/size/border.json +20 -5
  45. package/dist/docs/functional/size/breakpoints.json +24 -6
  46. package/dist/docs/functional/size/radius.json +16 -4
  47. package/dist/docs/functional/size/size.json +60 -15
  48. package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +109 -7
  49. package/dist/docs/functional/themes/dark-colorblind.json +109 -7
  50. package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +109 -7
  51. package/dist/docs/functional/themes/dark-dimmed.json +109 -7
  52. package/dist/docs/functional/themes/dark-high-contrast.json +109 -7
  53. package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +109 -7
  54. package/dist/docs/functional/themes/dark-tritanopia.json +109 -7
  55. package/dist/docs/functional/themes/dark.json +109 -7
  56. package/dist/docs/functional/themes/light-colorblind-high-contrast.json +115 -13
  57. package/dist/docs/functional/themes/light-colorblind.json +115 -13
  58. package/dist/docs/functional/themes/light-high-contrast.json +115 -13
  59. package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +115 -13
  60. package/dist/docs/functional/themes/light-tritanopia.json +115 -13
  61. package/dist/docs/functional/themes/light.json +115 -13
  62. package/dist/docs/functional/typography/typography.json +8 -2
  63. package/dist/fallbacks/base/motion/motion.json +48 -12
  64. package/dist/figma/themes/light-colorblind.json +4 -4
  65. package/dist/figma/themes/light-high-contrast.json +4 -4
  66. package/dist/figma/themes/light-tritanopia.json +4 -4
  67. package/dist/figma/themes/light.json +4 -4
  68. package/dist/internalCss/dark-colorblind-high-contrast.css +14 -14
  69. package/dist/internalCss/dark-colorblind.css +14 -14
  70. package/dist/internalCss/dark-dimmed-high-contrast.css +14 -14
  71. package/dist/internalCss/dark-dimmed.css +14 -14
  72. package/dist/internalCss/dark-high-contrast.css +14 -14
  73. package/dist/internalCss/dark-tritanopia-high-contrast.css +14 -14
  74. package/dist/internalCss/dark-tritanopia.css +14 -14
  75. package/dist/internalCss/dark.css +14 -14
  76. package/dist/internalCss/light-colorblind-high-contrast.css +14 -14
  77. package/dist/internalCss/light-colorblind.css +14 -14
  78. package/dist/internalCss/light-high-contrast.css +14 -14
  79. package/dist/internalCss/light-tritanopia-high-contrast.css +14 -14
  80. package/dist/internalCss/light-tritanopia.css +14 -14
  81. package/dist/internalCss/light.css +14 -14
  82. package/dist/styleLint/base/motion/motion.json +96 -24
  83. package/dist/styleLint/base/size/size.json +76 -19
  84. package/dist/styleLint/base/typography/typography.json +30 -12
  85. package/dist/styleLint/functional/size/border.json +21 -6
  86. package/dist/styleLint/functional/size/breakpoints.json +24 -6
  87. package/dist/styleLint/functional/size/radius.json +17 -5
  88. package/dist/styleLint/functional/size/size-coarse.json +3 -3
  89. package/dist/styleLint/functional/size/size-fine.json +3 -3
  90. package/dist/styleLint/functional/size/size.json +111 -66
  91. package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +129 -27
  92. package/dist/styleLint/functional/themes/dark-colorblind.json +129 -27
  93. package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +129 -27
  94. package/dist/styleLint/functional/themes/dark-dimmed.json +129 -27
  95. package/dist/styleLint/functional/themes/dark-high-contrast.json +129 -27
  96. package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +129 -27
  97. package/dist/styleLint/functional/themes/dark-tritanopia.json +129 -27
  98. package/dist/styleLint/functional/themes/dark.json +129 -27
  99. package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +135 -33
  100. package/dist/styleLint/functional/themes/light-colorblind.json +135 -33
  101. package/dist/styleLint/functional/themes/light-high-contrast.json +135 -33
  102. package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +135 -33
  103. package/dist/styleLint/functional/themes/light-tritanopia.json +135 -33
  104. package/dist/styleLint/functional/themes/light.json +135 -33
  105. package/dist/styleLint/functional/typography/typography.json +28 -22
  106. package/package.json +6 -5
  107. package/src/tokens/base/motion/timing.json5 +12 -12
  108. package/src/tokens/base/size/size.json5 +19 -19
  109. package/src/tokens/base/typography/typography.json5 +6 -6
  110. package/src/tokens/functional/color/bgColor.json5 +8 -0
  111. package/src/tokens/functional/color/display.json5 +7 -0
  112. package/src/tokens/functional/color/fgColor.json5 +8 -0
  113. package/src/tokens/functional/color/syntax.json5 +14 -0
  114. package/src/tokens/functional/shadow/shadow.json5 +39 -4
  115. package/src/tokens/functional/size/border.json5 +5 -5
  116. package/src/tokens/functional/size/breakpoints.json5 +6 -6
  117. package/src/tokens/functional/size/radius.json5 +4 -4
  118. package/src/tokens/functional/size/size.json5 +15 -15
  119. package/src/tokens/functional/typography/typography.json5 +8 -4
  120. package/dist/build/parsers/index.d.ts +0 -1
  121. package/dist/build/parsers/index.js +0 -1
  122. package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
  123. package/dist/build/parsers/w3cJsonParser.js +0 -25
  124. package/dist/removed/testing.json5 +0 -4
  125. package/guidelines/color.llm.md +0 -16
  126. package/guidelines/guidelines.llm.md +0 -34
  127. package/guidelines/motion.llm.md +0 -41
  128. package/guidelines/spacing.llm.md +0 -20
  129. package/guidelines/typography.llm.md +0 -14
  130. package/src/tokens/removed/testing.json5 +0 -4
  131. package/token-guidelines.llm.md +0 -695
@@ -552,6 +552,10 @@
552
552
  },
553
553
  "org.primer.overrides": {
554
554
  "dark": "#010409"
555
+ },
556
+ "org.primer.llm": {
557
+ "doNotUse": true,
558
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
555
559
  }
556
560
  },
557
561
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -568,6 +572,10 @@
568
572
  },
569
573
  "org.primer.overrides": {
570
574
  "dark": "{base.color.neutral.0}"
575
+ },
576
+ "org.primer.llm": {
577
+ "doNotUse": true,
578
+ "rules": "Avoid using raw black. Use semantic alternatives: bgColor.emphasis for dark backgrounds, bgColor.inverse for inverted contexts. Raw black/white ignore theme preferences and accessibility settings."
571
579
  }
572
580
  },
573
581
  "key": "{bgColor.black}"
@@ -2452,6 +2460,10 @@
2452
2460
  },
2453
2461
  "org.primer.overrides": {
2454
2462
  "dark": "#ffffff"
2463
+ },
2464
+ "org.primer.llm": {
2465
+ "doNotUse": true,
2466
+ "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."
2455
2467
  }
2456
2468
  },
2457
2469
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2468,6 +2480,10 @@
2468
2480
  },
2469
2481
  "org.primer.overrides": {
2470
2482
  "dark": "{base.color.neutral.13}"
2483
+ },
2484
+ "org.primer.llm": {
2485
+ "doNotUse": true,
2486
+ "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."
2471
2487
  }
2472
2488
  },
2473
2489
  "key": "{bgColor.white}"
@@ -2478,7 +2494,7 @@
2478
2494
  },
2479
2495
  "border-accent-emphasis": {
2480
2496
  "key": "{border.accent.emphasis}",
2481
- "$value": "0.00390625rem,0.0625px solid #409eff",
2497
+ "$value": "0.0625rem,1px solid #409eff",
2482
2498
  "$type": "border",
2483
2499
  "filePath": "src/tokens/functional/border/border.json5",
2484
2500
  "isSource": true,
@@ -2497,7 +2513,7 @@
2497
2513
  },
2498
2514
  "border-accent-muted": {
2499
2515
  "key": "{border.accent.muted}",
2500
- "$value": "0.00390625rem,0.0625px solid #5cacff",
2516
+ "$value": "0.0625rem,1px solid #5cacff",
2501
2517
  "$type": "border",
2502
2518
  "filePath": "src/tokens/functional/border/border.json5",
2503
2519
  "isSource": true,
@@ -2516,7 +2532,7 @@
2516
2532
  },
2517
2533
  "border-attention-emphasis": {
2518
2534
  "key": "{border.attention.emphasis}",
2519
- "$value": "0.00390625rem,0.0625px solid #e09b13",
2535
+ "$value": "0.0625rem,1px solid #e09b13",
2520
2536
  "$type": "border",
2521
2537
  "filePath": "src/tokens/functional/border/border.json5",
2522
2538
  "isSource": true,
@@ -2535,7 +2551,7 @@
2535
2551
  },
2536
2552
  "border-attention-muted": {
2537
2553
  "key": "{border.attention.muted}",
2538
- "$value": "0.00390625rem,0.0625px solid #edaa27",
2554
+ "$value": "0.0625rem,1px solid #edaa27",
2539
2555
  "$type": "border",
2540
2556
  "filePath": "src/tokens/functional/border/border.json5",
2541
2557
  "isSource": true,
@@ -2554,7 +2570,7 @@
2554
2570
  },
2555
2571
  "border-closed-emphasis": {
2556
2572
  "key": "{border.closed.emphasis}",
2557
- "$value": "0.00390625rem,0.0625px solid #ff6a69",
2573
+ "$value": "0.0625rem,1px solid #ff6a69",
2558
2574
  "$type": "border",
2559
2575
  "filePath": "src/tokens/functional/border/border.json5",
2560
2576
  "isSource": true,
@@ -2569,7 +2585,7 @@
2569
2585
  },
2570
2586
  "border-closed-muted": {
2571
2587
  "key": "{border.closed.muted}",
2572
- "$value": "0.00390625rem,0.0625px solid #ff8080",
2588
+ "$value": "0.0625rem,1px solid #ff8080",
2573
2589
  "$type": "border",
2574
2590
  "filePath": "src/tokens/functional/border/border.json5",
2575
2591
  "isSource": true,
@@ -2584,7 +2600,7 @@
2584
2600
  },
2585
2601
  "border-danger-emphasis": {
2586
2602
  "key": "{border.danger.emphasis}",
2587
- "$value": "0.00390625rem,0.0625px solid #ff6a69",
2603
+ "$value": "0.0625rem,1px solid #ff6a69",
2588
2604
  "$type": "border",
2589
2605
  "filePath": "src/tokens/functional/border/border.json5",
2590
2606
  "isSource": true,
@@ -2603,7 +2619,7 @@
2603
2619
  },
2604
2620
  "border-danger-muted": {
2605
2621
  "key": "{border.danger.muted}",
2606
- "$value": "0.00390625rem,0.0625px solid #ff8080",
2622
+ "$value": "0.0625rem,1px solid #ff8080",
2607
2623
  "$type": "border",
2608
2624
  "filePath": "src/tokens/functional/border/border.json5",
2609
2625
  "isSource": true,
@@ -2622,7 +2638,7 @@
2622
2638
  },
2623
2639
  "border-default": {
2624
2640
  "key": "{border.default}",
2625
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2641
+ "$value": "0.0625rem,1px solid #b7bdc8",
2626
2642
  "$type": "border",
2627
2643
  "filePath": "src/tokens/functional/border/border.json5",
2628
2644
  "isSource": true,
@@ -2641,7 +2657,7 @@
2641
2657
  },
2642
2658
  "border-disabled": {
2643
2659
  "key": "{border.disabled}",
2644
- "$value": "0.00390625rem,0.0625px solid #656c761a",
2660
+ "$value": "0.0625rem,1px solid #656c761a",
2645
2661
  "$type": "border",
2646
2662
  "filePath": "src/tokens/functional/border/border.json5",
2647
2663
  "isSource": true,
@@ -2660,7 +2676,7 @@
2660
2676
  },
2661
2677
  "border-done-emphasis": {
2662
2678
  "key": "{border.done.emphasis}",
2663
- "$value": "0.00390625rem,0.0625px solid #b87fff",
2679
+ "$value": "0.0625rem,1px solid #b87fff",
2664
2680
  "$type": "border",
2665
2681
  "filePath": "src/tokens/functional/border/border.json5",
2666
2682
  "isSource": true,
@@ -2679,7 +2695,7 @@
2679
2695
  },
2680
2696
  "border-done-muted": {
2681
2697
  "key": "{border.done.muted}",
2682
- "$value": "0.00390625rem,0.0625px solid #bf8fff",
2698
+ "$value": "0.0625rem,1px solid #bf8fff",
2683
2699
  "$type": "border",
2684
2700
  "filePath": "src/tokens/functional/border/border.json5",
2685
2701
  "isSource": true,
@@ -2698,7 +2714,7 @@
2698
2714
  },
2699
2715
  "border-emphasis": {
2700
2716
  "key": "{border.emphasis}",
2701
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2717
+ "$value": "0.0625rem,1px solid #b7bdc8",
2702
2718
  "$type": "border",
2703
2719
  "filePath": "src/tokens/functional/border/border.json5",
2704
2720
  "isSource": true,
@@ -2717,7 +2733,7 @@
2717
2733
  },
2718
2734
  "border-muted": {
2719
2735
  "key": "{border.muted}",
2720
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2736
+ "$value": "0.0625rem,1px solid #b7bdc8",
2721
2737
  "$type": "border",
2722
2738
  "filePath": "src/tokens/functional/border/border.json5",
2723
2739
  "isSource": true,
@@ -2736,7 +2752,7 @@
2736
2752
  },
2737
2753
  "border-neutral-emphasis": {
2738
2754
  "key": "{border.neutral.emphasis}",
2739
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2755
+ "$value": "0.0625rem,1px solid #b7bdc8",
2740
2756
  "$type": "border",
2741
2757
  "filePath": "src/tokens/functional/border/border.json5",
2742
2758
  "isSource": true,
@@ -2755,7 +2771,7 @@
2755
2771
  },
2756
2772
  "border-neutral-muted": {
2757
2773
  "key": "{border.neutral.muted}",
2758
- "$value": "0.00390625rem,0.0625px solid #b7bdc8",
2774
+ "$value": "0.0625rem,1px solid #b7bdc8",
2759
2775
  "$type": "border",
2760
2776
  "filePath": "src/tokens/functional/border/border.json5",
2761
2777
  "isSource": true,
@@ -2774,7 +2790,7 @@
2774
2790
  },
2775
2791
  "border-open-emphasis": {
2776
2792
  "key": "{border.open.emphasis}",
2777
- "$value": "0.00390625rem,0.0625px solid #09b43a",
2793
+ "$value": "0.0625rem,1px solid #09b43a",
2778
2794
  "$type": "border",
2779
2795
  "filePath": "src/tokens/functional/border/border.json5",
2780
2796
  "isSource": true,
@@ -2789,7 +2805,7 @@
2789
2805
  },
2790
2806
  "border-open-muted": {
2791
2807
  "key": "{border.open.muted}",
2792
- "$value": "0.00390625rem,0.0625px solid #0ac740",
2808
+ "$value": "0.0625rem,1px solid #0ac740",
2793
2809
  "$type": "border",
2794
2810
  "filePath": "src/tokens/functional/border/border.json5",
2795
2811
  "isSource": true,
@@ -2804,7 +2820,7 @@
2804
2820
  },
2805
2821
  "border-severe-emphasis": {
2806
2822
  "key": "{border.severe.emphasis}",
2807
- "$value": "0.00390625rem,0.0625px solid #e7811d",
2823
+ "$value": "0.0625rem,1px solid #e7811d",
2808
2824
  "$type": "border",
2809
2825
  "filePath": "src/tokens/functional/border/border.json5",
2810
2826
  "isSource": true,
@@ -2823,7 +2839,7 @@
2823
2839
  },
2824
2840
  "border-severe-muted": {
2825
2841
  "key": "{border.severe.muted}",
2826
- "$value": "0.00390625rem,0.0625px solid #f48b25",
2842
+ "$value": "0.0625rem,1px solid #f48b25",
2827
2843
  "$type": "border",
2828
2844
  "filePath": "src/tokens/functional/border/border.json5",
2829
2845
  "isSource": true,
@@ -2842,7 +2858,7 @@
2842
2858
  },
2843
2859
  "border-sponsors-emphasis": {
2844
2860
  "key": "{border.sponsors.emphasis}",
2845
- "$value": "0.00390625rem,0.0625px solid #ef6eb1",
2861
+ "$value": "0.0625rem,1px solid #ef6eb1",
2846
2862
  "$type": "border",
2847
2863
  "filePath": "src/tokens/functional/border/border.json5",
2848
2864
  "isSource": true,
@@ -2861,7 +2877,7 @@
2861
2877
  },
2862
2878
  "border-sponsors-muted": {
2863
2879
  "key": "{border.sponsors.muted}",
2864
- "$value": "0.00390625rem,0.0625px solid #f87cbd",
2880
+ "$value": "0.0625rem,1px solid #f87cbd",
2865
2881
  "$type": "border",
2866
2882
  "filePath": "src/tokens/functional/border/border.json5",
2867
2883
  "isSource": true,
@@ -2880,7 +2896,7 @@
2880
2896
  },
2881
2897
  "border-success-emphasis": {
2882
2898
  "key": "{border.success.emphasis}",
2883
- "$value": "0.00390625rem,0.0625px solid #09b43a",
2899
+ "$value": "0.0625rem,1px solid #09b43a",
2884
2900
  "$type": "border",
2885
2901
  "filePath": "src/tokens/functional/border/border.json5",
2886
2902
  "isSource": true,
@@ -2899,7 +2915,7 @@
2899
2915
  },
2900
2916
  "border-success-muted": {
2901
2917
  "key": "{border.success.muted}",
2902
- "$value": "0.00390625rem,0.0625px solid #0ac740",
2918
+ "$value": "0.0625rem,1px solid #0ac740",
2903
2919
  "$type": "border",
2904
2920
  "filePath": "src/tokens/functional/border/border.json5",
2905
2921
  "isSource": true,
@@ -2918,7 +2934,7 @@
2918
2934
  },
2919
2935
  "border-transparent": {
2920
2936
  "key": "{border.transparent}",
2921
- "$value": "0.00390625rem,0.0625px solid #00000000",
2937
+ "$value": "0.0625rem,1px solid #00000000",
2922
2938
  "$type": "border",
2923
2939
  "filePath": "src/tokens/functional/border/border.json5",
2924
2940
  "isSource": true,
@@ -2937,7 +2953,7 @@
2937
2953
  },
2938
2954
  "border-upsell-emphasis": {
2939
2955
  "key": "{border.upsell.emphasis}",
2940
- "$value": "0.00390625rem,0.0625px solid #b87fff",
2956
+ "$value": "0.0625rem,1px solid #b87fff",
2941
2957
  "$type": "border",
2942
2958
  "filePath": "src/tokens/functional/border/border.json5",
2943
2959
  "isSource": true,
@@ -2956,7 +2972,7 @@
2956
2972
  },
2957
2973
  "border-upsell-muted": {
2958
2974
  "key": "{border.upsell.muted}",
2959
- "$value": "0.00390625rem,0.0625px solid #bf8fff",
2975
+ "$value": "0.0625rem,1px solid #bf8fff",
2960
2976
  "$type": "border",
2961
2977
  "filePath": "src/tokens/functional/border/border.json5",
2962
2978
  "isSource": true,
@@ -37252,6 +37268,10 @@
37252
37268
  },
37253
37269
  "org.primer.overrides": {
37254
37270
  "dark": "#010409"
37271
+ },
37272
+ "org.primer.llm": {
37273
+ "doNotUse": true,
37274
+ "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."
37255
37275
  }
37256
37276
  },
37257
37277
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37268,6 +37288,10 @@
37268
37288
  },
37269
37289
  "org.primer.overrides": {
37270
37290
  "dark": "{base.color.neutral.0}"
37291
+ },
37292
+ "org.primer.llm": {
37293
+ "doNotUse": true,
37294
+ "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."
37271
37295
  }
37272
37296
  },
37273
37297
  "key": "{fgColor.black}"
@@ -38241,6 +38265,10 @@
38241
38265
  },
38242
38266
  "org.primer.overrides": {
38243
38267
  "dark": "#ffffff"
38268
+ },
38269
+ "org.primer.llm": {
38270
+ "doNotUse": true,
38271
+ "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."
38244
38272
  }
38245
38273
  },
38246
38274
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -38257,6 +38285,10 @@
38257
38285
  },
38258
38286
  "org.primer.overrides": {
38259
38287
  "dark": "{base.color.neutral.13}"
38288
+ },
38289
+ "org.primer.llm": {
38290
+ "doNotUse": true,
38291
+ "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."
38260
38292
  }
38261
38293
  },
38262
38294
  "key": "{fgColor.white}"
@@ -47547,6 +47579,7 @@
47547
47579
  "key": "{shadow.floating.legacy}",
47548
47580
  "$value": "0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966",
47549
47581
  "$type": "shadow",
47582
+ "$description": "Legacy floating shadow for backward compatibility",
47550
47583
  "$extensions": {
47551
47584
  "org.primer.figma": {},
47552
47585
  "org.primer.overrides": {
@@ -47573,6 +47606,10 @@
47573
47606
  "isSource": true,
47574
47607
  "$type": "shadow"
47575
47608
  }
47609
+ },
47610
+ "org.primer.llm": {
47611
+ "usage": ["legacy-component", "backward-compatibility"],
47612
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47576
47613
  }
47577
47614
  },
47578
47615
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47597,6 +47634,7 @@
47597
47634
  }
47598
47635
  ],
47599
47636
  "$type": "shadow",
47637
+ "$description": "Legacy floating shadow for backward compatibility",
47600
47638
  "$extensions": {
47601
47639
  "org.primer.figma": {},
47602
47640
  "org.primer.overrides": {
@@ -47623,6 +47661,10 @@
47623
47661
  "isSource": true,
47624
47662
  "$type": "shadow"
47625
47663
  }
47664
+ },
47665
+ "org.primer.llm": {
47666
+ "usage": ["legacy-component", "backward-compatibility"],
47667
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47626
47668
  }
47627
47669
  },
47628
47670
  "key": "{shadow.floating.legacy}"
@@ -47635,6 +47677,7 @@
47635
47677
  "key": "{shadow.floating.medium}",
47636
47678
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 8px 16px -4px #01040966, 0px 4px 32px -4px #01040966, 0px 24px 48px -12px #01040966, 0px 48px 96px -24px #01040966",
47637
47679
  "$type": "shadow",
47680
+ "$description": "Medium floating shadow for popovers and action menus",
47638
47681
  "$extensions": {
47639
47682
  "org.primer.figma": {
47640
47683
  "collection": "mode",
@@ -47688,6 +47731,10 @@
47688
47731
  "isSource": true,
47689
47732
  "$type": "shadow"
47690
47733
  }
47734
+ },
47735
+ "org.primer.llm": {
47736
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47737
+ "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."
47691
47738
  }
47692
47739
  },
47693
47740
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47736,6 +47783,7 @@
47736
47783
  }
47737
47784
  ],
47738
47785
  "$type": "shadow",
47786
+ "$description": "Medium floating shadow for popovers and action menus",
47739
47787
  "$extensions": {
47740
47788
  "org.primer.figma": {
47741
47789
  "collection": "mode",
@@ -47789,6 +47837,10 @@
47789
47837
  "isSource": true,
47790
47838
  "$type": "shadow"
47791
47839
  }
47840
+ },
47841
+ "org.primer.llm": {
47842
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47843
+ "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."
47792
47844
  }
47793
47845
  },
47794
47846
  "key": "{shadow.floating.medium}"
@@ -47929,6 +47981,7 @@
47929
47981
  "key": "{shadow.floating.xlarge}",
47930
47982
  "$value": "0px 0px 0px 1px #b7bdc8, 0px 32px 64px 0px #010409",
47931
47983
  "$type": "shadow",
47984
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47932
47985
  "$extensions": {
47933
47986
  "org.primer.figma": {
47934
47987
  "collection": "mode",
@@ -47958,6 +48011,10 @@
47958
48011
  "isSource": true,
47959
48012
  "$type": "shadow"
47960
48013
  }
48014
+ },
48015
+ "org.primer.llm": {
48016
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48017
+ "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."
47961
48018
  }
47962
48019
  },
47963
48020
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47982,6 +48039,7 @@
47982
48039
  }
47983
48040
  ],
47984
48041
  "$type": "shadow",
48042
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47985
48043
  "$extensions": {
47986
48044
  "org.primer.figma": {
47987
48045
  "collection": "mode",
@@ -48011,6 +48069,10 @@
48011
48069
  "isSource": true,
48012
48070
  "$type": "shadow"
48013
48071
  }
48072
+ },
48073
+ "org.primer.llm": {
48074
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48075
+ "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."
48014
48076
  }
48015
48077
  },
48016
48078
  "key": "{shadow.floating.xlarge}"
@@ -48023,6 +48085,7 @@
48023
48085
  "key": "{shadow.inset}",
48024
48086
  "$value": "inset 0px 1px 0px 0px #0104093d",
48025
48087
  "$type": "shadow",
48088
+ "$description": "Inset shadow for recessed elements",
48026
48089
  "$extensions": {
48027
48090
  "org.primer.figma": {
48028
48091
  "collection": "mode",
@@ -48043,6 +48106,10 @@
48043
48106
  "isSource": true,
48044
48107
  "$type": "shadow"
48045
48108
  }
48109
+ },
48110
+ "org.primer.llm": {
48111
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48112
+ "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."
48046
48113
  }
48047
48114
  },
48048
48115
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48058,6 +48125,7 @@
48058
48125
  "inset": true
48059
48126
  },
48060
48127
  "$type": "shadow",
48128
+ "$description": "Inset shadow for recessed elements",
48061
48129
  "$extensions": {
48062
48130
  "org.primer.figma": {
48063
48131
  "collection": "mode",
@@ -48078,6 +48146,10 @@
48078
48146
  "isSource": true,
48079
48147
  "$type": "shadow"
48080
48148
  }
48149
+ },
48150
+ "org.primer.llm": {
48151
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48152
+ "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."
48081
48153
  }
48082
48154
  },
48083
48155
  "key": "{shadow.inset}"
@@ -48090,6 +48162,7 @@
48090
48162
  "key": "{shadow.resting.medium}",
48091
48163
  "$value": "0px 1px 1px 0px #01040966, 0px 3px 6px 0px #010409cc",
48092
48164
  "$type": "shadow",
48165
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48093
48166
  "$extensions": {
48094
48167
  "org.primer.figma": {
48095
48168
  "collection": "mode",
@@ -48119,6 +48192,10 @@
48119
48192
  "isSource": true,
48120
48193
  "$type": "shadow"
48121
48194
  }
48195
+ },
48196
+ "org.primer.llm": {
48197
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48198
+ "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."
48122
48199
  }
48123
48200
  },
48124
48201
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48143,6 +48220,7 @@
48143
48220
  }
48144
48221
  ],
48145
48222
  "$type": "shadow",
48223
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48146
48224
  "$extensions": {
48147
48225
  "org.primer.figma": {
48148
48226
  "collection": "mode",
@@ -48172,6 +48250,10 @@
48172
48250
  "isSource": true,
48173
48251
  "$type": "shadow"
48174
48252
  }
48253
+ },
48254
+ "org.primer.llm": {
48255
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48256
+ "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."
48175
48257
  }
48176
48258
  },
48177
48259
  "key": "{shadow.resting.medium}"
@@ -48184,6 +48266,7 @@
48184
48266
  "key": "{shadow.resting.small}",
48185
48267
  "$value": "0px 1px 1px 0px #01040999, 0px 1px 3px 0px #01040999",
48186
48268
  "$type": "shadow",
48269
+ "$description": "Small resting shadow for buttons and interactive elements",
48187
48270
  "$extensions": {
48188
48271
  "org.primer.figma": {
48189
48272
  "collection": "mode",
@@ -48215,6 +48298,10 @@
48215
48298
  "isSource": true,
48216
48299
  "$type": "shadow"
48217
48300
  }
48301
+ },
48302
+ "org.primer.llm": {
48303
+ "usage": ["button", "interactive-card", "clickable-element"],
48304
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48218
48305
  }
48219
48306
  },
48220
48307
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48241,6 +48328,7 @@
48241
48328
  }
48242
48329
  ],
48243
48330
  "$type": "shadow",
48331
+ "$description": "Small resting shadow for buttons and interactive elements",
48244
48332
  "$extensions": {
48245
48333
  "org.primer.figma": {
48246
48334
  "collection": "mode",
@@ -48272,6 +48360,10 @@
48272
48360
  "isSource": true,
48273
48361
  "$type": "shadow"
48274
48362
  }
48363
+ },
48364
+ "org.primer.llm": {
48365
+ "usage": ["button", "interactive-card", "clickable-element"],
48366
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48275
48367
  }
48276
48368
  },
48277
48369
  "key": "{shadow.resting.small}"
@@ -48284,6 +48376,7 @@
48284
48376
  "key": "{shadow.resting.xsmall}",
48285
48377
  "$value": "0px 1px 1px 0px #010409cc",
48286
48378
  "$type": "shadow",
48379
+ "$description": "Extra small resting shadow for minimal elevation",
48287
48380
  "$extensions": {
48288
48381
  "org.primer.figma": {
48289
48382
  "collection": "mode",
@@ -48304,6 +48397,10 @@
48304
48397
  "isSource": true,
48305
48398
  "$type": "shadow"
48306
48399
  }
48400
+ },
48401
+ "org.primer.llm": {
48402
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48403
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48307
48404
  }
48308
48405
  },
48309
48406
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48319,6 +48416,7 @@
48319
48416
  "inset": false
48320
48417
  },
48321
48418
  "$type": "shadow",
48419
+ "$description": "Extra small resting shadow for minimal elevation",
48322
48420
  "$extensions": {
48323
48421
  "org.primer.figma": {
48324
48422
  "collection": "mode",
@@ -48339,6 +48437,10 @@
48339
48437
  "isSource": true,
48340
48438
  "$type": "shadow"
48341
48439
  }
48440
+ },
48441
+ "org.primer.llm": {
48442
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48443
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48342
48444
  }
48343
48445
  },
48344
48446
  "key": "{shadow.resting.xsmall}"