@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
@@ -546,6 +546,10 @@
546
546
  },
547
547
  "org.primer.overrides": {
548
548
  "dark": "#ffffff"
549
+ },
550
+ "org.primer.llm": {
551
+ "doNotUse": true,
552
+ "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."
549
553
  }
550
554
  },
551
555
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -562,6 +566,10 @@
562
566
  },
563
567
  "org.primer.overrides": {
564
568
  "dark": "{base.color.neutral.0}"
569
+ },
570
+ "org.primer.llm": {
571
+ "doNotUse": true,
572
+ "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."
565
573
  }
566
574
  },
567
575
  "key": "{bgColor.black}"
@@ -2436,6 +2444,10 @@
2436
2444
  },
2437
2445
  "org.primer.overrides": {
2438
2446
  "dark": "#010409"
2447
+ },
2448
+ "org.primer.llm": {
2449
+ "doNotUse": true,
2450
+ "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."
2439
2451
  }
2440
2452
  },
2441
2453
  "filePath": "src/tokens/functional/color/bgColor.json5",
@@ -2452,6 +2464,10 @@
2452
2464
  },
2453
2465
  "org.primer.overrides": {
2454
2466
  "dark": "{base.color.neutral.13}"
2467
+ },
2468
+ "org.primer.llm": {
2469
+ "doNotUse": true,
2470
+ "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
2471
  }
2456
2472
  },
2457
2473
  "key": "{bgColor.white}"
@@ -2462,7 +2478,7 @@
2462
2478
  },
2463
2479
  "border-accent-emphasis": {
2464
2480
  "key": "{border.accent.emphasis}",
2465
- "$value": "0.00390625rem,0.0625px solid #0349b4",
2481
+ "$value": "0.0625rem,1px solid #0349b4",
2466
2482
  "$type": "border",
2467
2483
  "filePath": "src/tokens/functional/border/border.json5",
2468
2484
  "isSource": true,
@@ -2481,7 +2497,7 @@
2481
2497
  },
2482
2498
  "border-accent-muted": {
2483
2499
  "key": "{border.accent.muted}",
2484
- "$value": "0.00390625rem,0.0625px solid #368cf9",
2500
+ "$value": "0.0625rem,1px solid #368cf9",
2485
2501
  "$type": "border",
2486
2502
  "filePath": "src/tokens/functional/border/border.json5",
2487
2503
  "isSource": true,
@@ -2500,7 +2516,7 @@
2500
2516
  },
2501
2517
  "border-attention-emphasis": {
2502
2518
  "key": "{border.attention.emphasis}",
2503
- "$value": "0.00390625rem,0.0625px solid #744500",
2519
+ "$value": "0.0625rem,1px solid #744500",
2504
2520
  "$type": "border",
2505
2521
  "filePath": "src/tokens/functional/border/border.json5",
2506
2522
  "isSource": true,
@@ -2519,7 +2535,7 @@
2519
2535
  },
2520
2536
  "border-attention-muted": {
2521
2537
  "key": "{border.attention.muted}",
2522
- "$value": "0.00390625rem,0.0625px solid #b58407",
2538
+ "$value": "0.0625rem,1px solid #b58407",
2523
2539
  "$type": "border",
2524
2540
  "filePath": "src/tokens/functional/border/border.json5",
2525
2541
  "isSource": true,
@@ -2538,7 +2554,7 @@
2538
2554
  },
2539
2555
  "border-closed-emphasis": {
2540
2556
  "key": "{border.closed.emphasis}",
2541
- "$value": "0.00390625rem,0.0625px solid #a0111f",
2557
+ "$value": "0.0625rem,1px solid #a0111f",
2542
2558
  "$type": "border",
2543
2559
  "filePath": "src/tokens/functional/border/border.json5",
2544
2560
  "isSource": true,
@@ -2553,7 +2569,7 @@
2553
2569
  },
