@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.
- package/DESIGN_TOKENS_GUIDE.md +185 -0
- package/DESIGN_TOKENS_SPEC.md +565 -0
- package/dist/build/filters/hasLlmExtensions.d.ts +7 -0
- package/dist/build/filters/hasLlmExtensions.js +11 -0
- package/dist/build/filters/index.d.ts +1 -0
- package/dist/build/filters/index.js +1 -0
- package/dist/build/formats/index.d.ts +1 -0
- package/dist/build/formats/index.js +1 -0
- package/dist/build/formats/markdownLlmGuidelines.d.ts +11 -0
- package/dist/build/formats/markdownLlmGuidelines.js +1168 -0
- package/dist/build/platforms/index.d.ts +1 -0
- package/dist/build/platforms/index.js +1 -0
- package/dist/build/platforms/llmGuidelines.d.ts +2 -0
- package/dist/build/platforms/llmGuidelines.js +17 -0
- package/dist/build/preprocessors/inheritGroupProperties.d.ts +7 -0
- package/dist/build/preprocessors/inheritGroupProperties.js +70 -0
- package/dist/build/primerStyleDictionary.js +7 -1
- package/dist/build/schemas/borderToken.d.ts +22 -2
- package/dist/build/schemas/borderToken.js +6 -0
- package/dist/build/schemas/colorToken.d.ts +4 -0
- package/dist/build/schemas/colorToken.js +2 -0
- package/dist/build/schemas/cubicBezierToken.d.ts +6 -0
- package/dist/build/schemas/cubicBezierToken.js +10 -2
- package/dist/build/schemas/designToken.d.ts +1 -1
- package/dist/build/schemas/designToken.js +113 -21
- package/dist/build/schemas/dimensionToken.d.ts +14 -3
- package/dist/build/schemas/dimensionToken.js +6 -2
- package/dist/build/schemas/dimensionValue.d.ts +24 -1
- package/dist/build/schemas/dimensionValue.js +20 -1
- package/dist/build/schemas/durationToken.d.ts +13 -1
- package/dist/build/schemas/durationToken.js +6 -0
- package/dist/build/schemas/durationValue.d.ts +11 -1
- package/dist/build/schemas/durationValue.js +13 -3
- package/dist/build/schemas/fontFamilyToken.d.ts +4 -0
- package/dist/build/schemas/fontFamilyToken.js +2 -0
- package/dist/build/schemas/fontWeightToken.d.ts +4 -0
- package/dist/build/schemas/fontWeightToken.js +2 -0
- package/dist/build/schemas/gradientToken.d.ts +4 -0
- package/dist/build/schemas/gradientToken.js +2 -0
- package/dist/build/schemas/llmExtension.d.ts +9 -0
- package/dist/build/schemas/llmExtension.js +11 -0
- package/dist/build/schemas/numberToken.d.ts +4 -0
- package/dist/build/schemas/numberToken.js +2 -0
- package/dist/build/schemas/shadowToken.d.ts +676 -84
- package/dist/build/schemas/shadowToken.js +2 -0
- package/dist/build/schemas/stringToken.d.ts +6 -0
- package/dist/build/schemas/stringToken.js +6 -0
- package/dist/build/schemas/transitionToken.d.ts +20 -2
- package/dist/build/schemas/transitionToken.js +6 -0
- package/dist/build/schemas/typographyToken.d.ts +38 -4
- package/dist/build/schemas/typographyToken.js +6 -0
- package/dist/build/schemas/validTokenType.d.ts +5 -1
- package/dist/build/schemas/validTokenType.js +71 -17
- package/dist/build/schemas/viewportRangeToken.d.ts +6 -0
- package/dist/build/schemas/viewportRangeToken.js +6 -0
- package/dist/build/transformers/dimensionToPixelUnitless.d.ts +3 -2
- package/dist/build/transformers/dimensionToPixelUnitless.js +22 -26
- package/dist/build/transformers/dimensionToRem.d.ts +2 -1
- package/dist/build/transformers/dimensionToRem.js +21 -22
- package/dist/build/transformers/dimensionToRemPxArray.d.ts +2 -1
- package/dist/build/transformers/dimensionToRemPxArray.js +21 -22
- package/dist/build/transformers/durationToCss.d.ts +2 -1
- package/dist/build/transformers/durationToCss.js +18 -11
- package/dist/build/transformers/utilities/parseDimension.d.ts +12 -0
- package/dist/build/transformers/utilities/parseDimension.js +31 -0
- package/dist/build/types/dimensionTokenValue.d.ts +9 -0
- package/dist/css/base/motion/motion.css +5 -4
- package/dist/css/functional/size/border.css +9 -14
- package/dist/css/functional/size/radius.css +7 -0
- package/dist/css/functional/size/size-coarse.css +3 -3
- package/dist/css/functional/size/size-fine.css +3 -3
- package/dist/css/functional/size/viewport.css +1 -1
- package/dist/css/functional/themes/dark-colorblind-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-colorblind.css +194 -190
- package/dist/css/functional/themes/dark-dimmed-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-dimmed.css +194 -190
- package/dist/css/functional/themes/dark-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-tritanopia-high-contrast.css +194 -190
- package/dist/css/functional/themes/dark-tritanopia.css +194 -190
- package/dist/css/functional/themes/dark.css +194 -190
- package/dist/css/functional/themes/light-colorblind-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-colorblind.css +194 -190
- package/dist/css/functional/themes/light-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-tritanopia-high-contrast.css +194 -190
- package/dist/css/functional/themes/light-tritanopia.css +194 -190
- package/dist/css/functional/themes/light.css +194 -190
- package/dist/css/functional/typography/typography.css +4 -4
- package/dist/css/primitives.css +5 -0
- package/dist/docs/base/motion/motion.json +181 -32
- package/dist/docs/base/size/size.json +76 -19
- package/dist/docs/base/typography/typography.json +24 -6
- package/dist/docs/functional/size/border.json +62 -182
- package/dist/docs/functional/size/breakpoints.json +24 -6
- package/dist/docs/functional/size/radius.json +221 -0
- package/dist/docs/functional/size/size-coarse.json +45 -3
- package/dist/docs/functional/size/size-fine.json +45 -3
- package/dist/docs/functional/size/size.json +60 -15
- package/dist/docs/functional/size/viewport.json +2 -2
- package/dist/docs/functional/themes/dark-colorblind-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-colorblind.json +1043 -97
- package/dist/docs/functional/themes/dark-dimmed-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-dimmed.json +1081 -135
- package/dist/docs/functional/themes/dark-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-tritanopia-high-contrast.json +1043 -97
- package/dist/docs/functional/themes/dark-tritanopia.json +1043 -97
- package/dist/docs/functional/themes/dark.json +1043 -97
- package/dist/docs/functional/themes/light-colorblind-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-colorblind.json +1049 -103
- package/dist/docs/functional/themes/light-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-tritanopia-high-contrast.json +1049 -103
- package/dist/docs/functional/themes/light-tritanopia.json +1049 -103
- package/dist/docs/functional/themes/light.json +1049 -103
- package/dist/docs/functional/typography/typography.json +180 -10
- package/dist/fallbacks/base/motion/motion.json +49 -12
- package/dist/fallbacks/functional/size/border.json +0 -5
- package/dist/fallbacks/functional/size/radius.json +7 -0
- package/dist/fallbacks/functional/size/viewport.json +1 -1
- package/dist/figma/dimension/dimension.json +30 -20
- package/dist/figma/themes/dark-colorblind.json +85 -0
- package/dist/figma/themes/dark-dimmed.json +134 -49
- package/dist/figma/themes/dark-high-contrast.json +85 -0
- package/dist/figma/themes/dark-tritanopia.json +85 -0
- package/dist/figma/themes/dark.json +85 -0
- package/dist/figma/themes/light-colorblind.json +89 -4
- package/dist/figma/themes/light-high-contrast.json +89 -4
- package/dist/figma/themes/light-tritanopia.json +89 -4
- package/dist/figma/themes/light.json +89 -4
- package/dist/figma/typography/typography.json +44 -40
- package/dist/internalCss/dark-colorblind-high-contrast.css +208 -218
- package/dist/internalCss/dark-colorblind.css +208 -218
- package/dist/internalCss/dark-dimmed-high-contrast.css +208 -218
- package/dist/internalCss/dark-dimmed.css +208 -218
- package/dist/internalCss/dark-high-contrast.css +208 -218
- package/dist/internalCss/dark-tritanopia-high-contrast.css +208 -218
- package/dist/internalCss/dark-tritanopia.css +208 -218
- package/dist/internalCss/dark.css +208 -218
- package/dist/internalCss/light-colorblind-high-contrast.css +208 -218
- package/dist/internalCss/light-colorblind.css +208 -218
- package/dist/internalCss/light-high-contrast.css +208 -218
- package/dist/internalCss/light-tritanopia-high-contrast.css +208 -218
- package/dist/internalCss/light-tritanopia.css +208 -218
- package/dist/internalCss/light.css +208 -218
- package/dist/styleLint/base/motion/motion.json +181 -32
- package/dist/styleLint/base/size/size.json +76 -19
- package/dist/styleLint/base/typography/typography.json +30 -12
- package/dist/styleLint/functional/size/border.json +55 -175
- package/dist/styleLint/functional/size/breakpoints.json +24 -6
- package/dist/styleLint/functional/size/radius.json +221 -0
- package/dist/styleLint/functional/size/size-coarse.json +45 -3
- package/dist/styleLint/functional/size/size-fine.json +45 -3
- package/dist/styleLint/functional/size/size.json +111 -66
- package/dist/styleLint/functional/size/viewport.json +2 -2
- package/dist/styleLint/functional/themes/dark-colorblind-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-colorblind.json +975 -29
- package/dist/styleLint/functional/themes/dark-dimmed-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-dimmed.json +1013 -67
- package/dist/styleLint/functional/themes/dark-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-tritanopia-high-contrast.json +975 -29
- package/dist/styleLint/functional/themes/dark-tritanopia.json +975 -29
- package/dist/styleLint/functional/themes/dark.json +975 -29
- package/dist/styleLint/functional/themes/light-colorblind-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-colorblind.json +981 -35
- package/dist/styleLint/functional/themes/light-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-tritanopia-high-contrast.json +981 -35
- package/dist/styleLint/functional/themes/light-tritanopia.json +981 -35
- package/dist/styleLint/functional/themes/light.json +981 -35
- package/dist/styleLint/functional/typography/typography.json +196 -26
- package/package.json +6 -3
- package/src/tokens/base/motion/easing.json5 +39 -4
- package/src/tokens/base/motion/timing.json5 +12 -12
- package/src/tokens/base/size/size.json5 +19 -19
- package/src/tokens/base/typography/typography.json5 +6 -6
- package/src/tokens/functional/border/border.json5 +25 -0
- package/src/tokens/functional/color/bgColor.json5 +165 -0
- package/src/tokens/functional/color/borderColor.json5 +146 -0
- package/src/tokens/functional/color/control.json5 +24 -0
- package/src/tokens/functional/color/data-vis.json5 +7 -0
- package/src/tokens/functional/color/display.json5 +7 -0
- package/src/tokens/functional/color/fgColor.json5 +101 -1
- package/src/tokens/functional/color/focus.json5 +5 -0
- package/src/tokens/functional/color/selection.json5 +5 -0
- package/src/tokens/functional/color/syntax.json5 +14 -0
- package/src/tokens/functional/shadow/shadow.json5 +49 -4
- package/src/tokens/functional/size/border.json5 +22 -74
- package/src/tokens/functional/size/breakpoints.json5 +6 -6
- package/src/tokens/functional/size/radius.json5 +90 -0
- package/src/tokens/functional/size/size-coarse.json5 +24 -3
- package/src/tokens/functional/size/size-fine.json5 +45 -24
- package/src/tokens/functional/size/size.json5 +50 -15
- package/src/tokens/functional/size/viewport.json5 +1 -1
- package/src/tokens/functional/typography/font-stack.json5 +60 -0
- package/src/tokens/functional/typography/typography.json5 +71 -44
- package/dist/build/parsers/index.d.ts +0 -1
- package/dist/build/parsers/index.js +0 -1
- package/dist/build/parsers/w3cJsonParser.d.ts +0 -6
- package/dist/build/parsers/w3cJsonParser.js +0 -25
- package/dist/removed/testing.json5 +0 -4
- package/src/tokens/removed/testing.json5 +0 -4
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
default: {
|
|
4
4
|
$value: '{base.color.neutral.0}',
|
|
5
5
|
$type: 'color',
|
|
6
|
+
$description: 'Default background color for pages and main content areas',
|
|
6
7
|
$extensions: {
|
|
7
8
|
'org.primer.figma': {
|
|
8
9
|
collection: 'mode',
|
|
@@ -20,11 +21,16 @@
|
|
|
20
21
|
'dark-tritanopia-high-contrast': '{base.color.neutral.0}',
|
|
21
22
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.neutral.0}',
|
|
22
23
|
},
|
|
24
|
+
'org.primer.llm': {
|
|
25
|
+
usage: ['page-background', 'main-content', 'card-background'],
|
|
26
|
+
rules: 'Use as the primary background for pages and content areas. Do NOT use for emphasis or highlighting.',
|
|
27
|
+
},
|
|
23
28
|
},
|
|
24
29
|
},
|
|
25
30
|
muted: {
|
|
26
31
|
$value: '{base.color.neutral.1}',
|
|
27
32
|
$type: 'color',
|
|
33
|
+
$description: 'Muted background for secondary content areas and subtle grouping',
|
|
28
34
|
$extensions: {
|
|
29
35
|
'org.primer.figma': {
|
|
30
36
|
collection: 'mode',
|
|
@@ -45,11 +51,16 @@
|
|
|
45
51
|
'dark-tritanopia-high-contrast': '{base.color.neutral.2}',
|
|
46
52
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.neutral.2}',
|
|
47
53
|
},
|
|
54
|
+
'org.primer.llm': {
|
|
55
|
+
usage: ['secondary-content', 'code-block-background', 'table-header', 'sidebar'],
|
|
56
|
+
rules: 'Use for secondary content areas or to create visual grouping. Do NOT use for primary page backgrounds.',
|
|
57
|
+
},
|
|
48
58
|
},
|
|
49
59
|
},
|
|
50
60
|
inset: {
|
|
51
61
|
$value: '{bgColor.muted}',
|
|
52
62
|
$type: 'color',
|
|
63
|
+
$description: 'Inset background for recessed content areas like wells or sunken panels',
|
|
53
64
|
$extensions: {
|
|
54
65
|
'org.primer.figma': {
|
|
55
66
|
collection: 'mode',
|
|
@@ -67,11 +78,16 @@
|
|
|
67
78
|
'light-tritanopia-high-contrast': '{base.color.neutral.2}',
|
|
68
79
|
'light-protanopia-deuteranopia-high-contrast': '{base.color.neutral.2}',
|
|
69
80
|
},
|
|
81
|
+
'org.primer.llm': {
|
|
82
|
+
usage: ['well', 'sunken-panel', 'recessed-area', 'input-background'],
|
|
83
|
+
rules: 'Use for visually recessed areas. Creates depth hierarchy. Suitable for input fields and wells.',
|
|
84
|
+
},
|
|
70
85
|
},
|
|
71
86
|
},
|
|
72
87
|
emphasis: {
|
|
73
88
|
$value: '{base.color.neutral.12}',
|
|
74
89
|
$type: 'color',
|
|
90
|
+
$description: 'High-emphasis dark background for strong visual contrast',
|
|
75
91
|
$extensions: {
|
|
76
92
|
'org.primer.figma': {
|
|
77
93
|
collection: 'mode',
|
|
@@ -84,11 +100,16 @@
|
|
|
84
100
|
'org.primer.overrides': {
|
|
85
101
|
dark: '{base.color.neutral.7}',
|
|
86
102
|
},
|
|
103
|
+
'org.primer.llm': {
|
|
104
|
+
usage: ['tooltip', 'badge-background', 'high-contrast-element'],
|
|
105
|
+
rules: 'Use for elements needing strong visual emphasis. Pair with fgColor.onEmphasis for text. Do NOT use for large areas.',
|
|
106
|
+
},
|
|
87
107
|
},
|
|
88
108
|
},
|
|
89
109
|
inverse: {
|
|
90
110
|
$value: '{base.color.neutral.12}',
|
|
91
111
|
$type: 'color',
|
|
112
|
+
$description: 'Inverse background that flips between light and dark modes',
|
|
92
113
|
$extensions: {
|
|
93
114
|
'org.primer.figma': {
|
|
94
115
|
collection: 'mode',
|
|
@@ -98,11 +119,16 @@
|
|
|
98
119
|
'org.primer.overrides': {
|
|
99
120
|
dark: '{base.color.neutral.13}',
|
|
100
121
|
},
|
|
122
|
+
'org.primer.llm': {
|
|
123
|
+
usage: ['overlay-content', 'inverse-theme-element'],
|
|
124
|
+
rules: 'Use when you need opposite theme background. Pair with fgColor.onInverse for text.',
|
|
125
|
+
},
|
|
101
126
|
},
|
|
102
127
|
},
|
|
103
128
|
white: {
|
|
104
129
|
$value: '{base.color.neutral.0}',
|
|
105
130
|
$type: 'color',
|
|
131
|
+
$description: 'Pure white background',
|
|
106
132
|
$extensions: {
|
|
107
133
|
'org.primer.figma': {
|
|
108
134
|
collection: 'mode',
|
|
@@ -112,11 +138,16 @@
|
|
|
112
138
|
'org.primer.overrides': {
|
|
113
139
|
dark: '{base.color.neutral.13}',
|
|
114
140
|
},
|
|
141
|
+
'org.primer.llm': {
|
|
142
|
+
doNotUse: true,
|
|
143
|
+
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.',
|
|
144
|
+
},
|
|
115
145
|
},
|
|
116
146
|
},
|
|
117
147
|
black: {
|
|
118
148
|
$value: '{base.color.neutral.13}',
|
|
119
149
|
$type: 'color',
|
|
150
|
+
$description: 'Pure black background',
|
|
120
151
|
$extensions: {
|
|
121
152
|
'org.primer.figma': {
|
|
122
153
|
collection: 'mode',
|
|
@@ -126,11 +157,16 @@
|
|
|
126
157
|
'org.primer.overrides': {
|
|
127
158
|
dark: '{base.color.neutral.0}',
|
|
128
159
|
},
|
|
160
|
+
'org.primer.llm': {
|
|
161
|
+
doNotUse: true,
|
|
162
|
+
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.',
|
|
163
|
+
},
|
|
129
164
|
},
|
|
130
165
|
},
|
|
131
166
|
disabled: {
|
|
132
167
|
$value: '{base.color.neutral.2}',
|
|
133
168
|
$type: 'color',
|
|
169
|
+
$description: 'Background for disabled interactive elements',
|
|
134
170
|
$extensions: {
|
|
135
171
|
'org.primer.figma': {
|
|
136
172
|
collection: 'mode',
|
|
@@ -148,11 +184,16 @@
|
|
|
148
184
|
'dark-tritanopia-high-contrast': '{base.color.neutral.4}',
|
|
149
185
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.neutral.4}',
|
|
150
186
|
},
|
|
187
|
+
'org.primer.llm': {
|
|
188
|
+
usage: ['disabled-button', 'disabled-input', 'inactive-element'],
|
|
189
|
+
rules: 'MUST use for disabled state backgrounds. Pair with fgColor.disabled for text. Do NOT use for active elements.',
|
|
190
|
+
},
|
|
151
191
|
},
|
|
152
192
|
},
|
|
153
193
|
transparent: {
|
|
154
194
|
$value: '{base.color.transparent}',
|
|
155
195
|
$type: 'color',
|
|
196
|
+
$description: 'Fully transparent background',
|
|
156
197
|
$extensions: {
|
|
157
198
|
'org.primer.figma': {
|
|
158
199
|
collection: 'mode',
|
|
@@ -162,12 +203,17 @@
|
|
|
162
203
|
web: 'var(--bgColor-transparent) /* utility class: .color-bg-transparent */',
|
|
163
204
|
},
|
|
164
205
|
},
|
|
206
|
+
'org.primer.llm': {
|
|
207
|
+
usage: ['ghost-button', 'icon-button', 'overlay-trigger'],
|
|
208
|
+
rules: 'Use for ghost/icon buttons or when element should blend with parent. Ensure sufficient contrast for interactive states.',
|
|
209
|
+
},
|
|
165
210
|
},
|
|
166
211
|
},
|
|
167
212
|
neutral: {
|
|
168
213
|
muted: {
|
|
169
214
|
$value: '{base.color.neutral.8}',
|
|
170
215
|
$type: 'color',
|
|
216
|
+
$description: 'Subtle neutral background for tags, labels, and secondary UI elements',
|
|
171
217
|
$extensions: {
|
|
172
218
|
'org.primer.figma': {
|
|
173
219
|
collection: 'mode',
|
|
@@ -190,11 +236,16 @@
|
|
|
190
236
|
'dark-tritanopia-high-contrast': '{base.color.neutral.3}',
|
|
191
237
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.neutral.3}',
|
|
192
238
|
},
|
|
239
|
+
'org.primer.llm': {
|
|
240
|
+
usage: ['neutral-label', 'neutral-badge', 'secondary-tag', 'counter'],
|
|
241
|
+
rules: 'Use for neutral semantic meaning. Pair with fgColor.default for text. Do NOT use for status indicators.',
|
|
242
|
+
},
|
|
193
243
|
},
|
|
194
244
|
},
|
|
195
245
|
emphasis: {
|
|
196
246
|
$value: '{base.color.neutral.9}',
|
|
197
247
|
$type: 'color',
|
|
248
|
+
$description: 'Strong neutral background for prominent neutral elements',
|
|
198
249
|
$extensions: {
|
|
199
250
|
'org.primer.figma': {
|
|
200
251
|
collection: 'mode',
|
|
@@ -212,6 +263,10 @@
|
|
|
212
263
|
'dark-tritanopia-high-contrast': '{base.color.neutral.7}',
|
|
213
264
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.neutral.7}',
|
|
214
265
|
},
|
|
266
|
+
'org.primer.llm': {
|
|
267
|
+
usage: ['neutral-button', 'secondary-action', 'neutral-indicator'],
|
|
268
|
+
rules: 'Use for emphasized neutral elements. Pair with fgColor.onEmphasis for text.',
|
|
269
|
+
},
|
|
215
270
|
},
|
|
216
271
|
},
|
|
217
272
|
},
|
|
@@ -219,6 +274,7 @@
|
|
|
219
274
|
muted: {
|
|
220
275
|
$value: '{base.color.blue.0}',
|
|
221
276
|
$type: 'color',
|
|
277
|
+
$description: 'Subtle accent background for informational or selected elements',
|
|
222
278
|
$extensions: {
|
|
223
279
|
'org.primer.figma': {
|
|
224
280
|
collection: 'mode',
|
|
@@ -234,11 +290,16 @@
|
|
|
234
290
|
alpha: 0.1,
|
|
235
291
|
},
|
|
236
292
|
},
|
|
293
|
+
'org.primer.llm': {
|
|
294
|
+
usage: ['selected-row', 'info-banner', 'active-nav-item', 'highlight'],
|
|
295
|
+
rules: 'Use for selected states or informational highlights. Pair with fgColor.accent for text.',
|
|
296
|
+
},
|
|
237
297
|
},
|
|
238
298
|
},
|
|
239
299
|
emphasis: {
|
|
240
300
|
$value: '{base.color.blue.5}',
|
|
241
301
|
$type: 'color',
|
|
302
|
+
$description: 'Strong accent background for active states and focused states',
|
|
242
303
|
$extensions: {
|
|
243
304
|
'org.primer.figma': {
|
|
244
305
|
collection: 'mode',
|
|
@@ -255,6 +316,10 @@
|
|
|
255
316
|
'dark-tritanopia-high-contrast': '{base.color.blue.9}',
|
|
256
317
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.blue.9}',
|
|
257
318
|
},
|
|
319
|
+
'org.primer.llm': {
|
|
320
|
+
usage: ['active-states', 'current', 'selected', 'active-toggle'],
|
|
321
|
+
rules: 'MUST use for selected or active states. Pair with fgColor.onEmphasis for text.',
|
|
322
|
+
},
|
|
258
323
|
},
|
|
259
324
|
},
|
|
260
325
|
},
|
|
@@ -262,6 +327,7 @@
|
|
|
262
327
|
muted: {
|
|
263
328
|
$value: '{base.color.green.0}',
|
|
264
329
|
$type: 'color',
|
|
330
|
+
$description: 'Subtle success background for positive feedback and completed states',
|
|
265
331
|
$extensions: {
|
|
266
332
|
'org.primer.figma': {
|
|
267
333
|
collection: 'mode',
|
|
@@ -297,11 +363,16 @@
|
|
|
297
363
|
alpha: 0.2,
|
|
298
364
|
},
|
|
299
365
|
},
|
|
366
|
+
'org.primer.llm': {
|
|
367
|
+
usage: ['success-message', 'completed-state', 'positive-feedback'],
|
|
368
|
+
rules: 'Use for success states and positive feedback. Pair with fgColor.success for text.',
|
|
369
|
+
},
|
|
300
370
|
},
|
|
301
371
|
},
|
|
302
372
|
emphasis: {
|
|
303
373
|
$value: '#1f883d',
|
|
304
374
|
$type: 'color',
|
|
375
|
+
$description: 'Strong success background for prominent positive actions',
|
|
305
376
|
$extensions: {
|
|
306
377
|
'org.primer.figma': {
|
|
307
378
|
collection: 'mode',
|
|
@@ -325,6 +396,10 @@
|
|
|
325
396
|
'dark-high-contrast': '{base.color.green.9}',
|
|
326
397
|
'dark-dimmed-high-contrast': '{base.color.green.7}',
|
|
327
398
|
},
|
|
399
|
+
'org.primer.llm': {
|
|
400
|
+
usage: ['merge-button', 'confirm-action', 'success-badge'],
|
|
401
|
+
rules: 'Use for positive action buttons like merge or confirm. Pair with fgColor.onEmphasis for text.',
|
|
402
|
+
},
|
|
328
403
|
},
|
|
329
404
|
},
|
|
330
405
|
},
|
|
@@ -332,6 +407,7 @@
|
|
|
332
407
|
muted: {
|
|
333
408
|
$value: '{bgColor.success.muted}',
|
|
334
409
|
$type: 'color',
|
|
410
|
+
$description: 'Subtle background for open state indicators (issues, PRs)',
|
|
335
411
|
$extensions: {
|
|
336
412
|
'org.primer.figma': {
|
|
337
413
|
collection: 'mode',
|
|
@@ -363,11 +439,16 @@
|
|
|
363
439
|
alpha: 0.1,
|
|
364
440
|
},
|
|
365
441
|
},
|
|
442
|
+
'org.primer.llm': {
|
|
443
|
+
usage: ['open-issue', 'open-pr', 'active-status'],
|
|
444
|
+
rules: 'Use for open/active status indicators. Specifically for GitHub issues and PRs.',
|
|
445
|
+
},
|
|
366
446
|
},
|
|
367
447
|
},
|
|
368
448
|
emphasis: {
|
|
369
449
|
$value: '{bgColor.success.emphasis}',
|
|
370
450
|
$type: 'color',
|
|
451
|
+
$description: 'Strong background for open state badges and labels',
|
|
371
452
|
$extensions: {
|
|
372
453
|
'org.primer.figma': {
|
|
373
454
|
collection: 'mode',
|
|
@@ -387,6 +468,10 @@
|
|
|
387
468
|
'dark-protanopia-deuteranopia': '{base.color.orange.5}',
|
|
388
469
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.orange.9}',
|
|
389
470
|
},
|
|
471
|
+
'org.primer.llm': {
|
|
472
|
+
usage: ['open-badge', 'open-label', 'active-status-badge'],
|
|
473
|
+
rules: 'Use for prominent open/active state indicators. Pair with fgColor.onEmphasis for text.',
|
|
474
|
+
},
|
|
390
475
|
},
|
|
391
476
|
},
|
|
392
477
|
},
|
|
@@ -394,6 +479,7 @@
|
|
|
394
479
|
muted: {
|
|
395
480
|
$value: '{base.color.yellow.0}',
|
|
396
481
|
$type: 'color',
|
|
482
|
+
$description: 'Subtle attention background for warnings and caution states',
|
|
397
483
|
$extensions: {
|
|
398
484
|
'org.primer.figma': {
|
|
399
485
|
collection: 'mode',
|
|
@@ -409,11 +495,16 @@
|
|
|
409
495
|
alpha: 0.15,
|
|
410
496
|
},
|
|
411
497
|
},
|
|
498
|
+
'org.primer.llm': {
|
|
499
|
+
usage: ['warning-banner', 'caution-message', 'pending-state'],
|
|
500
|
+
rules: 'Use for warnings that need user attention. Pair with fgColor.attention for text.',
|
|
501
|
+
},
|
|
412
502
|
},
|
|
413
503
|
},
|
|
414
504
|
emphasis: {
|
|
415
505
|
$value: '{base.color.yellow.5}',
|
|
416
506
|
$type: 'color',
|
|
507
|
+
$description: 'Strong attention background for prominent warnings',
|
|
417
508
|
$extensions: {
|
|
418
509
|
'org.primer.figma': {
|
|
419
510
|
collection: 'mode',
|
|
@@ -429,6 +520,10 @@
|
|
|
429
520
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.yellow.9}',
|
|
430
521
|
'dark-tritanopia-high-contrast': '{base.color.yellow.9}',
|
|
431
522
|
},
|
|
523
|
+
'org.primer.llm': {
|
|
524
|
+
usage: ['warning-badge', 'caution-label', 'attention-indicator'],
|
|
525
|
+
rules: 'Use for prominent warnings. Consider fgColor.default for text due to yellow contrast.',
|
|
526
|
+
},
|
|
432
527
|
},
|
|
433
528
|
},
|
|
434
529
|
},
|
|
@@ -436,6 +531,7 @@
|
|
|
436
531
|
muted: {
|
|
437
532
|
$value: '{base.color.orange.0}',
|
|
438
533
|
$type: 'color',
|
|
534
|
+
$description: 'Subtle severe background for high-priority warnings',
|
|
439
535
|
$extensions: {
|
|
440
536
|
'org.primer.figma': {
|
|
441
537
|
collection: 'mode',
|
|
@@ -457,11 +553,16 @@
|
|
|
457
553
|
alpha: 0.1,
|
|
458
554
|
},
|
|
459
555
|
},
|
|
556
|
+
'org.primer.llm': {
|
|
557
|
+
usage: ['high-priority-warning', 'urgent-message', 'escalation'],
|
|
558
|
+
rules: 'Use for severe warnings, less critical than danger. Pair with fgColor.severe for text.',
|
|
559
|
+
},
|
|
460
560
|
},
|
|
461
561
|
},
|
|
462
562
|
emphasis: {
|
|
463
563
|
$value: '{base.color.orange.5}',
|
|
464
564
|
$type: 'color',
|
|
565
|
+
$description: 'Strong severe background for prominent high-priority warnings',
|
|
465
566
|
$extensions: {
|
|
466
567
|
'org.primer.figma': {
|
|
467
568
|
collection: 'mode',
|
|
@@ -480,6 +581,10 @@
|
|
|
480
581
|
'dark-dimmed-high-contrast': '{base.color.orange.7}',
|
|
481
582
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.orange.9}',
|
|
482
583
|
},
|
|
584
|
+
'org.primer.llm': {
|
|
585
|
+
usage: ['severe-badge', 'urgent-label', 'high-priority-indicator'],
|
|
586
|
+
rules: 'Use for prominent severe warnings. Pair with fgColor.onEmphasis for text.',
|
|
587
|
+
},
|
|
483
588
|
},
|
|
484
589
|
},
|
|
485
590
|
},
|
|
@@ -487,6 +592,7 @@
|
|
|
487
592
|
muted: {
|
|
488
593
|
$value: '{base.color.red.0}',
|
|
489
594
|
$type: 'color',
|
|
595
|
+
$description: 'Muted danger background for error states and destructive action contexts',
|
|
490
596
|
$extensions: {
|
|
491
597
|
'org.primer.figma': {
|
|
492
598
|
collection: 'mode',
|
|
@@ -508,11 +614,16 @@
|
|
|
508
614
|
alpha: 0.1,
|
|
509
615
|
},
|
|
510
616
|
},
|
|
617
|
+
'org.primer.llm': {
|
|
618
|
+
usage: ['error-message', 'destructive-action', 'validation-error'],
|
|
619
|
+
rules: 'Use for error states and destructive action backgrounds. Pair with fgColor.danger for text.',
|
|
620
|
+
},
|
|
511
621
|
},
|
|
512
622
|
},
|
|
513
623
|
emphasis: {
|
|
514
624
|
$value: '{base.color.red.5}',
|
|
515
625
|
$type: 'color',
|
|
626
|
+
$description: 'Emphasized danger background for critical errors and delete confirmations',
|
|
516
627
|
$extensions: {
|
|
517
628
|
'org.primer.figma': {
|
|
518
629
|
collection: 'mode',
|
|
@@ -531,6 +642,10 @@
|
|
|
531
642
|
'dark-dimmed-high-contrast': '{base.color.red.7}',
|
|
532
643
|
'dark-tritanopia-high-contrast': '{base.color.red.9}',
|
|
533
644
|
},
|
|
645
|
+
'org.primer.llm': {
|
|
646
|
+
usage: ['delete-button', 'critical-alert', 'destructive-confirmation'],
|
|
647
|
+
rules: 'MUST use for destructive action buttons like delete. Use fgColor.onEmphasis for text on this background.',
|
|
648
|
+
},
|
|
534
649
|
},
|
|
535
650
|
},
|
|
536
651
|
},
|
|
@@ -538,6 +653,7 @@
|
|
|
538
653
|
muted: {
|
|
539
654
|
$value: '{bgColor.danger.muted}',
|
|
540
655
|
$type: 'color',
|
|
656
|
+
$description: 'Subtle background for closed state indicators (issues, PRs)',
|
|
541
657
|
$extensions: {
|
|
542
658
|
'org.primer.figma': {
|
|
543
659
|
collection: 'mode',
|
|
@@ -565,11 +681,16 @@
|
|
|
565
681
|
alpha: 0.1,
|
|
566
682
|
},
|
|
567
683
|
},
|
|
684
|
+
'org.primer.llm': {
|
|
685
|
+
usage: ['closed-issue', 'closed-pr', 'declined-state'],
|
|
686
|
+
rules: 'Use for closed/declined status indicators. Specifically for GitHub issues and PRs.',
|
|
687
|
+
},
|
|
568
688
|
},
|
|
569
689
|
},
|
|
570
690
|
emphasis: {
|
|
571
691
|
$value: '{bgColor.danger.emphasis}',
|
|
572
692
|
$type: 'color',
|
|
693
|
+
$description: 'Strong background for closed state badges and labels',
|
|
573
694
|
$extensions: {
|
|
574
695
|
'org.primer.figma': {
|
|
575
696
|
collection: 'mode',
|
|
@@ -589,6 +710,10 @@
|
|
|
589
710
|
'dark-protanopia-deuteranopia': '{bgColor.neutral.emphasis}',
|
|
590
711
|
'dark-protanopia-deuteranopia-high-contrast': '{bgColor.neutral.emphasis}',
|
|
591
712
|
},
|
|
713
|
+
'org.primer.llm': {
|
|
714
|
+
usage: ['closed-badge', 'closed-label', 'declined-status-badge'],
|
|
715
|
+
rules: 'Use for prominent closed/declined state indicators. Pair with fgColor.onEmphasis for text.',
|
|
716
|
+
},
|
|
592
717
|
},
|
|
593
718
|
},
|
|
594
719
|
},
|
|
@@ -596,6 +721,7 @@
|
|
|
596
721
|
muted: {
|
|
597
722
|
$value: '{bgColor.neutral.muted}',
|
|
598
723
|
$type: 'color',
|
|
724
|
+
$description: 'Subtle background for draft state indicators',
|
|
599
725
|
$extensions: {
|
|
600
726
|
'org.primer.figma': {
|
|
601
727
|
collection: 'mode',
|
|
@@ -623,11 +749,16 @@
|
|
|
623
749
|
alpha: 0.1,
|
|
624
750
|
},
|
|
625
751
|
},
|
|
752
|
+
'org.primer.llm': {
|
|
753
|
+
usage: ['draft-pr', 'draft-issue', 'work-in-progress'],
|
|
754
|
+
rules: 'Use for draft/WIP status indicators. Conveys incomplete or pending state.',
|
|
755
|
+
},
|
|
626
756
|
},
|
|
627
757
|
},
|
|
628
758
|
emphasis: {
|
|
629
759
|
$value: '{bgColor.neutral.emphasis}',
|
|
630
760
|
$type: 'color',
|
|
761
|
+
$description: 'Strong background for draft state badges and labels',
|
|
631
762
|
$extensions: {
|
|
632
763
|
'org.primer.figma': {
|
|
633
764
|
collection: 'mode',
|
|
@@ -637,6 +768,10 @@
|
|
|
637
768
|
web: 'var(--bgColor-draft-emphasis)',
|
|
638
769
|
},
|
|
639
770
|
},
|
|
771
|
+
'org.primer.llm': {
|
|
772
|
+
usage: ['draft-badge', 'draft-label', 'wip-indicator'],
|
|
773
|
+
rules: 'Use for prominent draft state indicators. Pair with fgColor.onEmphasis for text.',
|
|
774
|
+
},
|
|
640
775
|
},
|
|
641
776
|
},
|
|
642
777
|
},
|
|
@@ -644,6 +779,7 @@
|
|
|
644
779
|
muted: {
|
|
645
780
|
$value: '{base.color.purple.0}',
|
|
646
781
|
$type: 'color',
|
|
782
|
+
$description: 'Subtle background for completed/done state indicators',
|
|
647
783
|
$extensions: {
|
|
648
784
|
'org.primer.figma': {
|
|
649
785
|
collection: 'mode',
|
|
@@ -659,11 +795,16 @@
|
|
|
659
795
|
alpha: 0.15,
|
|
660
796
|
},
|
|
661
797
|
},
|
|
798
|
+
'org.primer.llm': {
|
|
799
|
+
usage: ['completed-task', 'merged-pr', 'done-state'],
|
|
800
|
+
rules: 'Use for completed/done status indicators. Conveys finished or merged state.',
|
|
801
|
+
},
|
|
662
802
|
},
|
|
663
803
|
},
|
|
664
804
|
emphasis: {
|
|
665
805
|
$value: '{base.color.purple.5}',
|
|
666
806
|
$type: 'color',
|
|
807
|
+
$description: 'Strong background for completed/done state badges and labels',
|
|
667
808
|
$extensions: {
|
|
668
809
|
'org.primer.figma': {
|
|
669
810
|
collection: 'mode',
|
|
@@ -679,6 +820,10 @@
|
|
|
679
820
|
'dark-tritanopia-high-contrast': '{base.color.purple.9}',
|
|
680
821
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.purple.9}',
|
|
681
822
|
},
|
|
823
|
+
'org.primer.llm': {
|
|
824
|
+
usage: ['done-badge', 'merged-label', 'completed-indicator'],
|
|
825
|
+
rules: 'Use for prominent done/completed state indicators. Pair with fgColor.onEmphasis for text.',
|
|
826
|
+
},
|
|
682
827
|
},
|
|
683
828
|
},
|
|
684
829
|
},
|
|
@@ -686,6 +831,7 @@
|
|
|
686
831
|
muted: {
|
|
687
832
|
$value: '{bgColor.done.muted}',
|
|
688
833
|
$type: 'color',
|
|
834
|
+
$description: 'Subtle background for upsell and promotional content',
|
|
689
835
|
$extensions: {
|
|
690
836
|
'org.primer.figma': {
|
|
691
837
|
collection: 'mode',
|
|
@@ -695,11 +841,16 @@
|
|
|
695
841
|
web: 'var(--bgColor-upsell-muted)',
|
|
696
842
|
},
|
|
697
843
|
},
|
|
844
|
+
'org.primer.llm': {
|
|
845
|
+
usage: ['upgrade-prompt', 'premium-feature', 'promotional-banner'],
|
|
846
|
+
rules: 'Use for upgrade prompts and premium feature highlights. Do NOT use for regular content.',
|
|
847
|
+
},
|
|
698
848
|
},
|
|
699
849
|
},
|
|
700
850
|
emphasis: {
|
|
701
851
|
$value: '{bgColor.done.emphasis}',
|
|
702
852
|
$type: 'color',
|
|
853
|
+
$description: 'Strong background for prominent upsell elements',
|
|
703
854
|
$extensions: {
|
|
704
855
|
'org.primer.figma': {
|
|
705
856
|
collection: 'mode',
|
|
@@ -709,6 +860,10 @@
|
|
|
709
860
|
web: 'var(--bgColor-upsell-emphasis)',
|
|
710
861
|
},
|
|
711
862
|
},
|
|
863
|
+
'org.primer.llm': {
|
|
864
|
+
usage: ['upgrade-button', 'premium-badge', 'upsell-cta'],
|
|
865
|
+
rules: 'Use for prominent upgrade/upsell CTAs. Pair with fgColor.onEmphasis for text.',
|
|
866
|
+
},
|
|
712
867
|
},
|
|
713
868
|
},
|
|
714
869
|
},
|
|
@@ -716,6 +871,7 @@
|
|
|
716
871
|
muted: {
|
|
717
872
|
$value: '{base.color.pink.0}',
|
|
718
873
|
$type: 'color',
|
|
874
|
+
$description: 'Subtle background for GitHub Sponsors content',
|
|
719
875
|
$extensions: {
|
|
720
876
|
'org.primer.figma': {
|
|
721
877
|
collection: 'mode',
|
|
@@ -735,11 +891,16 @@
|
|
|
735
891
|
alpha: 0.1,
|
|
736
892
|
},
|
|
737
893
|
},
|
|
894
|
+
'org.primer.llm': {
|
|
895
|
+
usage: ['sponsor-card', 'sponsor-highlight', 'funding-prompt'],
|
|
896
|
+
rules: 'Use for GitHub Sponsors related content. Do NOT use for general pink-colored elements.',
|
|
897
|
+
},
|
|
738
898
|
},
|
|
739
899
|
},
|
|
740
900
|
emphasis: {
|
|
741
901
|
$value: '{base.color.pink.5}',
|
|
742
902
|
$type: 'color',
|
|
903
|
+
$description: 'Strong background for prominent GitHub Sponsors elements',
|
|
743
904
|
$extensions: {
|
|
744
905
|
'org.primer.figma': {
|
|
745
906
|
collection: 'mode',
|
|
@@ -755,6 +916,10 @@
|
|
|
755
916
|
'dark-tritanopia-high-contrast': '{base.color.pink.9}',
|
|
756
917
|
'dark-protanopia-deuteranopia-high-contrast': '{base.color.pink.9}',
|
|
757
918
|
},
|
|
919
|
+
'org.primer.llm': {
|
|
920
|
+
usage: ['sponsor-button', 'sponsor-badge', 'funding-cta'],
|
|
921
|
+
rules: 'Use for prominent Sponsors CTAs. Pair with fgColor.onEmphasis for text.',
|
|
922
|
+
},
|
|
758
923
|
},
|
|
759
924
|
},
|
|
760
925
|
},
|