@mekari/pixel3-theme 0.2.2-dev.0 → 0.2.2-dev.2

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 (40) hide show
  1. package/dist/index.js +581 -244
  2. package/dist/index.mjs +496 -159
  3. package/dist/recipes/airene-button.d.mts +5 -0
  4. package/dist/recipes/airene-button.d.ts +5 -0
  5. package/dist/recipes/index.d.mts +1 -0
  6. package/dist/recipes/index.d.ts +1 -0
  7. package/dist/tokens/colors.d.mts +3 -0
  8. package/dist/tokens/colors.d.ts +3 -0
  9. package/dist/tokens/index.d.mts +3 -0
  10. package/dist/tokens/index.d.ts +3 -0
  11. package/dist/tokens-next/colors.d.mts +3 -0
  12. package/dist/tokens-next/colors.d.ts +3 -0
  13. package/dist/tokens-next/index.d.mts +3 -0
  14. package/dist/tokens-next/index.d.ts +3 -0
  15. package/package.json +3 -2
  16. package/src/conditions.ts +1 -1
  17. package/src/keyframes.ts +5 -0
  18. package/src/recipes/accordion.ts +50 -10
  19. package/src/recipes/airene-button.ts +123 -0
  20. package/src/recipes/avatar.ts +33 -13
  21. package/src/recipes/banner.ts +0 -1
  22. package/src/recipes/button.ts +127 -22
  23. package/src/recipes/checkbox.ts +8 -6
  24. package/src/recipes/dropzone.ts +1 -1
  25. package/src/recipes/icon.ts +3 -1
  26. package/src/recipes/index.ts +3 -1
  27. package/src/recipes/input.ts +32 -12
  28. package/src/recipes/modal.ts +9 -2
  29. package/src/recipes/radio.ts +8 -6
  30. package/src/recipes/segmented-control.ts +1 -1
  31. package/src/recipes/tabs.ts +2 -2
  32. package/src/recipes/tag.ts +3 -3
  33. package/src/recipes/text.ts +0 -1
  34. package/src/recipes/timeline.ts +8 -2
  35. package/src/recipes/toast.ts +1 -2
  36. package/src/recipes/toggle.ts +8 -6
  37. package/src/recipes/tooltip.ts +1 -0
  38. package/src/text-styles.ts +1 -1
  39. package/src/tokens/colors.ts +1 -0
  40. package/src/tokens-next/colors.ts +1 -0