2554
2570
  "border-closed-muted": {
2555
2571
  "key": "{border.closed.muted}",
2556
- "$value": "0.00390625rem,0.0625px solid #ee5a5d",
2572
+ "$value": "0.0625rem,1px solid #ee5a5d",
2557
2573
  "$type": "border",
2558
2574
  "filePath": "src/tokens/functional/border/border.json5",
2559
2575
  "isSource": true,
@@ -2568,7 +2584,7 @@
2568
2584
  },
2569
2585
  "border-danger-emphasis": {
2570
2586
  "key": "{border.danger.emphasis}",
2571
- "$value": "0.00390625rem,0.0625px solid #a0111f",
2587
+ "$value": "0.0625rem,1px solid #a0111f",
2572
2588
  "$type": "border",
2573
2589
  "filePath": "src/tokens/functional/border/border.json5",
2574
2590
  "isSource": true,
@@ -2587,7 +2603,7 @@
2587
2603
  },
2588
2604
  "border-danger-muted": {
2589
2605
  "key": "{border.danger.muted}",
2590
- "$value": "0.00390625rem,0.0625px solid #ee5a5d",
2606
+ "$value": "0.0625rem,1px solid #ee5a5d",
2591
2607
  "$type": "border",
2592
2608
  "filePath": "src/tokens/functional/border/border.json5",
2593
2609
  "isSource": true,
@@ -2606,7 +2622,7 @@
2606
2622
  },
2607
2623
  "border-default": {
2608
2624
  "key": "{border.default}",
2609
- "$value": "0.00390625rem,0.0625px solid #454c54",
2625
+ "$value": "0.0625rem,1px solid #454c54",
2610
2626
  "$type": "border",
2611
2627
  "filePath": "src/tokens/functional/border/border.json5",
2612
2628
  "isSource": true,
@@ -2625,7 +2641,7 @@
2625
2641
  },
2626
2642
  "border-disabled": {
2627
2643
  "key": "{border.disabled}",
2628
- "$value": "0.00390625rem,0.0625px solid #59636e1f",
2644
+ "$value": "0.0625rem,1px solid #59636e1f",
2629
2645
  "$type": "border",
2630
2646
  "filePath": "src/tokens/functional/border/border.json5",
2631
2647
  "isSource": true,
@@ -2644,7 +2660,7 @@
2644
2660
  },
2645
2661
  "border-done-emphasis": {
2646
2662
  "key": "{border.done.emphasis}",
2647
- "$value": "0.00390625rem,0.0625px solid #622cbc",
2663
+ "$value": "0.0625rem,1px solid #622cbc",
2648
2664
  "$type": "border",
2649
2665
  "filePath": "src/tokens/functional/border/border.json5",
2650
2666
  "isSource": true,
@@ -2663,7 +2679,7 @@
2663
2679
  },
2664
2680
  "border-done-muted": {
2665
2681
  "key": "{border.done.muted}",
2666
- "$value": "0.00390625rem,0.0625px solid #a371f7",
2682
+ "$value": "0.0625rem,1px solid #a371f7",
2667
2683
  "$type": "border",
2668
2684
  "filePath": "src/tokens/functional/border/border.json5",
2669
2685
  "isSource": true,
@@ -2682,7 +2698,7 @@
2682
2698
  },
2683
2699
  "border-emphasis": {
2684
2700
  "key": "{border.emphasis}",
2685
- "$value": "0.00390625rem,0.0625px solid #454c54",
2701
+ "$value": "0.0625rem,1px solid #454c54",
2686
2702
  "$type": "border",
2687
2703
  "filePath": "src/tokens/functional/border/border.json5",
2688
2704
  "isSource": true,
@@ -2701,7 +2717,7 @@
2701
2717
  },
2702
2718
  "border-muted": {
2703
2719
  "key": "{border.muted}",
2704
- "$value": "0.00390625rem,0.0625px solid #454c54",
2720
+ "$value": "0.0625rem,1px solid #454c54",
2705
2721
  "$type": "border",
2706
2722
  "filePath": "src/tokens/functional/border/border.json5",
2707
2723
  "isSource": true,
@@ -2720,7 +2736,7 @@
2720
2736
  },
