retail-design-system 1.0.0

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 (110) hide show
  1. package/.github/workflows/release.yml +46 -0
  2. package/.oxfmtrc.json +17 -0
  3. package/.oxlintrc.json +132 -0
  4. package/.vscode/extensions.json +3 -0
  5. package/.vscode/settings.json +13 -0
  6. package/README.md +56 -0
  7. package/apps/storybook/.storybook/main.ts +8 -0
  8. package/apps/storybook/.storybook/preview.css +9 -0
  9. package/apps/storybook/.storybook/preview.ts +6 -0
  10. package/apps/storybook/package.json +24 -0
  11. package/apps/storybook/stories/button.stories.ts +118 -0
  12. package/apps/storybook/stories/input.stories.ts +127 -0
  13. package/apps/storybook/stories/label.stories.ts +98 -0
  14. package/apps/storybook/tsconfig.app.json +24 -0
  15. package/apps/storybook/tsconfig.json +4 -0
  16. package/apps/storybook/tsconfig.node.json +22 -0
  17. package/apps/storybook/vite.config.ts +15 -0
  18. package/apps/web/app/(sidebar)/components/[...slugs]/get-child-block.ts +17 -0
  19. package/apps/web/app/(sidebar)/components/[...slugs]/get-component-page-match.ts +56 -0
  20. package/apps/web/app/(sidebar)/components/[...slugs]/get-direct-child-block.ts +22 -0
  21. package/apps/web/app/(sidebar)/components/[...slugs]/layout.tsx +25 -0
  22. package/apps/web/app/(sidebar)/components/[...slugs]/page.tsx +32 -0
  23. package/apps/web/app/(sidebar)/components/[...slugs]/pascal-to-kebab-case.ts +9 -0
  24. package/apps/web/app/(sidebar)/components/button2/page.tsx +154 -0
  25. package/apps/web/app/(sidebar)/components/input/page.tsx +98 -0
  26. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-card-badge.tsx +9 -0
  27. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-coin-active-badge.tsx +14 -0
  28. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-coin-inactive-badge.tsx +12 -0
  29. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-create-coin.tsx +44 -0
  30. package/apps/web/app/(sidebar)/experiments/2025-10-22/mayhem-mode-dialog-icon.tsx +47 -0
  31. package/apps/web/app/(sidebar)/experiments/2025-10-22/page.tsx +167 -0
  32. package/apps/web/app/(sidebar)/experiments/2025-11-04/filters.tsx +90 -0
  33. package/apps/web/app/(sidebar)/experiments/2025-11-04/page.tsx +18 -0
  34. package/apps/web/app/(sidebar)/layout.tsx +17 -0
  35. package/apps/web/app/(sidebar)/primitives/colors/page.tsx +49 -0
  36. package/apps/web/app/favicon.ico +0 -0
  37. package/apps/web/app/layout.tsx +39 -0
  38. package/apps/web/app/page.tsx +14 -0
  39. package/apps/web/app/providers.tsx +15 -0
  40. package/apps/web/components/dialog.tsx +21 -0
  41. package/apps/web/components/logo.tsx +11 -0
  42. package/apps/web/components/logomark.tsx +21 -0
  43. package/apps/web/components/logotype.tsx +25 -0
  44. package/apps/web/components/notion/notion-block-content.tsx +401 -0
  45. package/apps/web/components/notion/notion-docs-blocks.tsx +18 -0
  46. package/apps/web/components/notion/notion-docs-code-page.tsx +20 -0
  47. package/apps/web/components/notion/notion-docs-layout.tsx +52 -0
  48. package/apps/web/components/notion/notion-revalidate-button-client.tsx +14 -0
  49. package/apps/web/components/notion/notion-revalidate-button.tsx +20 -0
  50. package/apps/web/components/notion/notion-rich-text-segments.tsx +55 -0
  51. package/apps/web/components/notion/notion-tabs.tsx +38 -0
  52. package/apps/web/components/notion/notion.ts +223 -0
  53. package/apps/web/components/sidebar-client.tsx +60 -0
  54. package/apps/web/components/sidebar-server.tsx +185 -0
  55. package/apps/web/components/tooltip.tsx +53 -0
  56. package/apps/web/components/topbar.tsx +14 -0
  57. package/apps/web/next.config.ts +10 -0
  58. package/apps/web/package.json +42 -0
  59. package/apps/web/postcss.config.mjs +5 -0
  60. package/apps/web/public/2025-10-22-dialog-banner.png +0 -0
  61. package/apps/web/public/pump-logomark.svg +7 -0
  62. package/apps/web/styles/custom.css +31 -0
  63. package/apps/web/styles/font.css +8 -0
  64. package/apps/web/styles/global.css +5 -0
  65. package/apps/web/styles/tailwind-reset.css +102 -0
  66. package/apps/web/styles/tailwind.css +140 -0
  67. package/apps/web/tsconfig.json +34 -0
  68. package/bun.lock +1249 -0
  69. package/bunfig.toml +2 -0
  70. package/package.json +41 -0
  71. package/packages/ui/global.d.ts +4 -0
  72. package/packages/ui/package.json +49 -0
  73. package/packages/ui/src/components/button/button-spinner.module.css +95 -0
  74. package/packages/ui/src/components/button/button-spinner.tsx +18 -0
  75. package/packages/ui/src/components/button/button.module.css +144 -0
  76. package/packages/ui/src/components/button/button.tsx +102 -0
  77. package/packages/ui/src/components/button-link/button-link.tsx +46 -0
  78. package/packages/ui/src/components/column/column.module.css +4 -0
  79. package/packages/ui/src/components/column/column.tsx +65 -0
  80. package/packages/ui/src/components/row/row.module.css +4 -0
  81. package/packages/ui/src/components/row/row.tsx +65 -0
  82. package/packages/ui/src/components/spacer/spacer.module.css +3 -0
  83. package/packages/ui/src/components/spacer/spacer.tsx +30 -0
  84. package/packages/ui/src/components/switch/switch.module.css +62 -0
  85. package/packages/ui/src/components/switch/switch.tsx +58 -0
  86. package/packages/ui/src/components/tabs/tabs-panel.module.css +4 -0
  87. package/packages/ui/src/components/tabs/tabs-panel.tsx +21 -0
  88. package/packages/ui/src/components/tabs/tabs.module.css +5 -0
  89. package/packages/ui/src/components/tabs/tabs.tsx +21 -0
  90. package/packages/ui/src/components/tabs-underline/tabs-underline-indicator.module.css +10 -0
  91. package/packages/ui/src/components/tabs-underline/tabs-underline-indicator.tsx +33 -0
  92. package/packages/ui/src/components/tabs-underline/tabs-underline-list.module.css +8 -0
  93. package/packages/ui/src/components/tabs-underline/tabs-underline-list.tsx +27 -0
  94. package/packages/ui/src/components/tabs-underline/tabs-underline-tab.module.css +24 -0
  95. package/packages/ui/src/components/tabs-underline/tabs-underline-tab.tsx +30 -0
  96. package/packages/ui/src/foundations/colors/colors.ts +475 -0
  97. package/packages/ui/src/foundations/colors/generate-css.ts +34 -0
  98. package/packages/ui/src/foundations/colors/retail-design-system.css +116 -0
  99. package/packages/ui/src/foundations/colors/tailwind-v3.ts +18 -0
  100. package/packages/ui/src/foundations/colors/tailwind-v4.css +116 -0
  101. package/packages/ui/src/index.ts +34 -0
  102. package/packages/ui/src/input.module.css +57 -0
  103. package/packages/ui/src/input.tsx +49 -0
  104. package/packages/ui/src/label.module.css +8 -0
  105. package/packages/ui/src/label.tsx +23 -0
  106. package/packages/ui/tsconfig.json +14 -0
  107. package/packages/ui/tsup.config.ts +31 -0
  108. package/scripts/clean.sh +69 -0
  109. package/scripts/sort-package-json.sh +30 -0
  110. package/turbo.json +15 -0