@@ -140,7 +140,7 @@ const buttonRecipe = defineRecipe({
140
140
  background: 'red.700',
141
141
  borderColor: 'red.700'
142
142
  },
143
- _focus: {
143
+ _focusVisible: {
144
144
  borderColor: 'red.400',
145
145
  boxShadow: '0 0 0 3px #FDECEE'
146
146
  },
@@ -159,7 +159,7 @@ const buttonRecipe = defineRecipe({
159
159
  background: 'background.danger.bold.pressed',
160
160
  borderColor: 'background.danger.bold.pressed'
161
161
  },
162
- _focus: {
162
+ _focusVisible: {
163
163
  borderColor: 'border.focused',
164
164
  boxShadow: 'focus'
165
165
  },
@@ -168,6 +168,38 @@ const buttonRecipe = defineRecipe({
168
168
  }
169
169
  }
170
170
  },
171
+ tertiary: {
172
+ color: 'white',
173
+ background: '#282E33',
174
+ borderColor: '#282E33',
175
+ _hover: {
176
+ background: '#38414A',
177
+ borderColor: '#38414A'
178
+ },
179
+ _active: {
180
+ background: '#454F59',
181
+ borderColor: '#454F59'
182
+ },
183
+ _loading: {
184
+ background: '#282E33'
185
+ },
186
+ _nextTheme: {
187
+ color: 'text.inverse.static',
188
+ background: 'background.tertiary',
189
+ borderColor: 'background.tertiary',
190
+ _hover: {
191
+ background: 'background.tertiary.hovered',
192
+ borderColor: 'background.tertiary.hovered'
193
+ },
194
+ _active: {
195
+ background: 'background.tertiary.pressed',
196
+ borderColor: 'background.tertiary.pressed'
197
+ },
198
+ _loading: {
199
+ background: 'background.tertiary'
200
+ }
201
+ }
202
+ },
171
203
  textLink: {
172
204
  color: 'blue.400',
173
205
  background: 'transparent',
@@ -205,13 +237,28 @@ const buttonRecipe = defineRecipe({
205
237
  color: 'text.disabled',
206
238
 
207
239
  _hover: {
208
- color: 'text.disabled'
240
+ color: 'text.disabled',
241
+ textDecoration: 'none'
209
242
  }
210
243
  },
211
244
  _loading: {
212
245
  background: 'text.inverse'
213
246
  }
214
247
  }
248
+ },
249
+ unstyled: {
250
+ display: 'inline',
251
+ color: 'inherit',
252
+ backgroundColor: 'transparent',
253
+ border: 'none',
254
+ outline: 'none',
255
+ margin: '0',
256
+ padding: '0',
257
+ fontSize: 'inherit',
258
+ fontWeight: 'inherit',
259
+ lineHeight: 'inherit',
260
+ userSelect: 'inherit',
261
+ textAlign: 'inherit'
215
262
  }
216
263
  },
217
264
  size: {
@@ -224,18 +271,39 @@ const buttonRecipe = defineRecipe({
224
271
  },
225
272
  _hasIcon: {
226
273
  paddingX: '1',
227
- paddingY: '1 !important',
274
+ paddingY: '1',
228
275
  _nextTheme: {
229
- paddingX: '3xs !',
230
- paddingY: '3xs !important'
276
+ paddingX: '3xs',
277
+ paddingY: '3xs'
231
278
  }
232
279
  },
233
280
  _hasLabel: {
234
- paddingX: '2 !important',
281
+ paddingX: '2',
235
282
  paddingY: '1',
283
+ _hasIcon: {
284
+ '[data-icon-position=left]': {
285
+ paddingLeft: '1.5',
286
+ paddingRight: '2'
287
+ },
288
+ '[data-icon-position=right]': {
289
+ paddingLeft: '2',
290
+ paddingRight: '1.5'
291
+ },
292
+ },
293
+
236
294
  _nextTheme: {
237
- paddingX: 'xs !important',
238
- paddingY: '3xs'
295
+ paddingX: 'xs',
296
+ paddingY: '3xs',
297
+ _hasIcon: {
298
+ '[data-icon-position=left]': {
299
+ paddingLeft: '2xs',
300
+ paddingRight: 'xs'
301
+ },
302
+ '[data-icon-position=right]': {
303
+ paddingLeft: 'xs',
304
+ paddingRight: '2xs'
305
+ }
306
+ }
239
307
  }
240
308
  }
241
309
  },
@@ -248,18 +316,39 @@ const buttonRecipe = defineRecipe({
248
316
  },
249
317
  _hasIcon: {
250
318
  paddingX: '1.5',
251
- paddingY: '1.5 !important',
319
+ paddingY: '1.5',
252
320
  _nextTheme: {
253
- paddingX: '2xs',
254
- paddingY: '2xs !important'
321
+ paddingX: 'xs',
322
+ paddingY: 'xs'
255
323
  }
256
324
  },
257
325
  _hasLabel: {
258
- paddingX: '4 !important',
326
+ paddingX: '4',
259
327
  paddingY: '2',
328
+ _hasIcon: {
329
+ '&[data-icon-position=left]': {
330
+ paddingLeft: '3 !important',
331
+ paddingRight: '4 !important'
332
+ },
333
+ '& [data-icon-position=right]': {
334
+ paddingLeft: '4 !important',
335
+ paddingRight: '3 !important'
336
+ }
337
+ },
338
+
260
339
  _nextTheme: {
261
- paddingX: 'md !important',
262
- paddingY: 'xs'
340
+ paddingX: 'md',
341
+ paddingY: 'xs',
342
+ _hasIcon: {
343
+ '[data-icon-position=left]': {
344
+ paddingLeft: 'sm !important',
345
+ paddingRight: 'md !important'
346
+ },
347
+ '[data-icon-position=right]': {
348
+ paddingLeft: 'md !important',
349
+ paddingRight: 'sm !important'
350
+ }
351
+ }
263
352
  }
264
353
  }
265
354
  }
@@ -270,7 +359,7 @@ const buttonRecipe = defineRecipe({
270
359
  variant: ['textLink'],
271
360
  css: {
272
361
  borderRadius: 'sm',
273
- _focus: {
362
+ _focusVisible: {
274
363
  borderColor: 'white',
275
364
  boxShadow: 'focus',
276
365
  _nextTheme: {
@@ -287,9 +376,9 @@ const buttonRecipe = defineRecipe({
287
376
  }
288
377
  },
289
378
  {
290
- variant: ['primary', 'secondary', 'ghost'],
379
+ variant: ['primary', 'secondary', 'ghost', 'tertiary'],
291
380
  css: {
292
- _focus: {
381
+ _focusVisible: {
293
382
  borderColor: 'blue.400',
294
383
  boxShadow: 'focus',
295
384
  _nextTheme: {
@@ -300,7 +389,7 @@ const buttonRecipe = defineRecipe({
300
389
  }
301
390
  },
302
391
  {
303
- variant: ['primary', 'secondary', 'ghost', 'danger'],
392
+ variant: ['primary', 'secondary', 'ghost', 'danger', 'tertiary'],
304
393
  css: {
305
394
  _disabled: {
306
395
  cursor: 'not-allowed',
@@ -309,7 +398,15 @@ const buttonRecipe = defineRecipe({
309
398
  borderColor: 'gray.50',
310
399
  _hover: {
311
400
  background: 'gray.50',
312
- borderColor: 'gray.50'
401
+ borderColor: 'gray.50',
402
+ _hasIcon: {
403
+ background: 'transparent',
404
+ borderColor: 'transparent'
405
+ },
406
+ },
407
+ _hasIcon: {
408
+ background: 'transparent',
409
+ borderColor: 'transparent'
313
410
  },
314
411
  _nextTheme: {
315
412
  color: 'text.disabled',
@@ -317,8 +414,16 @@ const buttonRecipe = defineRecipe({
317
414
  borderColor: 'background.disabled',
318
415
  _hover: {
319
416
  background: 'background.disabled',
320
- borderColor: 'background.disabled'
321
- }
417
+ borderColor: 'background.disabled',
418
+ _hasIcon: {
419
+ background: 'transparent',
420
+ borderColor: 'transparent'
421
+ },
422
+ },
423
+ _hasIcon: {
424
+ background: 'transparent',
425
+ borderColor: 'transparent'
426
+ },
322
427
  }
323
428
  }
324
429
  }
@@ -21,12 +21,14 @@ const checkboxSlotRecipe = defineSlotRecipe({
21
21
  }
22
22
  },
23
23
  '& .mp-shared__hidden': {
24
- '&:focus + .mp-checkbox__control': {
25
- borderColor: 'blue.400',
26
- boxShadow: 'focus',
27
- _nextTheme: {
28
- borderColor: 'border.focused',
29
- boxShadow: '0 0 0 1px {colors.border.focused}'
24
+ _focusVisible: {
25
+ '& + .mp-checkbox__control': {
26
+ borderColor: 'blue.400',
27
+ boxShadow: 'focus',
28
+ _nextTheme: {
29
+ borderColor: 'border.focused',
30
+ boxShadow: '0 0 0 1px {colors.border.focused}'
31
+ }
30
32
  }
31
33
  }
32
34
  },
@@ -71,7 +71,7 @@ const dropzoneSlotRecipe = defineSlotRecipe({
71
71
  boxShadow: 'focus',
72
72
  borderColor: 'blue.400',
73
73
  _nextTheme: {
74
- boxShadow: 'focus',
74
+ boxShadow: 'none',
75
75
  borderColor: 'border.focused'
76
76
  },
77
77
  _hover: {
@@ -11,7 +11,9 @@ export const iconRecipe = defineRecipe({
11
11
  flexShrink: 0,
12
12
  '&:not(:root)': {
13
13
  overflow: 'hidden'
14
- }
14
+ },
15
+ width: 'var(--mp-icon-size)',
16
+ height: 'var(--mp-icon-size)'
15
17
  },
16
18
  variants: {
17
19
  size: {
@@ -1,5 +1,6 @@
1
1
  import { tagSlotRecipe } from './tag'
2
2
  import { avatarSlotRecipe, avatarGroupSlotRecipe } from './avatar'
3
+ import { aireneButtonSlotRecipe } from './airene-button'
3
4
  import { buttonRecipe, buttonGroupRecipe } from './button'
4
5
  import { inputSlotRecipe, inputGroupSlotRecipe, inputAddonSlotRecipe } from './input'
5
6
  import { selectSlotRecipe } from './select'
@@ -137,5 +138,6 @@ export const slotRecipes = {
137
138
  tabListSlotRecipe,
138
139
  colorPickerSlotRecipe,
139
140
  sliderSlotRecipe,
140
- tourSlotRecipe
141
+ tourSlotRecipe,
142
+ aireneButtonSlotRecipe
141
143
  }
@@ -36,7 +36,7 @@ const inputSlotRecipe = defineSlotRecipe({
36
36
  paddingInline: '3',
37
37
  appearance: 'none',
38
38
  caretColor: 'blue.500',
39
- transition: 'all 250ms',
39
+ transition: 'border-color 250ms, background-color 250ms',
40
40
  _isFullWidth: {
41
41
  width: 'full'
42
42
  },
@@ -194,7 +194,7 @@ const inputGroupSlotRecipe = defineSlotRecipe({
194
194
  width: 'full',
195
195
  '&[data-with-left-addon=true]': {
196
196
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
197
- paddingLeft: 'calc(var(--mp-input-offset--left) + 24px)'
197
+ paddingLeft: 'calc(var(--mp-input-offset--left) + 14px)'
198
198
  },
199
199
  },
200
200
  '&[data-with-clearable=true]': {
@@ -212,14 +212,14 @@ const inputGroupSlotRecipe = defineSlotRecipe({
212
212
  },
213
213
  '&[data-with-right-addon=true]': {
214
214
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
215
- paddingRight: 'calc(var(--mp-input-offset--right) + 24px)'
215
+ paddingRight: 'calc(var(--mp-input-offset--right) + 14px)'
216
216
  },
217
217
  '&[data-with-clearable=true]': {
218
218
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputControl]': {
219
219
  paddingRight: 'calc(var(--mp-input-offset--right) + 54px)'
220
220
  },
221
221
  '& > [data-pixel-component=MpInput] > [data-pixel-component=MpInputClear]': {
222
- '--mp-input--right': 'calc(var(--mp-input-offset--right) + 24px)'
222
+ '--mp-input--right': 'calc(var(--mp-input-offset--right) + 14px)'
223
223
  }
224
224
  }
225
225
  },
@@ -281,16 +281,20 @@ const inputAddonSlotRecipe = defineSlotRecipe({
281
281
  placement: {
282
282
  left: {
283
283
  root: {
284
- left: '3',
284
+ left: '2',
285
285
  borderTopRightRadius: 'none!',
286
- borderBottomRightRadius: 'none!'
286
+ borderBottomRightRadius: 'none!',
287
+ minWidth: '32px',
288
+ justifyContent: 'center'
287
289
  }
288
290
  },
289
291
  right: {
290
292
  root: {
291
- right: '3',
293
+ right: '2',
292
294
  borderTopLeftRadius: 'none!',
293
- borderBottomLeftRadius: 'none!'
295
+ borderBottomLeftRadius: 'none!',
296
+ minWidth: '32px',
297
+ justifyContent: 'center'
294
298
  }
295
299
  }
296
300
  },
@@ -300,8 +304,16 @@ const inputAddonSlotRecipe = defineSlotRecipe({
300
304
  height: '6.5',
301
305
  borderRadius: '2xs',
302
306
  _hasBackground: {
303
- _placementLeft: { left: '0.5' },
304
- _placementRight: { right: '0.5' }
307
+ _placementLeft: {
308
+ left: '0.5',
309
+ minWidth: '24px',
310
+ justifyContent: 'center'
311
+ },
312
+ _placementRight: {
313
+ right: '0.5',
314
+ minWidth: '24px',
315
+ justifyContent: 'center'
316
+ }
305
317
  }
306
318
  }
307
319
  },
@@ -310,8 +322,16 @@ const inputAddonSlotRecipe = defineSlotRecipe({
310
322
  height: '32px',
311
323
  borderRadius: 'sm',
312
324
  _hasBackground: {
313
- _placementLeft: { left: '3px' },
314
- _placementRight: { right: '3px' }
325
+ _placementLeft: {
326
+ left: '3px',
327
+ minWidth: '32px',
328
+ justifyContent: 'center'
329
+ },
330
+ _placementRight: {
331
+ right: '3px',
332
+ minWidth: '32px',
333
+ justifyContent: 'center'
334
+ }
315
335
  }
316
336
  }
317
337
  }
@@ -53,7 +53,10 @@ export const modalSlotRecipe = defineSlotRecipe({
53
53
  _nextTheme: {
54
54
  background: 'background.stage',
55
55
  borderColor: 'border.bold',
56
- color: 'text.default'
56
+ color: 'text.default',
57
+ '&[data-modal-type="drawer"]': {
58
+ borderColor: 'border.default',
59
+ }
57
60
  }
58
61
  },
59
62
 
@@ -72,6 +75,10 @@ export const modalSlotRecipe = defineSlotRecipe({
72
75
  color: 'text.default',
73
76
  background: 'background.neutral.subtle',
74
77
  borderBottomColor: 'border.default'
78
+ },
79
+ '&[data-modal-presentation="drawer"]': {
80
+ borderTopLeftRadius: 'none',
81
+ borderTopRightRadius: 'none',
75
82
  }
76
83
  },
77
84
  closeButton: {
@@ -120,7 +127,7 @@ export const modalSlotRecipe = defineSlotRecipe({
120
127
  borderRadius: 'md'
121
128
  }
122
129
  }
123
- }
130
+ },
124
131
  },
125
132
 
126
133
  defaultVariants: {
@@ -21,12 +21,14 @@ const radioSlotRecipe = defineSlotRecipe({
21
21
  }
22
22
  },
23
23
  '& .mp-shared__hidden': {
24
- '&:focus + .mp-radio__control': {
25
- borderColor: 'blue.400',
26
- boxShadow: 'focus',
27
- _nextTheme: {
28
- borderColor: 'border.focused',
29
- boxShadow: '0 0 0 1px {colors.border.focused}'
24
+ _focusVisible: {
25
+ '& + .mp-radio__control': {
26
+ borderColor: 'blue.400',
27
+ boxShadow: 'focus',
28
+ _nextTheme: {
29
+ borderColor: 'border.focused',
30
+ boxShadow: '0 0 0 1px {colors.border.focused}'
31
+ }
30
32
  }
31
33
  }
32
34
  },
@@ -87,7 +87,7 @@ const segmentedControlSlotRecipe = defineSlotRecipe({
87
87
  {
88
88
  color: 'blue.700'
89
89
  },
90
- 'input[type=radio]:checked:focus + &, input[type=radio][aria-checked=mixed]:focus + &': {
90
+ 'input[type=radio]:checked:focus-visible + &, input[type=radio][aria-checked=mixed]:focus-visible + &': {
91
91
  color: 'blue.700',
92
92
  boxShadow: 'outer',
93
93
  _nextTheme: {
@@ -62,7 +62,7 @@ const tabRecipe = defineRecipe({
62
62
  opacity: 0.4,
63
63
  cursor: 'not-allowed'
64
64
  },
65
- _focus: {
65
+ _focusVisible: {
66
66
  shadow: '0 0 0 2px #E0EEFF',
67
67
  borderRadius: 'sm'
68
68
  },
@@ -71,7 +71,7 @@ const tabRecipe = defineRecipe({
71
71
  _hover: {
72
72
  color: 'text.default'
73
73
  },
74
- _focus: {
74
+ _focusVisible: {
75
75
  shadow: '0 0 0 2px var(--mp-colors-border-focused)'
76
76
  }
77
77
  }
@@ -34,7 +34,7 @@ const tagSlotRecipe = defineSlotRecipe({
34
34
  right: '0',
35
35
  paddingTop: '1',
36
36
  padding: '0',
37
- transition: 'all 250ms!',
37
+ transition: 'opacity 250ms!',
38
38
  visibility: 'hidden',
39
39
  opacity: '0',
40
40
  _groupHover: {
@@ -97,9 +97,9 @@ const tagSlotRecipe = defineSlotRecipe({
97
97
  borderBottomLeftRadius: '0',
98
98
  color: 'gray.600',
99
99
  _nextTheme: {
100
- background: 'background.danger',
100
+ background: 'background.neutral.subtle',
101
101
  boxShadow: '-7px 0px 15px -3px #0000001A',
102
- color: 'icon.danger',
102
+ color: 'icon.default',
103
103
  }
104
104
  }
105
105
  }
@@ -5,7 +5,6 @@ export const textRecipe = defineRecipe({
5
5
  jsx: ['MpText', 'mp-text'],
6
6
  base: {
7
7
  color: 'var(--mp-text-color)',
8
- fontVariantNumeric: 'lining-nums tabular-nums',
9
8
  '&[data-text-strike=true]': {
10
9
  textDecoration: 'line-through'
11
10
  },
@@ -167,7 +167,10 @@ const timelineSeparatorSlotRecipe = defineSlotRecipe({
167
167
  backgroundColor: 'transparent'
168
168
  },
169
169
  _nextTheme: {
170
- backgroundColor: 'border.default'
170
+ backgroundColor: 'border.default',
171
+ '&[data-position=last]': {
172
+ backgroundColor: 'transparent'
173
+ }
171
174
  }
172
175
  }
173
176
  }
@@ -211,7 +214,10 @@ const timelineAccordionSlotRecipe = defineSlotRecipe({
211
214
  },
212
215
  roundedTop: 'full',
213
216
  _nextTheme: {
214
- backgroundColor: 'border.default'
217
+ backgroundColor: 'border.default',
218
+ '&[data-position=last]': {
219
+ backgroundColor: 'transparent'
220
+ }
215
221
  }
216
222
  },
217
223
  title: {
@@ -9,13 +9,12 @@ const toastSlotRecipe = defineSlotRecipe({
9
9
  display: 'flex',
10
10
  alignItems: 'center',
11
11
  gap: '2',
12
- width: '356px',
13
12
  border: '1.5px solid',
14
13
  borderRadius: 'md',
15
14
  backgroundColor: 'white',
16
15
  padding: '3',
17
16
  boxShadow: 'lg',
18
- zIndex: '9999',
17
+ zIndex: '1700',
19
18
  _nextTheme: {
20
19
  backgroundColor: 'background.neutral',
21
20
  }
@@ -21,12 +21,14 @@ const toggleSlotRecipe = defineSlotRecipe({
21
21
  }
22
22
  },
23
23
  '& .mp-shared__hidden': {
24
- '&:focus + .mp-toggle__control': {
25
- borderColor: 'blue.400',
26
- boxShadow: 'focus',
27
- _nextTheme: {
28
- borderColor: 'border.focused',
29
- boxShadow: '0 0 0 1px {colors.border.focused}'
24
+ _focusVisible: {
25
+ '& + .mp-toggle__control': {
26
+ borderColor: 'blue.400',
27
+ boxShadow: 'focus',
28
+ _nextTheme: {
29
+ borderColor: 'border.focused',
30
+ boxShadow: '0 0 0 1px {colors.border.focused}'
31
+ }
30
32
  }
31
33
  }
32
34
  },
@@ -10,6 +10,7 @@ const tooltipRecipe = defineRecipe({
10
10
  fontWeight: 'regular',
11
11
  pointerEvents: 'none',
12
12
  fontSize: 'sm',
13
+ lineHeight: '20px',
13
14
  shadow: 'md',
14
15
  maxW: '300px',
15
16
  zIndex: 'tooltip',
@@ -14,7 +14,7 @@ export const textStyles = defineTextStyles({
14
14
  },
15
15
  label: {
16
16
  sm: { value: { fontFamily: 'var(--font-inter)', fontSize: 'sm', lineHeight: 'sm' } },
17
- md: { value: { fontFamily: 'var(--font-inter)', fontSize: 'md', lineHeight: 'lg' } }
17
+ md: { value: { fontFamily: 'var(--font-inter)', fontSize: 'md', lineHeight: 'md' } }
18
18
  },
19
19
  h3: {
20
20
  value: {
@@ -7,6 +7,7 @@ export const colors = defineTokens.colors({
7
7
  background: { value: '#F1F5F9' },
8
8
  overlay: { value: 'rgba(22, 26, 32, 0.8)' },
9
9
  white: { value: '#FFFFFF' },
10
+ vibrantPurple: { value: 'linear-gradient(98deg, #F8F9FB 0%, #B5A2EC 50.01%, #4B61DD 100%)' },
10
11
  whiteAlpha: {
11
12
  50: { value: 'rgba(255, 255, 255, 0.04)' },
12
13
  100: { value: 'rgba(255, 255, 255, 0.06)' },
@@ -4,6 +4,7 @@ export const colors = defineTokens.colors({
4
4
  debug: { value: 'red' },
5
5
  currentcolor: { value: 'currentcolor' },
6
6
  white: { value: '#FFFFFF' },
7
+ vibrantPurple: { value: 'linear-gradient(98deg, #F8F9FB 0%, #B5A2EC 50.01%, #4B61DD 100%)' },
7
8
  dark: {
8
9
  '-100': {
9
10
  value: '#101214'