2721
2737
  "border-neutral-emphasis": {
2722
2738
  "key": "{border.neutral.emphasis}",
2723
- "$value": "0.00390625rem,0.0625px solid #59636e",
2739
+ "$value": "0.0625rem,1px solid #59636e",
2724
2740
  "$type": "border",
2725
2741
  "filePath": "src/tokens/functional/border/border.json5",
2726
2742
  "isSource": true,
@@ -2739,7 +2755,7 @@
2739
2755
  },
2740
2756
  "border-neutral-muted": {
2741
2757
  "key": "{border.neutral.muted}",
2742
- "$value": "0.00390625rem,0.0625px solid #454c54",
2758
+ "$value": "0.0625rem,1px solid #454c54",
2743
2759
  "$type": "border",
2744
2760
  "filePath": "src/tokens/functional/border/border.json5",
2745
2761
  "isSource": true,
@@ -2758,7 +2774,7 @@
2758
2774
  },
2759
2775
  "border-open-emphasis": {
2760
2776
  "key": "{border.open.emphasis}",
2761
- "$value": "0.00390625rem,0.0625px solid #055d20",
2777
+ "$value": "0.0625rem,1px solid #055d20",
2762
2778
  "$type": "border",
2763
2779
  "filePath": "src/tokens/functional/border/border.json5",
2764
2780
  "isSource": true,
@@ -2773,7 +2789,7 @@
2773
2789
  },
2774
2790
  "border-open-muted": {
2775
2791
  "key": "{border.open.muted}",
2776
- "$value": "0.00390625rem,0.0625px solid #26a148",
2792
+ "$value": "0.0625rem,1px solid #26a148",
2777
2793
  "$type": "border",
2778
2794
  "filePath": "src/tokens/functional/border/border.json5",
2779
2795
  "isSource": true,
@@ -2788,7 +2804,7 @@
2788
2804
  },
2789
2805
  "border-severe-emphasis": {
2790
2806
  "key": "{border.severe.emphasis}",
2791
- "$value": "0.00390625rem,0.0625px solid #873800",
2807
+ "$value": "0.0625rem,1px solid #873800",
2792
2808
  "$type": "border",
2793
2809
  "filePath": "src/tokens/functional/border/border.json5",
2794
2810
  "isSource": true,
@@ -2807,7 +2823,7 @@
2807
2823
  },
2808
2824
  "border-severe-muted": {
2809
2825
  "key": "{border.severe.muted}",
2810
- "$value": "0.00390625rem,0.0625px solid #dc6d1a",
2826
+ "$value": "0.0625rem,1px solid #dc6d1a",
2811
2827
  "$type": "border",
2812
2828
  "filePath": "src/tokens/functional/border/border.json5",
2813
2829
  "isSource": true,
@@ -2826,7 +2842,7 @@
2826
2842
  },
2827
2843
  "border-sponsors-emphasis": {
2828
2844
  "key": "{border.sponsors.emphasis}",
2829
- "$value": "0.00390625rem,0.0625px solid #971368",
2845
+ "$value": "0.0625rem,1px solid #971368",
2830
2846
  "$type": "border",
2831
2847
  "filePath": "src/tokens/functional/border/border.json5",
2832
2848
  "isSource": true,
@@ -2845,7 +2861,7 @@
2845
2861
  },
2846
2862
  "border-sponsors-muted": {
2847
2863
  "key": "{border.sponsors.muted}",
2848
- "$value": "0.00390625rem,0.0625px solid #ed4baf",
2864
+ "$value": "0.0625rem,1px solid #ed4baf",
2849
2865
  "$type": "border",
2850
2866
  "filePath": "src/tokens/functional/border/border.json5",
2851
2867
  "isSource": true,
@@ -2864,7 +2880,7 @@
2864
2880
  },
2865
2881
  "border-success-emphasis": {
2866
2882
  "key": "{border.success.emphasis}",
2867
- "$value": "0.00390625rem,0.0625px solid #055d20",
2883
+ "$value": "0.0625rem,1px solid #055d20",
2868
2884
  "$type": "border",
2869
2885
  "filePath": "src/tokens/functional/border/border.json5",
2870
2886
  "isSource": true,
@@ -2883,7 +2899,7 @@
2883
2899
  },