@@ -0,0 +1,475 @@
1
+ export interface CompositeColor {
2
+ color: PrimitiveColor
3
+ name: string
4
+ }
5
+
6
+ export type CompositeColorName = keyof typeof composite
7
+
8
+ export interface PrimitiveColor {
9
+ hex: string
10
+ name: string
11
+ }
12
+
13
+ export type PrimitiveColorName = keyof typeof primitive
14
+
15
+ export const primitive: Record<string, PrimitiveColor> = {
16
+ "blue-400": {
17
+ hex: "#60A5FA",
18
+ name: "blue-400",
19
+ },
20
+ "blue-500": {
21
+ hex: "#3B82F6",
22
+ name: "blue-500",
23
+ },
24
+ "blue-900": {
25
+ hex: "#1E3A8A",
26
+ name: "blue-900",
27
+ },
28
+ "blue-950": {
29
+ hex: "#172554",
30
+ name: "blue-950",
31
+ },
32
+ "green-100": {
33
+ hex: "#DCFCE7",
34
+ name: "green-100",
35
+ },
36
+ "green-200": {
37
+ hex: "#BBF7D0",
38
+ name: "green-200",
39
+ },
40
+ "green-300": {
41
+ hex: "#86EFAC",
42
+ name: "green-300",
43
+ },
44
+ "green-400": {
45
+ hex: "#4ADE80",
46
+ name: "green-400",
47
+ },
48
+ "green-50": {
49
+ hex: "#F0FDF4",
50
+ name: "green-50",
51
+ },
52
+ "green-500": {
53
+ hex: "#22C55E",
54
+ name: "green-500",
55
+ },
56
+ "green-600": {
57
+ hex: "#16A34A",
58
+ name: "green-600",
59
+ },
60
+ "green-700": {
61
+ hex: "#15803D",
62
+ name: "green-700",
63
+ },
64
+ "green-800": {
65
+ hex: "#166534",
66
+ name: "green-800",
67
+ },
68
+ "green-900": {
69
+ hex: "#14532D",
70
+ name: "green-900",
71
+ },
72
+ "green-950": {
73
+ hex: "#052E16",
74
+ name: "green-950",
75
+ },
76
+ "neutral-200": {
77
+ hex: "#E4E4E7",
78
+ name: "neutral-200",
79
+ },
80
+ "neutral-400": {
81
+ hex: "#A1A1AA",
82
+ name: "neutral-400",
83
+ },
84
+ "neutral-50": {
85
+ hex: "#FAFAFA",
86
+ name: "neutral-50",
87
+ },
88
+ "orange-400": {
89
+ hex: "#FB923C",
90
+ name: "orange-400",
91
+ },
92
+ "orange-900": {
93
+ hex: "#7C2D12",
94
+ name: "orange-900",
95
+ },
96
+ "pink-400": {
97
+ hex: "#F472B6",
98
+ name: "pink-400",
99
+ },
100
+ "pink-900": {
101
+ hex: "#831843",
102
+ name: "pink-900",
103
+ },
104
+ "purple-400": {
105
+ hex: "#C084FC",
106
+ name: "purple-400",
107
+ },
108
+ "purple-900": {
109
+ hex: "#581C87",
110
+ name: "purple-900",
111
+ },
112
+ "red-400": {
113
+ hex: "#F87171",
114
+ name: "red-400",
115
+ },
116
+ "red-500": {
117
+ hex: "#EF4444",
118
+ name: "red-500",
119
+ },
120
+ "red-900": {
121
+ hex: "#7F1D1D",
122
+ name: "red-900",
123
+ },
124
+ "red-950": {
125
+ hex: "#450A0A",
126
+ name: "red-950",
127
+ },
128
+ "sprout-100": {
129
+ hex: "#DDF8E0",
130
+ name: "sprout-100",
131
+ },
132
+ "sprout-200": {
133
+ hex: "#C2F2C7",
134
+ name: "sprout-200",
135
+ },
136
+ "sprout-300": {
137
+ hex: "#A3EAAB",
138
+ name: "sprout-300",
139
+ },
140
+ "sprout-400": {
141
+ hex: "#82E28D",
142
+ name: "sprout-400",
143
+ },
144
+ "sprout-50": {
145
+ hex: "#F2FCF3",
146
+ name: "sprout-50",
147
+ },
148
+ "sprout-500": {
149
+ hex: "#5DDF6C",
150
+ name: "sprout-500",
151
+ },
152
+ "sprout-600": {
153
+ hex: "#3DCC4D",
154
+ name: "sprout-600",
155
+ },
156
+ "sprout-700": {
157
+ hex: "#2EAA3C",
158
+ name: "sprout-700",
159
+ },
160
+ "sprout-800": {
161
+ hex: "#25812F",
162
+ name: "sprout-800",
163
+ },
164
+ "sprout-900": {
165
+ hex: "#1A5821",
166
+ name: "sprout-900",
167
+ },
168
+ "sprout-950": {
169
+ hex: "#0E2E12",
170
+ name: "sprout-950",
171
+ },
172
+ "yellow-400": {
173
+ hex: "#FACC15",
174
+ name: "yellow-400",
175
+ },
176
+ "yellow-500": {
177
+ hex: "#EAB308",
178
+ name: "yellow-500",
179
+ },
180
+ "yellow-900": {
181
+ hex: "#713F12",
182
+ name: "yellow-900",
183
+ },
184
+ "yellow-950": {
185
+ hex: "#422006",
186
+ name: "yellow-950",
187
+ },
188
+ "zinc-100": {
189
+ hex: "#b0b4ba",
190
+ name: "zinc-100",
191
+ },
192
+ "zinc-200": {
193
+ hex: "#696e77",
194
+ name: "zinc-200",
195
+ },
196
+ "zinc-300": {
197
+ hex: "#5a6169",
198
+ name: "zinc-300",
199
+ },
200
+ "zinc-400": {
201
+ hex: "#43484e",
202
+ name: "zinc-400",
203
+ },
204
+ "zinc-50": {
205
+ hex: "#edeef0",
206
+ name: "zinc-50",
207
+ },
208
+ "zinc-500": {
209
+ hex: "#363a3f",
210
+ name: "zinc-500",
211
+ },
212
+ "zinc-600": {
213
+ hex: "#2e3135",
214
+ name: "zinc-600",
215
+ },
216
+ "zinc-700": {
217
+ hex: "#272a2d",
218
+ name: "zinc-700",
219
+ },
220
+ "zinc-800": {
221
+ hex: "#212225",
222
+ name: "zinc-800",
223
+ },
224
+ "zinc-900": {
225
+ hex: "#18191b",
226
+ name: "zinc-900",
227
+ },
228
+ "zinc-950": {
229
+ hex: "#111113",
230
+ name: "zinc-950",
231
+ },
232
+ }
233
+
234
+ export const composite: Record<string, CompositeColor> = {
235
+ "bg-accent": {
236
+ color: primitive["green-300"],
237
+ name: "bg-accent",
238
+ },
239
+ "bg-accent-inverse": {
240
+ color: primitive["green-950"],
241
+ name: "bg-accent-inverse",
242
+ },
243
+ "bg-decorative-blue": {
244
+ color: primitive["blue-400"],
245
+ name: "bg-decorative-blue",
246
+ },
247
+ "bg-decorative-blue-inverse": {
248
+ color: primitive["blue-900"],
249
+ name: "bg-decorative-blue-inverse",
250
+ },
251
+ "bg-decorative-orange": {
252
+ color: primitive["orange-400"],
253
+ name: "bg-decorative-orange",
254
+ },
255
+ "bg-decorative-orange-inverse": {
256
+ color: primitive["orange-900"],
257
+ name: "bg-decorative-orange-inverse",
258
+ },
259
+ "bg-decorative-pink": {
260
+ color: primitive["pink-400"],
261
+ name: "bg-decorative-pink",
262
+ },
263
+ "bg-decorative-pink-inverse": {
264
+ color: primitive["pink-900"],
265
+ name: "bg-decorative-pink-inverse",
266
+ },
267
+ "bg-decorative-purple": {
268
+ color: primitive["purple-400"],
269
+ name: "bg-decorative-purple",
270
+ },
271
+ "bg-decorative-purple-inverse": {
272
+ color: primitive["purple-900"],
273
+ name: "bg-decorative-purple-inverse",
274
+ },
275
+ "bg-error": {
276
+ color: primitive["red-400"],
277
+ name: "bg-error",
278
+ },
279
+ "bg-error-inverse": {
280
+ color: primitive["red-950"],
281
+ name: "bg-error-inverse",
282
+ },
283
+ "bg-info": {
284
+ color: primitive["blue-400"],
285
+ name: "bg-info",
286
+ },
287
+ "bg-info-inverse": {
288
+ color: primitive["blue-950"],
289
+ name: "bg-info-inverse",
290
+ },
291
+ "bg-interactive": {
292
+ color: primitive["green-300"],
293
+ name: "bg-interactive",
294
+ },
295
+ "bg-interactive-disabled": {
296
+ color: primitive["green-950"],
297
+ name: "bg-interactive-disabled",
298
+ },
299
+ "bg-interactive-inverse": {
300
+ color: primitive["green-950"],
301
+ name: "bg-interactive-inverse",
302
+ },
303
+ "bg-inverse": {
304
+ color: primitive["zinc-700"],
305
+ name: "bg-inverse",
306
+ },
307
+ "bg-muted": {
308
+ color: primitive["zinc-800"],
309
+ name: "bg-muted",
310
+ },
311
+ "bg-muted-disabled": {
312
+ color: primitive["zinc-900"],
313
+ name: "bg-muted-disabled",
314
+ },
315
+ "bg-muted-secondary": {
316
+ color: primitive["zinc-700"],
317
+ name: "bg-muted-secondary",
318
+ },
319
+ "bg-muted-secondary-disabled": {
320
+ color: primitive["zinc-800"],
321
+ name: "bg-muted-secondary-disabled",
322
+ },
323
+ "bg-primary": {
324
+ color: primitive["zinc-950"],
325
+ name: "bg-primary",
326
+ },
327
+ "bg-secondary": {
328
+ color: primitive["zinc-900"],
329
+ name: "bg-secondary",
330
+ },
331
+ "bg-success": {
332
+ color: primitive["sprout-400"],
333
+ name: "bg-success",
334
+ },
335
+ "bg-success-inverse": {
336
+ color: primitive["sprout-950"],
337
+ name: "bg-success-inverse",
338
+ },
339
+ "bg-tertiary": {
340
+ color: primitive["zinc-800"],
341
+ name: "bg-tertiary",
342
+ },
343
+ "bg-warning": {
344
+ color: primitive["yellow-400"],
345
+ name: "bg-warning",
346
+ },
347
+ "bg-warning-inverse": {
348
+ color: primitive["yellow-950"],
349
+ name: "bg-warning-inverse",
350
+ },
351
+ "border-accent": {
352
+ color: primitive["green-500"],
353
+ name: "border-accent",
354
+ },
355
+ "border-error": {
356
+ color: primitive["red-500"],
357
+ name: "border-error",
358
+ },
359
+ "border-info": {
360
+ color: primitive["blue-500"],
361
+ name: "border-info",
362
+ },
363
+ "border-inverse": {
364
+ color: primitive["zinc-50"],
365
+ name: "border-inverse",
366
+ },
367
+ "border-primary": {
368
+ color: primitive["zinc-900"],
369
+ name: "border-primary",
370
+ },
371
+ "border-secondary": {
372
+ color: primitive["zinc-800"],
373
+ name: "border-secondary",
374
+ },
375
+ "border-success": {
376
+ color: primitive["green-500"],
377
+ name: "border-success",
378
+ },
379
+ "border-tertiary": {
380
+ color: primitive["zinc-700"],
381
+ name: "border-tertiary",
382
+ },
383
+ "border-warning": {
384
+ color: primitive["yellow-500"],
385
+ name: "border-warning",
386
+ },
387
+ "text-accent": {
388
+ color: primitive["green-300"],
389
+ name: "text-accent",
390
+ },
391
+ "text-accent-muted": {
392
+ color: primitive["green-900"],
393
+ name: "text-accent-muted",
394
+ },
395
+ "text-error": {
396
+ color: primitive["red-400"],
397
+ name: "text-error",
398
+ },
399
+ "text-error-muted": {
400
+ color: primitive["red-900"],
401
+ name: "text-error-muted",
402
+ },
403
+ "text-info": {
404
+ color: primitive["blue-500"],
405
+ name: "text-info",
406
+ },
407
+ "text-info-muted": {
408
+ color: primitive["blue-900"],
409
+ name: "text-info-muted",
410
+ },
411
+ "text-inverse": {
412
+ color: primitive["zinc-950"],
413
+ name: "text-inverse",
414
+ },
415
+ "text-muted": {
416
+ color: primitive["zinc-500"],
417
+ name: "text-muted",
418
+ },
419
+ "text-on-accent": {
420
+ color: primitive["green-950"],
421
+ name: "text-on-accent",
422
+ },
423
+ "text-on-disabled": {
424
+ color: primitive["zinc-400"],
425
+ name: "text-on-disabled",
426
+ },
427
+ "text-on-error": {
428
+ color: primitive["red-950"],
429
+ name: "text-on-error",
430
+ },
431
+ "text-on-info": {
432
+ color: primitive["blue-950"],
433
+ name: "text-on-info",
434
+ },
435
+ "text-on-muted": {
436
+ color: primitive["zinc-50"],
437
+ name: "text-on-muted",
438
+ },
439
+ "text-on-success": {
440
+ color: primitive["sprout-950"],
441
+ name: "text-on-success",
442
+ },
443
+ "text-on-warning": {
444
+ color: primitive["yellow-950"],
445
+ name: "text-on-warning",
446
+ },
447
+ "text-primary": {
448
+ color: primitive["neutral-50"],
449
+ name: "text-primary",
450
+ },
451
+ "text-secondary": {
452
+ color: primitive["neutral-200"],
453
+ name: "text-secondary",
454
+ },
455
+ "text-success": {
456
+ color: primitive["sprout-500"],
457
+ name: "text-success",
458
+ },
459
+ "text-success-muted": {
460
+ color: primitive["sprout-900"],
461
+ name: "text-success-muted",
462
+ },
463
+ "text-tertiary": {
464
+ color: primitive["neutral-400"],
465
+ name: "text-tertiary",
466
+ },
467
+ "text-warning": {
468
+ color: primitive["yellow-500"],
469
+ name: "text-warning",
470
+ },
471
+ "text-warning-muted": {
472
+ color: primitive["yellow-900"],
473
+ name: "text-warning-muted",
474
+ },
475
+ }
@@ -0,0 +1,34 @@
1
+ // oxlint-disable func-style
2
+ // oxlint-disable import/no-nodejs-modules
3
+
4
+ import { writeFileSync } from "node:fs"
5
+ import { tailwindV3Colors } from "./tailwind-v3"
6
+
7
+ // Generate CSS custom properties
8
+ const generateCSS = (wrapper: string) => {
9
+ const cssLines = [wrapper === "root" ? ":root {" : "@theme {"]
10
+
11
+ // Sort the color names for consistent output
12
+ const sortedKeys = Object.keys(tailwindV3Colors).toSorted()
13
+
14
+ for (const colorName of sortedKeys) {
15
+ const hexValue = tailwindV3Colors[colorName]
16
+ cssLines.push(` --color-${colorName}: ${hexValue};`)
17
+ }
18
+
19
+ cssLines.push("}")
20
+
21
+ return cssLines.join("\n")
22
+ }
23
+
24
+ // Write the Tailwind v3 CSS file
25
+ const cssV3Content = generateCSS("root")
26
+ const outputPathV3 = new URL("retail-design-system.css", import.meta.url)
27
+ writeFileSync(outputPathV3, cssV3Content, "utf8")
28
+ console.log(`✓ Generated ${outputPathV3.pathname}`)
29
+
30
+ // Write the Tailwind v4 CSS file
31
+ const cssV4Content = generateCSS("theme")
32
+ const outputPathV4 = new URL("tailwind-v4.css", import.meta.url)
33
+ writeFileSync(outputPathV4, cssV4Content, "utf8")
34
+ console.log(`✓ Generated ${outputPathV4.pathname}`)
@@ -0,0 +1,116 @@
1
+ :root {
2
+ --color-bg-accent: #86EFAC;
3
+ --color-bg-accent-inverse: #052E16;
4
+ --color-bg-decorative-blue: #60A5FA;
5
+ --color-bg-decorative-blue-inverse: #1E3A8A;
6
+ --color-bg-decorative-orange: #FB923C;
7
+ --color-bg-decorative-orange-inverse: #7C2D12;
8
+ --color-bg-decorative-pink: #F472B6;
9
+ --color-bg-decorative-pink-inverse: #831843;
10
+ --color-bg-decorative-purple: #C084FC;
11
+ --color-bg-decorative-purple-inverse: #581C87;
12
+ --color-bg-error: #F87171;
13
+ --color-bg-error-inverse: #450A0A;
14
+ --color-bg-info: #60A5FA;
15
+ --color-bg-info-inverse: #172554;
16
+ --color-bg-interactive: #86EFAC;
17
+ --color-bg-interactive-disabled: #052E16;
18
+ --color-bg-interactive-inverse: #052E16;
19
+ --color-bg-inverse: #272a2d;
20
+ --color-bg-muted: #212225;
21
+ --color-bg-muted-disabled: #18191b;
22
+ --color-bg-muted-secondary: #272a2d;
23
+ --color-bg-muted-secondary-disabled: #212225;
24
+ --color-bg-primary: #111113;
25
+ --color-bg-secondary: #18191b;
26
+ --color-bg-success: #82E28D;
27
+ --color-bg-success-inverse: #0E2E12;
28
+ --color-bg-tertiary: #212225;
29
+ --color-bg-warning: #FACC15;
30
+ --color-bg-warning-inverse: #422006;
31
+ --color-blue-400: #60A5FA;
32
+ --color-blue-500: #3B82F6;
33
+ --color-blue-900: #1E3A8A;
34
+ --color-blue-950: #172554;
35
+ --color-border-accent: #22C55E;
36
+ --color-border-error: #EF4444;
37
+ --color-border-info: #3B82F6;
38
+ --color-border-inverse: #edeef0;
39
+ --color-border-primary: #18191b;
40
+ --color-border-secondary: #212225;
41
+ --color-border-success: #22C55E;
42
+ --color-border-tertiary: #272a2d;
43
+ --color-border-warning: #EAB308;
44
+ --color-green-100: #DCFCE7;
45
+ --color-green-200: #BBF7D0;
46
+ --color-green-300: #86EFAC;
47
+ --color-green-400: #4ADE80;
48
+ --color-green-50: #F0FDF4;
49
+ --color-green-500: #22C55E;
50
+ --color-green-600: #16A34A;
51
+ --color-green-700: #15803D;
52
+ --color-green-800: #166534;
53
+ --color-green-900: #14532D;
54
+ --color-green-950: #052E16;
55
+ --color-neutral-200: #E4E4E7;
56
+ --color-neutral-400: #A1A1AA;
57
+ --color-neutral-50: #FAFAFA;
58
+ --color-orange-400: #FB923C;
59
+ --color-orange-900: #7C2D12;
60
+ --color-pink-400: #F472B6;
61
+ --color-pink-900: #831843;
62
+ --color-purple-400: #C084FC;
63
+ --color-purple-900: #581C87;
64
+ --color-red-400: #F87171;
65
+ --color-red-500: #EF4444;
66
+ --color-red-900: #7F1D1D;
67
+ --color-red-950: #450A0A;
68
+ --color-sprout-100: #DDF8E0;
69
+ --color-sprout-200: #C2F2C7;
70
+ --color-sprout-300: #A3EAAB;
71
+ --color-sprout-400: #82E28D;
72
+ --color-sprout-50: #F2FCF3;
73
+ --color-sprout-500: #5DDF6C;
74
+ --color-sprout-600: #3DCC4D;
75
+ --color-sprout-700: #2EAA3C;
76
+ --color-sprout-800: #25812F;
77
+ --color-sprout-900: #1A5821;
78
+ --color-sprout-950: #0E2E12;
79
+ --color-text-accent: #86EFAC;
80
+ --color-text-accent-muted: #14532D;
81
+ --color-text-error: #F87171;
82
+ --color-text-error-muted: #7F1D1D;
83
+ --color-text-info: #3B82F6;
84
+ --color-text-info-muted: #1E3A8A;
85
+ --color-text-inverse: #111113;
86
+ --color-text-muted: #363a3f;
87
+ --color-text-on-accent: #052E16;
88
+ --color-text-on-disabled: #43484e;
89
+ --color-text-on-error: #450A0A;
90
+ --color-text-on-info: #172554;
91
+ --color-text-on-muted: #edeef0;
92
+ --color-text-on-success: #0E2E12;
93
+ --color-text-on-warning: #422006;
94
+ --color-text-primary: #FAFAFA;
95
+ --color-text-secondary: #E4E4E7;
96
+ --color-text-success: #5DDF6C;
97
+ --color-text-success-muted: #1A5821;
98
+ --color-text-tertiary: #A1A1AA;
99
+ --color-text-warning: #EAB308;
100
+ --color-text-warning-muted: #713F12;
101
+ --color-yellow-400: #FACC15;
102
+ --color-yellow-500: #EAB308;
103
+ --color-yellow-900: #713F12;
104
+ --color-yellow-950: #422006;
105
+ --color-zinc-100: #b0b4ba;
106
+ --color-zinc-200: #696e77;
107
+ --color-zinc-300: #5a6169;
108
+ --color-zinc-400: #43484e;
109
+ --color-zinc-50: #edeef0;
110
+ --color-zinc-500: #363a3f;
111
+ --color-zinc-600: #2e3135;
112
+ --color-zinc-700: #272a2d;
113
+ --color-zinc-800: #212225;
114
+ --color-zinc-900: #18191b;
115
+ --color-zinc-950: #111113;
116
+ }
@@ -0,0 +1,18 @@
1
+ // oxlint-disable guard-for-in
2
+
3
+ import {
4
+ type CompositeColorName,
5
+ composite,
6
+ type PrimitiveColorName,
7
+ primitive,
8
+ } from "@/foundations/colors/colors"
9
+
10
+ export const tailwindV3Colors: Record<CompositeColorName | PrimitiveColorName, string> = {}
11
+
12
+ for (const key in primitive) {
13
+ tailwindV3Colors[primitive[key].name] = primitive[key].hex
14
+ }
15
+
16
+ for (const key in composite) {
17
+ tailwindV3Colors[composite[key].name] = composite[key].color.hex
18
+ }