@ebtgames/theme 0.1.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.
- package/dist/index.d.ts +5 -0
- package/dist/index.js +700 -0
- package/dist/index.js.map +1 -0
- package/package.json +37 -0
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
// src/index.ts
|
|
2
|
+
import { createSystem, defaultConfig } from "@chakra-ui/react";
|
|
3
|
+
|
|
4
|
+
// src/tokens/colors.ts
|
|
5
|
+
import { defineTokens } from "@chakra-ui/react";
|
|
6
|
+
var colors = defineTokens.colors({
|
|
7
|
+
// Surface Colors (deep purple monochrome)
|
|
8
|
+
surface: {
|
|
9
|
+
0: { value: "#1B0F26" },
|
|
10
|
+
// Base background - darkest
|
|
11
|
+
1: { value: "#24122F" },
|
|
12
|
+
// Elevated surfaces
|
|
13
|
+
2: { value: "#2B173A" },
|
|
14
|
+
// Cards/panels
|
|
15
|
+
3: { value: "#342046" }
|
|
16
|
+
// Raised/hover states
|
|
17
|
+
},
|
|
18
|
+
// Text Colors (WCAG AA verified)
|
|
19
|
+
text: {
|
|
20
|
+
primary: { value: "#F5F1FA" },
|
|
21
|
+
// 16.49:1 contrast
|
|
22
|
+
secondary: { value: "#D8D0E3" },
|
|
23
|
+
// 12.29:1 contrast
|
|
24
|
+
muted: { value: "#B9AEC9" },
|
|
25
|
+
// 8.72:1 contrast
|
|
26
|
+
disabled: { value: "#9E92B4" }
|
|
27
|
+
// 6.32:1 contrast
|
|
28
|
+
},
|
|
29
|
+
// Primary (Purple - interactive)
|
|
30
|
+
primary: {
|
|
31
|
+
DEFAULT: { value: "#7C5BD6" },
|
|
32
|
+
hover: { value: "#6F4FCB" }
|
|
33
|
+
},
|
|
34
|
+
// Utility (Teal - complementary)
|
|
35
|
+
utility: {
|
|
36
|
+
DEFAULT: { value: "#2AB9B0" },
|
|
37
|
+
hover: { value: "#52D6CC" }
|
|
38
|
+
},
|
|
39
|
+
// Emphasis (Rose - sparingly)
|
|
40
|
+
emphasis: {
|
|
41
|
+
DEFAULT: { value: "#D86B9A" }
|
|
42
|
+
},
|
|
43
|
+
// Border Colors (neutral gray)
|
|
44
|
+
border: {
|
|
45
|
+
subtle: { value: "#3A3341" },
|
|
46
|
+
strong: { value: "#4A4354" }
|
|
47
|
+
},
|
|
48
|
+
// Status Colors
|
|
49
|
+
status: {
|
|
50
|
+
success: { value: "#2AB9B0" },
|
|
51
|
+
// Use teal
|
|
52
|
+
warning: { value: "#D9A24F" },
|
|
53
|
+
// Amber
|
|
54
|
+
error: { value: "#D8524D" }
|
|
55
|
+
// Red
|
|
56
|
+
},
|
|
57
|
+
// Overlays (purple-based transparency)
|
|
58
|
+
overlay: {
|
|
59
|
+
subtle: { value: "rgba(124, 91, 214, 0.05)" },
|
|
60
|
+
// Purple hover tint
|
|
61
|
+
light: { value: "rgba(124, 91, 214, 0.1)" },
|
|
62
|
+
// Purple selected
|
|
63
|
+
medium: { value: "rgba(124, 91, 214, 0.15)" },
|
|
64
|
+
// Purple active
|
|
65
|
+
heavy: { value: "rgba(124, 91, 214, 0.25)" },
|
|
66
|
+
// Purple emphasis
|
|
67
|
+
error: { value: "rgba(216, 82, 77, 0.12)" },
|
|
68
|
+
// Error tint
|
|
69
|
+
backdrop: {
|
|
70
|
+
light: { value: "rgba(27, 15, 38, 0.8)" },
|
|
71
|
+
heavy: { value: "rgba(27, 15, 38, 0.95)" }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// src/tokens/typography.ts
|
|
77
|
+
import { defineTokens as defineTokens2 } from "@chakra-ui/react";
|
|
78
|
+
var fonts = defineTokens2.fonts({
|
|
79
|
+
display: { value: "'Courier New', 'Courier', monospace" },
|
|
80
|
+
heading: { value: "'Courier New', 'Courier', monospace" },
|
|
81
|
+
body: { value: "'Courier New', 'Courier', monospace" }
|
|
82
|
+
});
|
|
83
|
+
var fontSizes = defineTokens2.fontSizes({
|
|
84
|
+
xs: { value: "0.75rem" },
|
|
85
|
+
// 12px - helper text
|
|
86
|
+
sm: { value: "0.875rem" },
|
|
87
|
+
// 14px - secondary labels
|
|
88
|
+
base: { value: "1rem" },
|
|
89
|
+
// 16px - body text
|
|
90
|
+
md: { value: "1.125rem" },
|
|
91
|
+
// 18px - emphasized body
|
|
92
|
+
lg: { value: "1.25rem" },
|
|
93
|
+
// 20px - section headings
|
|
94
|
+
xl: { value: "1.5rem" },
|
|
95
|
+
// 24px - modal titles
|
|
96
|
+
"2xl": { value: "2rem" },
|
|
97
|
+
// 32px - page titles
|
|
98
|
+
"3xl": { value: "3rem" },
|
|
99
|
+
// 48px - hero text
|
|
100
|
+
"4xl": { value: "4rem" },
|
|
101
|
+
// 64px - display text
|
|
102
|
+
// Responsive sizes
|
|
103
|
+
cell: { value: "clamp(1rem, 3vw, 1.5rem)" },
|
|
104
|
+
hero: { value: "clamp(2.5rem, 8vw, 4rem)" },
|
|
105
|
+
subtitle: { value: "clamp(1rem, 3vw, 1.25rem)" }
|
|
106
|
+
});
|
|
107
|
+
var fontWeights = defineTokens2.fontWeights({
|
|
108
|
+
normal: { value: 400 },
|
|
109
|
+
medium: { value: 600 },
|
|
110
|
+
bold: { value: 700 }
|
|
111
|
+
});
|
|
112
|
+
var letterSpacings = defineTokens2.letterSpacings({
|
|
113
|
+
tight: { value: "0.05em" },
|
|
114
|
+
normal: { value: "0.1em" },
|
|
115
|
+
wide: { value: "0.2em" }
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
// src/tokens/spacing.ts
|
|
119
|
+
import { defineTokens as defineTokens3 } from "@chakra-ui/react";
|
|
120
|
+
var spacing = defineTokens3.spacing({
|
|
121
|
+
"2xs": { value: "0.125rem" },
|
|
122
|
+
// 2px - micro gaps
|
|
123
|
+
xs: { value: "0.25rem" },
|
|
124
|
+
// 4px
|
|
125
|
+
sm: { value: "0.5rem" },
|
|
126
|
+
// 8px
|
|
127
|
+
md: { value: "1rem" },
|
|
128
|
+
// 16px
|
|
129
|
+
lg: { value: "1.5rem" },
|
|
130
|
+
// 24px
|
|
131
|
+
xl: { value: "2rem" },
|
|
132
|
+
// 32px
|
|
133
|
+
"2xl": { value: "3rem" }
|
|
134
|
+
// 48px
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
// src/tokens/borders.ts
|
|
138
|
+
import { defineTokens as defineTokens4 } from "@chakra-ui/react";
|
|
139
|
+
var borderWidths = defineTokens4.borderWidths({
|
|
140
|
+
thin: { value: "1px" },
|
|
141
|
+
base: { value: "2px" },
|
|
142
|
+
thick: { value: "3px" }
|
|
143
|
+
});
|
|
144
|
+
var radii = defineTokens4.radii({
|
|
145
|
+
sm: { value: "2px" },
|
|
146
|
+
md: { value: "4px" },
|
|
147
|
+
lg: { value: "6px" }
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
// src/tokens/shadows.ts
|
|
151
|
+
import { defineTokens as defineTokens5 } from "@chakra-ui/react";
|
|
152
|
+
var shadows = defineTokens5.shadows({
|
|
153
|
+
// Depth shadows (layered)
|
|
154
|
+
xs: { value: "0 1px 2px rgba(0, 0, 0, 0.4)" },
|
|
155
|
+
sm: { value: "0 2px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3)" },
|
|
156
|
+
md: { value: "0 4px 16px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4)" },
|
|
157
|
+
lg: { value: "0 8px 24px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.5)" },
|
|
158
|
+
xl: { value: "0 16px 48px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6)" },
|
|
159
|
+
// Glow shadows (primary - purple)
|
|
160
|
+
glow: {
|
|
161
|
+
primary: { value: "0 0 10px rgba(124, 91, 214, 0.4)" },
|
|
162
|
+
"primary-lg": { value: "0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)" },
|
|
163
|
+
"primary-xl": { value: "0 0 30px rgba(124, 91, 214, 0.6), 0 0 60px rgba(124, 91, 214, 0.4)" },
|
|
164
|
+
// Utility (teal)
|
|
165
|
+
utility: { value: "0 0 10px rgba(42, 185, 176, 0.3)" },
|
|
166
|
+
"utility-lg": { value: "0 0 20px rgba(42, 185, 176, 0.4), 0 0 40px rgba(42, 185, 176, 0.2)" },
|
|
167
|
+
// Emphasis (rose)
|
|
168
|
+
emphasis: { value: "0 0 10px rgba(216, 107, 154, 0.3)" },
|
|
169
|
+
"emphasis-lg": { value: "0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)" },
|
|
170
|
+
// Error (red)
|
|
171
|
+
error: { value: "0 0 10px rgba(216, 82, 77, 0.4)" }
|
|
172
|
+
},
|
|
173
|
+
// Inset shadows
|
|
174
|
+
inset: {
|
|
175
|
+
primary: { value: "inset 0 0 10px rgba(124, 91, 214, 0.3)" },
|
|
176
|
+
subtle: { value: "inset 0 1px 3px rgba(0, 0, 0, 0.3)" },
|
|
177
|
+
deep: { value: "inset 0 2px 8px rgba(0, 0, 0, 0.5)" }
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
// src/tokens/zIndex.ts
|
|
182
|
+
import { defineTokens as defineTokens6 } from "@chakra-ui/react";
|
|
183
|
+
var zIndex = defineTokens6.zIndex({
|
|
184
|
+
base: { value: 1 },
|
|
185
|
+
dropdown: { value: 100 },
|
|
186
|
+
overlay: { value: 500 },
|
|
187
|
+
modal: { value: 1e3 },
|
|
188
|
+
toast: { value: 1500 },
|
|
189
|
+
fullscreen: { value: 2e3 }
|
|
190
|
+
});
|
|
191
|
+
|
|
192
|
+
// src/semanticTokens/colors.ts
|
|
193
|
+
import { defineSemanticTokens } from "@chakra-ui/react";
|
|
194
|
+
var semanticColors = defineSemanticTokens.colors({
|
|
195
|
+
// Background mappings
|
|
196
|
+
bg: {
|
|
197
|
+
base: { value: "{colors.surface.0}" },
|
|
198
|
+
elevated: { value: "{colors.surface.1}" },
|
|
199
|
+
card: { value: "{colors.surface.2}" },
|
|
200
|
+
raised: { value: "{colors.surface.3}" }
|
|
201
|
+
},
|
|
202
|
+
// Interactive states
|
|
203
|
+
interactive: {
|
|
204
|
+
base: { value: "{colors.primary.DEFAULT}" },
|
|
205
|
+
hover: { value: "{colors.primary.hover}" }
|
|
206
|
+
},
|
|
207
|
+
// Border (for buttons, inputs, cards)
|
|
208
|
+
border: {
|
|
209
|
+
subtle: { value: "{colors.border.subtle}" },
|
|
210
|
+
strong: { value: "{colors.border.strong}" }
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
|
|
214
|
+
// src/semanticTokens/shadows.ts
|
|
215
|
+
import { defineSemanticTokens as defineSemanticTokens2 } from "@chakra-ui/react";
|
|
216
|
+
var semanticShadows = defineSemanticTokens2.shadows({
|
|
217
|
+
// Button shadows
|
|
218
|
+
button: {
|
|
219
|
+
base: { value: "{shadows.sm}, {shadows.inset.subtle}" },
|
|
220
|
+
hover: { value: "{shadows.md}, {shadows.glow.primary-lg}" }
|
|
221
|
+
},
|
|
222
|
+
// Cell shadows (most complex - 4-layer stack for selected state)
|
|
223
|
+
cell: {
|
|
224
|
+
selected: {
|
|
225
|
+
value: "{shadows.inset.primary}, 0 0 0 {borderWidths.base} rgba(124, 91, 214, 0.55), {shadows.glow.primary}, 0 4px 12px rgba(124, 91, 214, 0.2)"
|
|
226
|
+
},
|
|
227
|
+
conflict: {
|
|
228
|
+
value: "{shadows.glow.error}, 0 2px 6px rgba(216, 82, 77, 0.3)"
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// src/semanticTokens/index.ts
|
|
234
|
+
var semanticTokens = {
|
|
235
|
+
colors: semanticColors,
|
|
236
|
+
shadows: semanticShadows
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
// src/keyframes/animations.ts
|
|
240
|
+
import { defineKeyframes } from "@chakra-ui/react";
|
|
241
|
+
var keyframes = defineKeyframes({
|
|
242
|
+
fadeIn: {
|
|
243
|
+
from: { opacity: "0" },
|
|
244
|
+
to: { opacity: "1" }
|
|
245
|
+
},
|
|
246
|
+
fadeOut: {
|
|
247
|
+
from: { opacity: "1" },
|
|
248
|
+
to: { opacity: "0" }
|
|
249
|
+
},
|
|
250
|
+
pulse: {
|
|
251
|
+
"0%, 100%": {
|
|
252
|
+
transform: "scale(1)",
|
|
253
|
+
opacity: "1"
|
|
254
|
+
},
|
|
255
|
+
"50%": {
|
|
256
|
+
transform: "scale(1.03)",
|
|
257
|
+
opacity: "0.95"
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
glow: {
|
|
261
|
+
"0%, 100%": {
|
|
262
|
+
boxShadow: "0 0 10px rgba(124, 91, 214, 0.4)"
|
|
263
|
+
},
|
|
264
|
+
"50%": {
|
|
265
|
+
boxShadow: "0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)"
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
glowHighlight: {
|
|
269
|
+
"0%, 100%": {
|
|
270
|
+
boxShadow: "0 0 10px rgba(216, 107, 154, 0.3)"
|
|
271
|
+
},
|
|
272
|
+
"50%": {
|
|
273
|
+
boxShadow: "0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)"
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
blink: {
|
|
277
|
+
"0%, 100%": { opacity: "1" },
|
|
278
|
+
"50%": { opacity: "0.3" }
|
|
279
|
+
},
|
|
280
|
+
bounce: {
|
|
281
|
+
"0%, 80%, 100%": {
|
|
282
|
+
transform: "scale(0)",
|
|
283
|
+
opacity: "0.5"
|
|
284
|
+
},
|
|
285
|
+
"40%": {
|
|
286
|
+
transform: "scale(1)",
|
|
287
|
+
opacity: "1"
|
|
288
|
+
}
|
|
289
|
+
},
|
|
290
|
+
scaleIn: {
|
|
291
|
+
from: {
|
|
292
|
+
transform: "scale(0.8)",
|
|
293
|
+
opacity: "0"
|
|
294
|
+
},
|
|
295
|
+
to: {
|
|
296
|
+
transform: "scale(1)",
|
|
297
|
+
opacity: "1"
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
// src/globalStyles.ts
|
|
303
|
+
import { defineGlobalStyles } from "@chakra-ui/react";
|
|
304
|
+
var globalCss = defineGlobalStyles({
|
|
305
|
+
// Universal reset
|
|
306
|
+
"*, *::before, *::after": {
|
|
307
|
+
boxSizing: "border-box"
|
|
308
|
+
},
|
|
309
|
+
// Body pseudo-elements for background effects
|
|
310
|
+
"body::before": {
|
|
311
|
+
content: '""',
|
|
312
|
+
position: "fixed",
|
|
313
|
+
inset: 0,
|
|
314
|
+
backgroundImage: `
|
|
315
|
+
radial-gradient(circle at 20% 50%, rgba(124, 91, 214, 0.03) 0%, transparent 50%),
|
|
316
|
+
radial-gradient(circle at 80% 80%, rgba(42, 185, 176, 0.02) 0%, transparent 50%)
|
|
317
|
+
`,
|
|
318
|
+
pointerEvents: "none",
|
|
319
|
+
zIndex: 0
|
|
320
|
+
},
|
|
321
|
+
"body::after": {
|
|
322
|
+
content: '""',
|
|
323
|
+
position: "fixed",
|
|
324
|
+
inset: 0,
|
|
325
|
+
backgroundImage: `url('data:image/svg+xml,%3Csvg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"%3E%3Cfilter id="noise"%3E%3CfeTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="4" stitchTiles="stitch"/%3E%3C/filter%3E%3Crect width="100%25" height="100%25" filter="url(%23noise)" opacity="0.03"/%3E%3C/svg%3E')`,
|
|
326
|
+
opacity: 0.03,
|
|
327
|
+
pointerEvents: "none",
|
|
328
|
+
zIndex: 0
|
|
329
|
+
},
|
|
330
|
+
// Custom scrollbar (webkit)
|
|
331
|
+
"::-webkit-scrollbar": {
|
|
332
|
+
width: "8px",
|
|
333
|
+
height: "8px"
|
|
334
|
+
},
|
|
335
|
+
"::-webkit-scrollbar-track": {
|
|
336
|
+
background: "{colors.surface.1}"
|
|
337
|
+
},
|
|
338
|
+
"::-webkit-scrollbar-thumb": {
|
|
339
|
+
background: "{colors.utility.DEFAULT}",
|
|
340
|
+
borderRadius: "{radii.sm}"
|
|
341
|
+
},
|
|
342
|
+
"::-webkit-scrollbar-thumb:hover": {
|
|
343
|
+
background: "{colors.utility.hover}"
|
|
344
|
+
},
|
|
345
|
+
// Firefox scrollbar
|
|
346
|
+
"*": {
|
|
347
|
+
scrollbarWidth: "thin",
|
|
348
|
+
scrollbarColor: "{colors.utility.DEFAULT} {colors.surface.1}"
|
|
349
|
+
},
|
|
350
|
+
// Selection styling
|
|
351
|
+
"::selection": {
|
|
352
|
+
background: "{colors.primary.DEFAULT}",
|
|
353
|
+
color: "{colors.text.primary}"
|
|
354
|
+
},
|
|
355
|
+
// Focus visible outline
|
|
356
|
+
":focus-visible": {
|
|
357
|
+
outline: "2px solid {colors.primary.DEFAULT}",
|
|
358
|
+
outlineOffset: "2px"
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
// src/breakpoints.ts
|
|
363
|
+
var breakpoints = {
|
|
364
|
+
mobile: "767px",
|
|
365
|
+
tablet: "768px",
|
|
366
|
+
desktop: "1024px"
|
|
367
|
+
};
|
|
368
|
+
|
|
369
|
+
// src/recipes/button.ts
|
|
370
|
+
import { defineRecipe } from "@chakra-ui/react";
|
|
371
|
+
var buttonRecipe = defineRecipe({
|
|
372
|
+
className: "button",
|
|
373
|
+
base: {
|
|
374
|
+
fontFamily: "body",
|
|
375
|
+
fontSize: "base",
|
|
376
|
+
px: "lg",
|
|
377
|
+
py: "sm",
|
|
378
|
+
borderWidth: "base",
|
|
379
|
+
borderStyle: "solid",
|
|
380
|
+
borderColor: "border.strong",
|
|
381
|
+
background: "linear-gradient(145deg, var(--chakra-colors-surface-1), var(--chakra-colors-surface-0))",
|
|
382
|
+
color: "text.primary",
|
|
383
|
+
cursor: "pointer",
|
|
384
|
+
pointerEvents: "auto",
|
|
385
|
+
userSelect: "none",
|
|
386
|
+
transition: "all 200ms ease",
|
|
387
|
+
textTransform: "uppercase",
|
|
388
|
+
letterSpacing: "tight",
|
|
389
|
+
fontWeight: "medium",
|
|
390
|
+
borderRadius: "md",
|
|
391
|
+
boxShadow: "var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)",
|
|
392
|
+
_disabled: {
|
|
393
|
+
opacity: 0.5,
|
|
394
|
+
cursor: "not-allowed"
|
|
395
|
+
},
|
|
396
|
+
_focusVisible: {
|
|
397
|
+
outline: "var(--chakra-border-widths-base) solid var(--chakra-colors-primary)",
|
|
398
|
+
outlineOffset: "var(--chakra-border-widths-base)"
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
variants: {
|
|
402
|
+
variant: {
|
|
403
|
+
primary: {
|
|
404
|
+
borderColor: "primary",
|
|
405
|
+
color: "primary",
|
|
406
|
+
_hover: {
|
|
407
|
+
background: "linear-gradient(145deg, var(--chakra-colors-primary-hover), var(--chakra-colors-primary))",
|
|
408
|
+
color: "surface.0",
|
|
409
|
+
boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-primary-lg)",
|
|
410
|
+
transform: "translateY(-2px)"
|
|
411
|
+
},
|
|
412
|
+
_active: {
|
|
413
|
+
transform: "translateY(0)",
|
|
414
|
+
boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-primary)"
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
secondary: {
|
|
418
|
+
borderColor: "utility",
|
|
419
|
+
color: "utility",
|
|
420
|
+
_hover: {
|
|
421
|
+
background: "linear-gradient(145deg, var(--chakra-colors-utility), var(--chakra-colors-utility-hover))",
|
|
422
|
+
color: "surface.0",
|
|
423
|
+
boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-utility-lg)",
|
|
424
|
+
transform: "translateY(-2px)"
|
|
425
|
+
},
|
|
426
|
+
_active: {
|
|
427
|
+
transform: "translateY(0)",
|
|
428
|
+
boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-utility)"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
danger: {
|
|
432
|
+
borderColor: "status.error",
|
|
433
|
+
color: "status.error",
|
|
434
|
+
_hover: {
|
|
435
|
+
background: "linear-gradient(145deg, var(--chakra-colors-status-error), var(--chakra-colors-status-error))",
|
|
436
|
+
color: "surface.0",
|
|
437
|
+
boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-error)",
|
|
438
|
+
transform: "translateY(-2px)"
|
|
439
|
+
},
|
|
440
|
+
_active: {
|
|
441
|
+
transform: "translateY(0)",
|
|
442
|
+
boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-error)"
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
},
|
|
447
|
+
defaultVariants: {
|
|
448
|
+
variant: "primary"
|
|
449
|
+
}
|
|
450
|
+
});
|
|
451
|
+
|
|
452
|
+
// src/recipes/cell.ts
|
|
453
|
+
import { defineRecipe as defineRecipe2 } from "@chakra-ui/react";
|
|
454
|
+
var cellRecipe = defineRecipe2({
|
|
455
|
+
className: "ninefold-cell",
|
|
456
|
+
base: {
|
|
457
|
+
aspectRatio: "1",
|
|
458
|
+
background: "linear-gradient(145deg, {colors.surface.1}, {colors.surface.0})",
|
|
459
|
+
borderWidth: "thin",
|
|
460
|
+
borderColor: "border.subtle",
|
|
461
|
+
borderStyle: "solid",
|
|
462
|
+
color: "text.primary",
|
|
463
|
+
fontFamily: "body",
|
|
464
|
+
fontSize: "cell",
|
|
465
|
+
cursor: "pointer",
|
|
466
|
+
transition: "all var(--transition-fast) var(--ease-default)",
|
|
467
|
+
p: 0,
|
|
468
|
+
position: "relative",
|
|
469
|
+
display: "flex",
|
|
470
|
+
alignItems: "center",
|
|
471
|
+
justifyContent: "center",
|
|
472
|
+
boxShadow: "{shadows.inset.subtle}, 0 1px 2px rgba(0, 0, 0, 0.2)",
|
|
473
|
+
_focusVisible: {
|
|
474
|
+
outline: "{borderWidths.base} solid {colors.primary.DEFAULT}",
|
|
475
|
+
outlineOffset: "-2px",
|
|
476
|
+
zIndex: "base"
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
variants: {
|
|
480
|
+
state: {
|
|
481
|
+
normal: {
|
|
482
|
+
_hover: {
|
|
483
|
+
background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
|
|
484
|
+
borderColor: "primary.hover",
|
|
485
|
+
boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3), {shadows.glow.primary}",
|
|
486
|
+
transform: "translateY(-1px)"
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
given: {
|
|
490
|
+
fontWeight: "bold",
|
|
491
|
+
background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
|
|
492
|
+
borderColor: "border.strong",
|
|
493
|
+
cursor: "default",
|
|
494
|
+
boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
|
|
495
|
+
_hover: {
|
|
496
|
+
background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
|
|
497
|
+
borderColor: "border.strong",
|
|
498
|
+
boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
|
|
499
|
+
transform: "none"
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
selected: {
|
|
503
|
+
background: "linear-gradient(145deg, rgba(124, 91, 214, 0.2), rgba(124, 91, 214, 0.1))",
|
|
504
|
+
borderColor: "primary.DEFAULT",
|
|
505
|
+
boxShadow: "cell.selected",
|
|
506
|
+
transform: "translateY(-2px)"
|
|
507
|
+
},
|
|
508
|
+
conflict: {
|
|
509
|
+
background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
|
|
510
|
+
borderColor: "status.error",
|
|
511
|
+
color: "status.error",
|
|
512
|
+
boxShadow: "cell.conflict"
|
|
513
|
+
},
|
|
514
|
+
selectedConflict: {
|
|
515
|
+
background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
|
|
516
|
+
borderColor: "status.error",
|
|
517
|
+
color: "status.error",
|
|
518
|
+
boxShadow: "cell.conflict",
|
|
519
|
+
transform: "translateY(-2px)"
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
defaultVariants: {
|
|
524
|
+
state: "normal"
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
|
|
528
|
+
// src/recipes/timer.ts
|
|
529
|
+
import { defineRecipe as defineRecipe3 } from "@chakra-ui/react";
|
|
530
|
+
var timerRecipe = defineRecipe3({
|
|
531
|
+
base: {
|
|
532
|
+
display: "flex",
|
|
533
|
+
alignItems: "center",
|
|
534
|
+
gap: "sm",
|
|
535
|
+
fontFamily: "body",
|
|
536
|
+
fontSize: "lg",
|
|
537
|
+
color: "primary",
|
|
538
|
+
paddingY: "sm",
|
|
539
|
+
paddingX: "md",
|
|
540
|
+
borderWidth: "base",
|
|
541
|
+
borderStyle: "solid",
|
|
542
|
+
borderColor: "border.strong",
|
|
543
|
+
background: "surface.1",
|
|
544
|
+
justifyContent: "center"
|
|
545
|
+
}
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
// src/recipes/index.ts
|
|
549
|
+
var recipes = {
|
|
550
|
+
button: buttonRecipe,
|
|
551
|
+
cell: cellRecipe,
|
|
552
|
+
timer: timerRecipe
|
|
553
|
+
};
|
|
554
|
+
|
|
555
|
+
// src/slotRecipes/modal.ts
|
|
556
|
+
import { defineSlotRecipe } from "@chakra-ui/react";
|
|
557
|
+
var modalSlotRecipe = defineSlotRecipe({
|
|
558
|
+
className: "modal",
|
|
559
|
+
slots: ["backdrop", "modal", "header", "title", "content"],
|
|
560
|
+
base: {
|
|
561
|
+
backdrop: {
|
|
562
|
+
position: "fixed",
|
|
563
|
+
inset: 0,
|
|
564
|
+
background: "{colors.overlay.backdrop.heavy}",
|
|
565
|
+
backdropFilter: "blur(8px)",
|
|
566
|
+
display: "flex",
|
|
567
|
+
alignItems: "center",
|
|
568
|
+
justifyContent: "center",
|
|
569
|
+
zIndex: "modal",
|
|
570
|
+
padding: "md"
|
|
571
|
+
},
|
|
572
|
+
modal: {
|
|
573
|
+
background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
|
|
574
|
+
borderWidth: "base",
|
|
575
|
+
borderStyle: "solid",
|
|
576
|
+
borderColor: "primary.DEFAULT",
|
|
577
|
+
maxWidth: "500px",
|
|
578
|
+
width: "100%",
|
|
579
|
+
maxHeight: "90vh",
|
|
580
|
+
overflowY: "auto",
|
|
581
|
+
boxShadow: "{shadows.xl}, {shadows.glow.primary-xl}, inset 0 1px 0 rgba(255, 255, 255, 0.1)",
|
|
582
|
+
borderRadius: "md"
|
|
583
|
+
},
|
|
584
|
+
header: {
|
|
585
|
+
padding: "lg",
|
|
586
|
+
borderBottomWidth: "thin",
|
|
587
|
+
borderBottomStyle: "solid",
|
|
588
|
+
borderBottomColor: "border.subtle",
|
|
589
|
+
background: "linear-gradient(180deg, {colors.overlay.light}, transparent)"
|
|
590
|
+
},
|
|
591
|
+
title: {
|
|
592
|
+
margin: 0,
|
|
593
|
+
fontFamily: "display",
|
|
594
|
+
fontSize: "xl",
|
|
595
|
+
color: "text.primary",
|
|
596
|
+
textTransform: "uppercase",
|
|
597
|
+
letterSpacing: "tight",
|
|
598
|
+
textShadow: "0 2px 4px rgba(0, 0, 0, 0.5)"
|
|
599
|
+
},
|
|
600
|
+
content: {
|
|
601
|
+
padding: "lg"
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
});
|
|
605
|
+
|
|
606
|
+
// src/slotRecipes/victoryScreen.ts
|
|
607
|
+
import { defineSlotRecipe as defineSlotRecipe2 } from "@chakra-ui/react";
|
|
608
|
+
var victoryScreenSlotRecipe = defineSlotRecipe2({
|
|
609
|
+
slots: ["overlay", "content", "title", "stats", "badge", "actions"],
|
|
610
|
+
base: {
|
|
611
|
+
overlay: {
|
|
612
|
+
position: "fixed",
|
|
613
|
+
inset: 0,
|
|
614
|
+
background: "overlay.backdrop.heavy",
|
|
615
|
+
display: "flex",
|
|
616
|
+
alignItems: "center",
|
|
617
|
+
justifyContent: "center",
|
|
618
|
+
zIndex: "overlay",
|
|
619
|
+
padding: "md"
|
|
620
|
+
},
|
|
621
|
+
content: {
|
|
622
|
+
maxWidth: "400px",
|
|
623
|
+
width: "100%",
|
|
624
|
+
textAlign: "center",
|
|
625
|
+
display: "flex",
|
|
626
|
+
flexDirection: "column",
|
|
627
|
+
gap: "xl",
|
|
628
|
+
padding: "xl",
|
|
629
|
+
borderWidth: "thick",
|
|
630
|
+
borderStyle: "solid",
|
|
631
|
+
borderColor: "border.strong",
|
|
632
|
+
background: "surface.2",
|
|
633
|
+
boxShadow: "glow.primary-xl"
|
|
634
|
+
},
|
|
635
|
+
title: {
|
|
636
|
+
fontFamily: "display",
|
|
637
|
+
fontSize: "3xl",
|
|
638
|
+
color: "text.primary",
|
|
639
|
+
letterSpacing: "wide",
|
|
640
|
+
textShadow: "glow.emphasis-lg",
|
|
641
|
+
animation: "pulse 2s ease-in-out infinite"
|
|
642
|
+
},
|
|
643
|
+
stats: {
|
|
644
|
+
display: "flex",
|
|
645
|
+
flexDirection: "column",
|
|
646
|
+
gap: "md"
|
|
647
|
+
},
|
|
648
|
+
badge: {
|
|
649
|
+
display: "flex",
|
|
650
|
+
alignItems: "center",
|
|
651
|
+
justifyContent: "center",
|
|
652
|
+
gap: "sm",
|
|
653
|
+
padding: "md",
|
|
654
|
+
borderWidth: "base",
|
|
655
|
+
borderStyle: "solid",
|
|
656
|
+
borderColor: "emphasis",
|
|
657
|
+
background: "overlay.subtle",
|
|
658
|
+
animation: "glowHighlight 2s ease-in-out infinite"
|
|
659
|
+
},
|
|
660
|
+
actions: {
|
|
661
|
+
display: "flex",
|
|
662
|
+
flexDirection: "column",
|
|
663
|
+
gap: "md"
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
});
|
|
667
|
+
|
|
668
|
+
// src/slotRecipes/index.ts
|
|
669
|
+
var slotRecipes = {
|
|
670
|
+
modal: modalSlotRecipe,
|
|
671
|
+
victoryScreen: victoryScreenSlotRecipe
|
|
672
|
+
};
|
|
673
|
+
|
|
674
|
+
// src/index.ts
|
|
675
|
+
var system = createSystem(defaultConfig, {
|
|
676
|
+
theme: {
|
|
677
|
+
tokens: {
|
|
678
|
+
colors,
|
|
679
|
+
fonts,
|
|
680
|
+
fontSizes,
|
|
681
|
+
fontWeights,
|
|
682
|
+
letterSpacings,
|
|
683
|
+
spacing,
|
|
684
|
+
borderWidths,
|
|
685
|
+
radii,
|
|
686
|
+
shadows,
|
|
687
|
+
zIndex
|
|
688
|
+
},
|
|
689
|
+
semanticTokens,
|
|
690
|
+
keyframes,
|
|
691
|
+
breakpoints,
|
|
692
|
+
recipes,
|
|
693
|
+
slotRecipes
|
|
694
|
+
},
|
|
695
|
+
globalCss
|
|
696
|
+
});
|
|
697
|
+
export {
|
|
698
|
+
system
|
|
699
|
+
};
|
|
700
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/tokens/spacing.ts","../src/tokens/borders.ts","../src/tokens/shadows.ts","../src/tokens/zIndex.ts","../src/semanticTokens/colors.ts","../src/semanticTokens/shadows.ts","../src/semanticTokens/index.ts","../src/keyframes/animations.ts","../src/globalStyles.ts","../src/breakpoints.ts","../src/recipes/button.ts","../src/recipes/cell.ts","../src/recipes/timer.ts","../src/recipes/index.ts","../src/slotRecipes/modal.ts","../src/slotRecipes/victoryScreen.ts","../src/slotRecipes/index.ts"],"sourcesContent":["import { createSystem, defaultConfig } from '@chakra-ui/react'\nimport { colors } from './tokens/colors'\nimport { fonts, fontSizes, fontWeights, letterSpacings } from './tokens/typography'\nimport { spacing } from './tokens/spacing'\nimport { borderWidths, radii } from './tokens/borders'\nimport { shadows } from './tokens/shadows'\nimport { zIndex } from './tokens/zIndex'\nimport { semanticTokens } from './semanticTokens'\nimport { keyframes } from './keyframes/animations'\nimport { globalCss } from './globalStyles'\nimport { breakpoints } from './breakpoints'\nimport { recipes } from './recipes'\nimport { slotRecipes } from './slotRecipes'\n\nexport const system = createSystem(defaultConfig, {\n theme: {\n tokens: {\n colors,\n fonts,\n fontSizes,\n fontWeights,\n letterSpacings,\n spacing,\n borderWidths,\n radii,\n shadows,\n zIndex,\n },\n semanticTokens,\n keyframes,\n breakpoints,\n recipes,\n slotRecipes,\n },\n globalCss,\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const colors = defineTokens.colors({\n // Surface Colors (deep purple monochrome)\n surface: {\n 0: { value: '#1B0F26' }, // Base background - darkest\n 1: { value: '#24122F' }, // Elevated surfaces\n 2: { value: '#2B173A' }, // Cards/panels\n 3: { value: '#342046' }, // Raised/hover states\n },\n\n // Text Colors (WCAG AA verified)\n text: {\n primary: { value: '#F5F1FA' }, // 16.49:1 contrast\n secondary: { value: '#D8D0E3' }, // 12.29:1 contrast\n muted: { value: '#B9AEC9' }, // 8.72:1 contrast\n disabled: { value: '#9E92B4' }, // 6.32:1 contrast\n },\n\n // Primary (Purple - interactive)\n primary: {\n DEFAULT: { value: '#7C5BD6' },\n hover: { value: '#6F4FCB' },\n },\n\n // Utility (Teal - complementary)\n utility: {\n DEFAULT: { value: '#2AB9B0' },\n hover: { value: '#52D6CC' },\n },\n\n // Emphasis (Rose - sparingly)\n emphasis: {\n DEFAULT: { value: '#D86B9A' },\n },\n\n // Border Colors (neutral gray)\n border: {\n subtle: { value: '#3A3341' },\n strong: { value: '#4A4354' },\n },\n\n // Status Colors\n status: {\n success: { value: '#2AB9B0' }, // Use teal\n warning: { value: '#D9A24F' }, // Amber\n error: { value: '#D8524D' }, // Red\n },\n\n // Overlays (purple-based transparency)\n overlay: {\n subtle: { value: 'rgba(124, 91, 214, 0.05)' }, // Purple hover tint\n light: { value: 'rgba(124, 91, 214, 0.1)' }, // Purple selected\n medium: { value: 'rgba(124, 91, 214, 0.15)' }, // Purple active\n heavy: { value: 'rgba(124, 91, 214, 0.25)' }, // Purple emphasis\n error: { value: 'rgba(216, 82, 77, 0.12)' }, // Error tint\n backdrop: {\n light: { value: 'rgba(27, 15, 38, 0.8)' },\n heavy: { value: 'rgba(27, 15, 38, 0.95)' },\n },\n },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const fonts = defineTokens.fonts({\n display: { value: \"'Courier New', 'Courier', monospace\" },\n heading: { value: \"'Courier New', 'Courier', monospace\" },\n body: { value: \"'Courier New', 'Courier', monospace\" },\n})\n\nexport const fontSizes = defineTokens.fontSizes({\n xs: { value: '0.75rem' }, // 12px - helper text\n sm: { value: '0.875rem' }, // 14px - secondary labels\n base: { value: '1rem' }, // 16px - body text\n md: { value: '1.125rem' }, // 18px - emphasized body\n lg: { value: '1.25rem' }, // 20px - section headings\n xl: { value: '1.5rem' }, // 24px - modal titles\n '2xl': { value: '2rem' }, // 32px - page titles\n '3xl': { value: '3rem' }, // 48px - hero text\n '4xl': { value: '4rem' }, // 64px - display text\n\n // Responsive sizes\n cell: { value: 'clamp(1rem, 3vw, 1.5rem)' },\n hero: { value: 'clamp(2.5rem, 8vw, 4rem)' },\n subtitle: { value: 'clamp(1rem, 3vw, 1.25rem)' },\n})\n\nexport const fontWeights = defineTokens.fontWeights({\n normal: { value: 400 },\n medium: { value: 600 },\n bold: { value: 700 },\n})\n\nexport const letterSpacings = defineTokens.letterSpacings({\n tight: { value: '0.05em' },\n normal: { value: '0.1em' },\n wide: { value: '0.2em' },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const spacing = defineTokens.spacing({\n '2xs': { value: '0.125rem' }, // 2px - micro gaps\n xs: { value: '0.25rem' }, // 4px\n sm: { value: '0.5rem' }, // 8px\n md: { value: '1rem' }, // 16px\n lg: { value: '1.5rem' }, // 24px\n xl: { value: '2rem' }, // 32px\n '2xl': { value: '3rem' }, // 48px\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const borderWidths = defineTokens.borderWidths({\n thin: { value: '1px' },\n base: { value: '2px' },\n thick: { value: '3px' },\n})\n\nexport const radii = defineTokens.radii({\n sm: { value: '2px' },\n md: { value: '4px' },\n lg: { value: '6px' },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const shadows = defineTokens.shadows({\n // Depth shadows (layered)\n xs: { value: '0 1px 2px rgba(0, 0, 0, 0.4)' },\n sm: { value: '0 2px 8px rgba(0, 0, 0, 0.5), 0 1px 3px rgba(0, 0, 0, 0.3)' },\n md: { value: '0 4px 16px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4)' },\n lg: { value: '0 8px 24px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.5)' },\n xl: { value: '0 16px 48px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6)' },\n\n // Glow shadows (primary - purple)\n glow: {\n primary: { value: '0 0 10px rgba(124, 91, 214, 0.4)' },\n 'primary-lg': { value: '0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)' },\n 'primary-xl': { value: '0 0 30px rgba(124, 91, 214, 0.6), 0 0 60px rgba(124, 91, 214, 0.4)' },\n\n // Utility (teal)\n utility: { value: '0 0 10px rgba(42, 185, 176, 0.3)' },\n 'utility-lg': { value: '0 0 20px rgba(42, 185, 176, 0.4), 0 0 40px rgba(42, 185, 176, 0.2)' },\n\n // Emphasis (rose)\n emphasis: { value: '0 0 10px rgba(216, 107, 154, 0.3)' },\n 'emphasis-lg': { value: '0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)' },\n\n // Error (red)\n error: { value: '0 0 10px rgba(216, 82, 77, 0.4)' },\n },\n\n // Inset shadows\n inset: {\n primary: { value: 'inset 0 0 10px rgba(124, 91, 214, 0.3)' },\n subtle: { value: 'inset 0 1px 3px rgba(0, 0, 0, 0.3)' },\n deep: { value: 'inset 0 2px 8px rgba(0, 0, 0, 0.5)' },\n },\n})\n","import { defineTokens } from '@chakra-ui/react'\n\nexport const zIndex = defineTokens.zIndex({\n base: { value: 1 },\n dropdown: { value: 100 },\n overlay: { value: 500 },\n modal: { value: 1000 },\n toast: { value: 1500 },\n fullscreen: { value: 2000 },\n})\n","import { defineSemanticTokens } from '@chakra-ui/react'\n\nexport const semanticColors = defineSemanticTokens.colors({\n // Background mappings\n bg: {\n base: { value: '{colors.surface.0}' },\n elevated: { value: '{colors.surface.1}' },\n card: { value: '{colors.surface.2}' },\n raised: { value: '{colors.surface.3}' },\n },\n\n // Interactive states\n interactive: {\n base: { value: '{colors.primary.DEFAULT}' },\n hover: { value: '{colors.primary.hover}' },\n },\n\n // Border (for buttons, inputs, cards)\n border: {\n subtle: { value: '{colors.border.subtle}' },\n strong: { value: '{colors.border.strong}' },\n },\n})\n","import { defineSemanticTokens } from '@chakra-ui/react'\n\nexport const semanticShadows = defineSemanticTokens.shadows({\n // Button shadows\n button: {\n base: { value: '{shadows.sm}, {shadows.inset.subtle}' },\n hover: { value: '{shadows.md}, {shadows.glow.primary-lg}' },\n },\n\n // Cell shadows (most complex - 4-layer stack for selected state)\n cell: {\n selected: {\n value:\n '{shadows.inset.primary}, 0 0 0 {borderWidths.base} rgba(124, 91, 214, 0.55), {shadows.glow.primary}, 0 4px 12px rgba(124, 91, 214, 0.2)',\n },\n conflict: {\n value: '{shadows.glow.error}, 0 2px 6px rgba(216, 82, 77, 0.3)',\n },\n },\n})\n","import { semanticColors } from './colors'\nimport { semanticShadows } from './shadows'\n\nexport const semanticTokens = {\n colors: semanticColors,\n shadows: semanticShadows,\n}\n","import { defineKeyframes } from '@chakra-ui/react'\n\nexport const keyframes = defineKeyframes({\n fadeIn: {\n from: { opacity: '0' },\n to: { opacity: '1' },\n },\n\n fadeOut: {\n from: { opacity: '1' },\n to: { opacity: '0' },\n },\n\n pulse: {\n '0%, 100%': {\n transform: 'scale(1)',\n opacity: '1',\n },\n '50%': {\n transform: 'scale(1.03)',\n opacity: '0.95',\n },\n },\n\n glow: {\n '0%, 100%': {\n boxShadow: '0 0 10px rgba(124, 91, 214, 0.4)',\n },\n '50%': {\n boxShadow: '0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)',\n },\n },\n\n glowHighlight: {\n '0%, 100%': {\n boxShadow: '0 0 10px rgba(216, 107, 154, 0.3)',\n },\n '50%': {\n boxShadow: '0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)',\n },\n },\n\n blink: {\n '0%, 100%': { opacity: '1' },\n '50%': { opacity: '0.3' },\n },\n\n bounce: {\n '0%, 80%, 100%': {\n transform: 'scale(0)',\n opacity: '0.5',\n },\n '40%': {\n transform: 'scale(1)',\n opacity: '1',\n },\n },\n\n scaleIn: {\n from: {\n transform: 'scale(0.8)',\n opacity: '0',\n },\n to: {\n transform: 'scale(1)',\n opacity: '1',\n },\n },\n})\n","import { defineGlobalStyles } from '@chakra-ui/react'\n\nexport const globalCss = defineGlobalStyles({\n // Universal reset\n '*, *::before, *::after': {\n boxSizing: 'border-box',\n },\n\n // Body pseudo-elements for background effects\n 'body::before': {\n content: '\"\"',\n position: 'fixed',\n inset: 0,\n backgroundImage: `\n radial-gradient(circle at 20% 50%, rgba(124, 91, 214, 0.03) 0%, transparent 50%),\n radial-gradient(circle at 80% 80%, rgba(42, 185, 176, 0.02) 0%, transparent 50%)\n `,\n pointerEvents: 'none',\n zIndex: 0,\n },\n\n 'body::after': {\n content: '\"\"',\n position: 'fixed',\n inset: 0,\n backgroundImage: `url('data:image/svg+xml,%3Csvg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\"%3E%3Cfilter id=\"noise\"%3E%3CfeTurbulence type=\"fractalNoise\" baseFrequency=\"0.9\" numOctaves=\"4\" stitchTiles=\"stitch\"/%3E%3C/filter%3E%3Crect width=\"100%25\" height=\"100%25\" filter=\"url(%23noise)\" opacity=\"0.03\"/%3E%3C/svg%3E')`,\n opacity: 0.03,\n pointerEvents: 'none',\n zIndex: 0,\n },\n\n // Custom scrollbar (webkit)\n '::-webkit-scrollbar': {\n width: '8px',\n height: '8px',\n },\n\n '::-webkit-scrollbar-track': {\n background: '{colors.surface.1}',\n },\n\n '::-webkit-scrollbar-thumb': {\n background: '{colors.utility.DEFAULT}',\n borderRadius: '{radii.sm}',\n },\n\n '::-webkit-scrollbar-thumb:hover': {\n background: '{colors.utility.hover}',\n },\n\n // Firefox scrollbar\n '*': {\n scrollbarWidth: 'thin',\n scrollbarColor: '{colors.utility.DEFAULT} {colors.surface.1}',\n },\n\n // Selection styling\n '::selection': {\n background: '{colors.primary.DEFAULT}',\n color: '{colors.text.primary}',\n },\n\n // Focus visible outline\n ':focus-visible': {\n outline: '2px solid {colors.primary.DEFAULT}',\n outlineOffset: '2px',\n },\n})\n","export const breakpoints = {\n mobile: '767px',\n tablet: '768px',\n desktop: '1024px',\n}\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const buttonRecipe = defineRecipe({\n className: 'button',\n base: {\n fontFamily: 'body',\n fontSize: 'base',\n px: 'lg',\n py: 'sm',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'linear-gradient(145deg, var(--chakra-colors-surface-1), var(--chakra-colors-surface-0))',\n color: 'text.primary',\n cursor: 'pointer',\n pointerEvents: 'auto',\n userSelect: 'none',\n transition: 'all 200ms ease',\n textTransform: 'uppercase',\n letterSpacing: 'tight',\n fontWeight: 'medium',\n borderRadius: 'md',\n boxShadow: 'var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)',\n\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n\n _focusVisible: {\n outline: 'var(--chakra-border-widths-base) solid var(--chakra-colors-primary)',\n outlineOffset: 'var(--chakra-border-widths-base)',\n },\n },\n variants: {\n variant: {\n primary: {\n borderColor: 'primary',\n color: 'primary',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-primary-hover), var(--chakra-colors-primary))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-primary-lg)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-primary)',\n },\n },\n secondary: {\n borderColor: 'utility',\n color: 'utility',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-utility), var(--chakra-colors-utility-hover))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-utility-lg)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-utility)',\n },\n },\n danger: {\n borderColor: 'status.error',\n color: 'status.error',\n\n _hover: {\n background: 'linear-gradient(145deg, var(--chakra-colors-status-error), var(--chakra-colors-status-error))',\n color: 'surface.0',\n boxShadow: 'var(--chakra-shadows-md), var(--chakra-shadows-glow-error)',\n transform: 'translateY(-2px)',\n },\n\n _active: {\n transform: 'translateY(0)',\n boxShadow: 'var(--chakra-shadows-xs), var(--chakra-shadows-glow-error)',\n },\n },\n },\n },\n defaultVariants: {\n variant: 'primary',\n },\n})\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const cellRecipe = defineRecipe({\n className: 'ninefold-cell',\n base: {\n aspectRatio: '1',\n background: 'linear-gradient(145deg, {colors.surface.1}, {colors.surface.0})',\n borderWidth: 'thin',\n borderColor: 'border.subtle',\n borderStyle: 'solid',\n color: 'text.primary',\n fontFamily: 'body',\n fontSize: 'cell',\n cursor: 'pointer',\n transition: 'all var(--transition-fast) var(--ease-default)',\n p: 0,\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '{shadows.inset.subtle}, 0 1px 2px rgba(0, 0, 0, 0.2)',\n _focusVisible: {\n outline: '{borderWidths.base} solid {colors.primary.DEFAULT}',\n outlineOffset: '-2px',\n zIndex: 'base',\n },\n },\n variants: {\n state: {\n normal: {\n _hover: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'primary.hover',\n boxShadow:\n '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3), {shadows.glow.primary}',\n transform: 'translateY(-1px)',\n },\n },\n given: {\n fontWeight: 'bold',\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'border.strong',\n cursor: 'default',\n boxShadow: '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)',\n _hover: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderColor: 'border.strong',\n boxShadow: '{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)',\n transform: 'none',\n },\n },\n selected: {\n background: 'linear-gradient(145deg, rgba(124, 91, 214, 0.2), rgba(124, 91, 214, 0.1))',\n borderColor: 'primary.DEFAULT',\n boxShadow: 'cell.selected',\n transform: 'translateY(-2px)',\n },\n conflict: {\n background: 'linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))',\n borderColor: 'status.error',\n color: 'status.error',\n boxShadow: 'cell.conflict',\n },\n selectedConflict: {\n background: 'linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))',\n borderColor: 'status.error',\n color: 'status.error',\n boxShadow: 'cell.conflict',\n transform: 'translateY(-2px)',\n },\n },\n },\n defaultVariants: {\n state: 'normal',\n },\n})\n","import { defineRecipe } from '@chakra-ui/react'\n\nexport const timerRecipe = defineRecipe({\n base: {\n display: 'flex',\n alignItems: 'center',\n gap: 'sm',\n fontFamily: 'body',\n fontSize: 'lg',\n color: 'primary',\n paddingY: 'sm',\n paddingX: 'md',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'surface.1',\n justifyContent: 'center',\n },\n})\n","import { buttonRecipe } from './button'\nimport { cellRecipe } from './cell'\nimport { timerRecipe } from './timer'\n\nexport const recipes = {\n button: buttonRecipe,\n cell: cellRecipe,\n timer: timerRecipe,\n}\n","import { defineSlotRecipe } from '@chakra-ui/react'\n\nexport const modalSlotRecipe = defineSlotRecipe({\n className: 'modal',\n slots: ['backdrop', 'modal', 'header', 'title', 'content'],\n base: {\n backdrop: {\n position: 'fixed',\n inset: 0,\n background: '{colors.overlay.backdrop.heavy}',\n backdropFilter: 'blur(8px)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 'modal',\n padding: 'md',\n },\n modal: {\n background: 'linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'primary.DEFAULT',\n maxWidth: '500px',\n width: '100%',\n maxHeight: '90vh',\n overflowY: 'auto',\n boxShadow: '{shadows.xl}, {shadows.glow.primary-xl}, inset 0 1px 0 rgba(255, 255, 255, 0.1)',\n borderRadius: 'md',\n },\n header: {\n padding: 'lg',\n borderBottomWidth: 'thin',\n borderBottomStyle: 'solid',\n borderBottomColor: 'border.subtle',\n background: 'linear-gradient(180deg, {colors.overlay.light}, transparent)',\n },\n title: {\n margin: 0,\n fontFamily: 'display',\n fontSize: 'xl',\n color: 'text.primary',\n textTransform: 'uppercase',\n letterSpacing: 'tight',\n textShadow: '0 2px 4px rgba(0, 0, 0, 0.5)',\n },\n content: {\n padding: 'lg',\n },\n },\n})\n","import { defineSlotRecipe } from '@chakra-ui/react'\n\nexport const victoryScreenSlotRecipe = defineSlotRecipe({\n slots: ['overlay', 'content', 'title', 'stats', 'badge', 'actions'],\n base: {\n overlay: {\n position: 'fixed',\n inset: 0,\n background: 'overlay.backdrop.heavy',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 'overlay',\n padding: 'md',\n },\n content: {\n maxWidth: '400px',\n width: '100%',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n gap: 'xl',\n padding: 'xl',\n borderWidth: 'thick',\n borderStyle: 'solid',\n borderColor: 'border.strong',\n background: 'surface.2',\n boxShadow: 'glow.primary-xl',\n },\n title: {\n fontFamily: 'display',\n fontSize: '3xl',\n color: 'text.primary',\n letterSpacing: 'wide',\n textShadow: 'glow.emphasis-lg',\n animation: 'pulse 2s ease-in-out infinite',\n },\n stats: {\n display: 'flex',\n flexDirection: 'column',\n gap: 'md',\n },\n badge: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 'sm',\n padding: 'md',\n borderWidth: 'base',\n borderStyle: 'solid',\n borderColor: 'emphasis',\n background: 'overlay.subtle',\n animation: 'glowHighlight 2s ease-in-out infinite',\n },\n actions: {\n display: 'flex',\n flexDirection: 'column',\n gap: 'md',\n },\n },\n})\n","import { modalSlotRecipe } from './modal'\nimport { victoryScreenSlotRecipe } from './victoryScreen'\n\nexport const slotRecipes = {\n modal: modalSlotRecipe,\n victoryScreen: victoryScreenSlotRecipe,\n}\n"],"mappings":"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","names":["defineTokens","defineTokens","defineTokens","defineTokens","defineTokens","defineSemanticTokens","defineRecipe","defineRecipe","defineSlotRecipe"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ebtgames/theme",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsup",
|
|
20
|
+
"storybook": "storybook dev -p 6006",
|
|
21
|
+
"build-storybook": "storybook build"
|
|
22
|
+
},
|
|
23
|
+
"peerDependencies": {
|
|
24
|
+
"@chakra-ui/react": "^3.0.0",
|
|
25
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@chakra-ui/react": "^3.32.0",
|
|
29
|
+
"@storybook/react": "^8.4.7",
|
|
30
|
+
"@storybook/react-vite": "^8.4.7",
|
|
31
|
+
"react": "^19.2.0",
|
|
32
|
+
"react-dom": "^19.2.0",
|
|
33
|
+
"storybook": "^8.4.7",
|
|
34
|
+
"tsup": "^8.3.5",
|
|
35
|
+
"typescript": "~5.9.3"
|
|
36
|
+
}
|
|
37
|
+
}
|