2884
2900
  "border-success-muted": {
2885
2901
  "key": "{border.success.muted}",
2886
- "$value": "0.00390625rem,0.0625px solid #26a148",
2902
+ "$value": "0.0625rem,1px solid #26a148",
2887
2903
  "$type": "border",
2888
2904
  "filePath": "src/tokens/functional/border/border.json5",
2889
2905
  "isSource": true,
@@ -2902,7 +2918,7 @@
2902
2918
  },
2903
2919
  "border-transparent": {
2904
2920
  "key": "{border.transparent}",
2905
- "$value": "0.00390625rem,0.0625px solid #ffffff00",
2921
+ "$value": "0.0625rem,1px solid #ffffff00",
2906
2922
  "$type": "border",
2907
2923
  "filePath": "src/tokens/functional/border/border.json5",
2908
2924
  "isSource": true,
@@ -2921,7 +2937,7 @@
2921
2937
  },
2922
2938
  "border-upsell-emphasis": {
2923
2939
  "key": "{border.upsell.emphasis}",
2924
- "$value": "0.00390625rem,0.0625px solid #622cbc",
2940
+ "$value": "0.0625rem,1px solid #622cbc",
2925
2941
  "$type": "border",
2926
2942
  "filePath": "src/tokens/functional/border/border.json5",
2927
2943
  "isSource": true,
@@ -2940,7 +2956,7 @@
2940
2956
  },
2941
2957
  "border-upsell-muted": {
2942
2958
  "key": "{border.upsell.muted}",
2943
- "$value": "0.00390625rem,0.0625px solid #a371f7",
2959
+ "$value": "0.0625rem,1px solid #a371f7",
2944
2960
  "$type": "border",
2945
2961
  "filePath": "src/tokens/functional/border/border.json5",
2946
2962
  "isSource": true,
@@ -37216,6 +37232,10 @@
37216
37232
  },
37217
37233
  "org.primer.overrides": {
37218
37234
  "dark": "#ffffff"
37235
+ },
37236
+ "org.primer.llm": {
37237
+ "doNotUse": true,
37238
+ "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."
37219
37239
  }
37220
37240
  },
37221
37241
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -37232,6 +37252,10 @@
37232
37252
  },
37233
37253
  "org.primer.overrides": {
37234
37254
  "dark": "{base.color.neutral.0}"
37255
+ },
37256
+ "org.primer.llm": {
37257
+ "doNotUse": true,
37258
+ "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."
37235
37259
  }
37236
37260
  },
37237
37261
  "key": "{fgColor.black}"
@@ -38205,6 +38229,10 @@
38205
38229
  },
38206
38230
  "org.primer.overrides": {
38207
38231
  "dark": "#010409"
38232
+ },
38233
+ "org.primer.llm": {
38234
+ "doNotUse": true,
38235
+ "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."
38208
38236
  }
38209
38237
  },
38210
38238
  "filePath": "src/tokens/functional/color/fgColor.json5",
@@ -38221,6 +38249,10 @@
38221
38249
  },
38222
38250
  "org.primer.overrides": {
38223
38251
  "dark": "{base.color.neutral.13}"
38252
+ },
38253
+ "org.primer.llm": {
38254
+ "doNotUse": true,
38255
+ "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."
38224
38256
  }
38225
38257
  },
38226
38258
  "key": "{fgColor.white}"
@@ -47503,6 +47535,7 @@
47503
47535
  "key": "{shadow.floating.legacy}",
47504
47536
  "$value": "0px 6px 12px -3px #25292e0a, 0px 6px 18px 0px #25292e1f",
47505
47537
  "$type": "shadow",
47538
+ "$description": "Legacy floating shadow for backward compatibility",
47506
47539
  "$extensions": {
47507
47540
  "org.primer.figma": {},
47508
47541
  "org.primer.overrides": {
@@ -47529,6 +47562,10 @@
47529
47562
  "isSource": true,
47530
47563
  "$type": "shadow"
47531
47564
  }
47565
+ },
47566
+ "org.primer.llm": {
47567
+ "usage": ["legacy-component", "backward-compatibility"],
47568
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47532
47569
  }
47533
47570
  },
47534
47571
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47553,6 +47590,7 @@
47553
47590
  }
47554
47591
  ],
47555
47592
  "$type": "shadow",
47593
+ "$description": "Legacy floating shadow for backward compatibility",
47556
47594
  "$extensions": {
47557
47595
  "org.primer.figma": {},
47558
47596
  "org.primer.overrides": {
@@ -47579,6 +47617,10 @@
47579
47617
  "isSource": true,
47580
47618
  "$type": "shadow"
47581
47619
  }
47620
+ },
47621
+ "org.primer.llm": {
47622
+ "usage": ["legacy-component", "backward-compatibility"],
47623
+ "rules": "DEPRECATED: Use shadow-floating-small instead. Only use for maintaining backward compatibility with existing implementations."
47582
47624
  }
47583
47625
  },
47584
47626
  "key": "{shadow.floating.legacy}"
@@ -47591,6 +47633,7 @@
47591
47633
  "key": "{shadow.floating.medium}",
47592
47634
  "$value": "0px 0px 0px 1px #454c54, 0px 8px 16px -4px #25292e14, 0px 4px 32px -4px #25292e14, 0px 24px 48px -12px #25292e14, 0px 48px 96px -24px #25292e14",
47593
47635
  "$type": "shadow",
47636
+ "$description": "Medium floating shadow for popovers and action menus",
47594
47637
  "$extensions": {
47595
47638
  "org.primer.figma": {
47596
47639
  "collection": "mode",
@@ -47644,6 +47687,10 @@
47644
47687
  "isSource": true,
47645
47688
  "$type": "shadow"
47646
47689
  }
47690
+ },
47691
+ "org.primer.llm": {
47692
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47693
+ "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."
47647
47694
  }
47648
47695
  },
47649
47696
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47692,6 +47739,7 @@
47692
47739
  }
47693
47740
  ],
47694
47741
  "$type": "shadow",
47742
+ "$description": "Medium floating shadow for popovers and action menus",
47695
47743
  "$extensions": {
47696
47744
  "org.primer.figma": {
47697
47745
  "collection": "mode",
@@ -47745,6 +47793,10 @@
47745
47793
  "isSource": true,
47746
47794
  "$type": "shadow"
47747
47795
  }
47796
+ },
47797
+ "org.primer.llm": {
47798
+ "usage": ["popover", "action-menu", "select-panel", "autocomplete"],
47799
+ "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."
47748
47800
  }
47749
47801
  },
47750
47802
  "key": "{shadow.floating.medium}"
@@ -47885,6 +47937,7 @@
47885
47937
  "key": "{shadow.floating.xlarge}",
47886
47938
  "$value": "0px 0px 0px 1px #454c54, 0px 56px 112px 0px #25292e52",
47887
47939
  "$type": "shadow",
47940
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47888
47941
  "$extensions": {
47889
47942
  "org.primer.figma": {
47890
47943
  "collection": "mode",
@@ -47914,6 +47967,10 @@
47914
47967
  "isSource": true,
47915
47968
  "$type": "shadow"
47916
47969
  }
47970
+ },
47971
+ "org.primer.llm": {
47972
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
47973
+ "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."
47917
47974
  }
47918
47975
  },
47919
47976
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -47938,6 +47995,7 @@
47938
47995
  }
47939
47996
  ],
47940
47997
  "$type": "shadow",
47998
+ "$description": "Extra large floating shadow for full-screen overlays and sheets",
47941
47999
  "$extensions": {
47942
48000
  "org.primer.figma": {
47943
48001
  "collection": "mode",
@@ -47967,6 +48025,10 @@
47967
48025
  "isSource": true,
47968
48026
  "$type": "shadow"
47969
48027
  }
48028
+ },
48029
+ "org.primer.llm": {
48030
+ "usage": ["full-screen-overlay", "side-sheet", "drawer", "large-modal"],
48031
+ "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."
47970
48032
  }
47971
48033
  },
47972
48034
  "key": "{shadow.floating.xlarge}"
@@ -47979,6 +48041,7 @@
47979
48041
  "key": "{shadow.inset}",
47980
48042
  "$value": "inset 0px 1px 0px 0px #0104090a",
47981
48043
  "$type": "shadow",
48044
+ "$description": "Inset shadow for recessed elements",
47982
48045
  "$extensions": {
47983
48046
  "org.primer.figma": {
47984
48047
  "collection": "mode",
@@ -47999,6 +48062,10 @@
47999
48062
  "isSource": true,
48000
48063
  "$type": "shadow"
48001
48064
  }
48065
+ },
48066
+ "org.primer.llm": {
48067
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48068
+ "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."
48002
48069
  }
48003
48070
  },
48004
48071
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48014,6 +48081,7 @@
48014
48081
  "inset": true
48015
48082
  },
48016
48083
  "$type": "shadow",
48084
+ "$description": "Inset shadow for recessed elements",
48017
48085
  "$extensions": {
48018
48086
  "org.primer.figma": {
48019
48087
  "collection": "mode",
@@ -48034,6 +48102,10 @@
48034
48102
  "isSource": true,
48035
48103
  "$type": "shadow"
48036
48104
  }
48105
+ },
48106
+ "org.primer.llm": {
48107
+ "usage": ["input-field", "pressed-button", "recessed-area", "well"],
48108
+ "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."
48037
48109
  }
48038
48110
  },
48039
48111
  "key": "{shadow.inset}"
@@ -48046,6 +48118,7 @@
48046
48118
  "key": "{shadow.resting.medium}",
48047
48119
  "$value": "0px 1px 1px 0px #25292e1a, 0px 3px 6px 0px #25292e1f",
48048
48120
  "$type": "shadow",
48121
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48049
48122
  "$extensions": {
48050
48123
  "org.primer.figma": {
48051
48124
  "collection": "mode",
@@ -48075,6 +48148,10 @@
48075
48148
  "isSource": true,
48076
48149
  "$type": "shadow"
48077
48150
  }
48151
+ },
48152
+ "org.primer.llm": {
48153
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48154
+ "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."
48078
48155
  }
48079
48156
  },
48080
48157
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48099,6 +48176,7 @@
48099
48176
  }
48100
48177
  ],
48101
48178
  "$type": "shadow",
48179
+ "$description": "Medium resting shadow for cards and elevated surfaces",
48102
48180
  "$extensions": {
48103
48181
  "org.primer.figma": {
48104
48182
  "collection": "mode",
@@ -48128,6 +48206,10 @@
48128
48206
  "isSource": true,
48129
48207
  "$type": "shadow"
48130
48208
  }
48209
+ },
48210
+ "org.primer.llm": {
48211
+ "usage": ["card", "panel", "elevated-surface", "elevated-sidebar"],
48212
+ "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."
48131
48213
  }
48132
48214
  },
48133
48215
  "key": "{shadow.resting.medium}"
@@ -48138,8 +48220,9 @@
48138
48220
  },
48139
48221
  "shadow-resting-small": {
48140
48222
  "key": "{shadow.resting.small}",
48141
- "$value": "0px 1px 1px 0px #0104090f, 0px 1px 3px 0px #0104090f",
48223
+ "$value": "0px 1px 1px 0px #0104090a, 0px 1px 2px 0px #01040908",
48142
48224
  "$type": "shadow",
48225
+ "$description": "Small resting shadow for buttons and interactive elements",
48143
48226
  "$extensions": {
48144
48227
  "org.primer.figma": {
48145
48228
  "collection": "mode",
@@ -48171,6 +48254,10 @@
48171
48254
  "isSource": true,
48172
48255
  "$type": "shadow"
48173
48256
  }
48257
+ },
48258
+ "org.primer.llm": {
48259
+ "usage": ["button", "interactive-card", "clickable-element"],
48260
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48174
48261
  }
48175
48262
  },
48176
48263
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48179,7 +48266,7 @@
48179
48266
  "$value": [
48180
48267
  {
48181
48268
  "color": "{base.color.neutral.13}",
48182
- "alpha": 0.06,
48269
+ "alpha": 0.04,
48183
48270
  "offsetX": "0px",
48184
48271
  "offsetY": "1px",
48185
48272
  "blur": "1px",
@@ -48188,15 +48275,16 @@
48188
48275
  },
48189
48276
  {
48190
48277
  "color": "{base.color.neutral.13}",
48191
- "alpha": 0.06,
48278
+ "alpha": 0.03,
48192
48279
  "offsetX": "0px",
48193
48280
  "offsetY": "1px",
48194
- "blur": "3px",
48281
+ "blur": "2px",
48195
48282
  "spread": "0px",
48196
48283
  "inset": false
48197
48284
  }
48198
48285
  ],
48199
48286
  "$type": "shadow",
48287
+ "$description": "Small resting shadow for buttons and interactive elements",
48200
48288
  "$extensions": {
48201
48289
  "org.primer.figma": {
48202
48290
  "collection": "mode",
@@ -48228,6 +48316,10 @@
48228
48316
  "isSource": true,
48229
48317
  "$type": "shadow"
48230
48318
  }
48319
+ },
48320
+ "org.primer.llm": {
48321
+ "usage": ["button", "interactive-card", "clickable-element"],
48322
+ "rules": "Use for buttons and small interactive elements at rest. Provides subtle depth and clickable affordance. RECOMMENDED for default button shadows."
48231
48323
  }
48232
48324
  },
48233
48325
  "key": "{shadow.resting.small}"
@@ -48238,8 +48330,9 @@
48238
48330
  },
48239
48331
  "shadow-resting-xsmall": {
48240
48332
  "key": "{shadow.resting.xsmall}",
48241
- "$value": "0px 1px 1px 0px #0104090f",
48333
+ "$value": "0px 1px 1px 0px #0104090d",
48242
48334
  "$type": "shadow",
48335
+ "$description": "Extra small resting shadow for minimal elevation",
48243
48336
  "$extensions": {
48244
48337
  "org.primer.figma": {
48245
48338
  "collection": "mode",
@@ -48260,6 +48353,10 @@
48260
48353
  "isSource": true,
48261
48354
  "$type": "shadow"
48262
48355
  }
48356
+ },
48357
+ "org.primer.llm": {
48358
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48359
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48263
48360
  }
48264
48361
  },
48265
48362
  "filePath": "src/tokens/functional/shadow/shadow.json5",
@@ -48267,7 +48364,7 @@
48267
48364
  "original": {
48268
48365
  "$value": {
48269
48366
  "color": "{base.color.neutral.13}",
48270
- "alpha": 0.06,
48367
+ "alpha": 0.05,
48271
48368
  "offsetX": "0px",
48272
48369
  "offsetY": "1px",
48273
48370
  "blur": "1px",
@@ -48275,6 +48372,7 @@
48275
48372
  "inset": false
48276
48373
  },
48277
48374
  "$type": "shadow",
48375
+ "$description": "Extra small resting shadow for minimal elevation",
48278
48376
  "$extensions": {
48279
48377
  "org.primer.figma": {
48280
48378
  "collection": "mode",
@@ -48295,6 +48393,10 @@
48295
48393
  "isSource": true,
48296
48394
  "$type": "shadow"
48297
48395
  }
48396
+ },
48397
+ "org.primer.llm": {
48398
+ "usage": ["badge", "chip", "small-card", "subtle-elevation"],
48399
+ "rules": "Use for very subtle elevation on small elements. Provides minimal lift from surface. Do NOT use for interactive elements needing clear affordance."
48298
48400
  }
48299
48401
  },
48300
48402
  "key": "{shadow.resting.xsmall}"