@ebtgames/theme 0.1.4 → 0.1.6

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.js CHANGED
@@ -43,7 +43,9 @@ var colors = defineTokens.colors({
43
43
  // Border Colors (neutral gray)
44
44
  border: {
45
45
  subtle: { value: "var(--color-border-subtle)" },
46
- strong: { value: "var(--color-border-strong)" }
46
+ strong: { value: "var(--color-border-strong)" },
47
+ soft: { value: "var(--color-border-soft)" },
48
+ contrast: { value: "var(--color-border-contrast)" }
47
49
  },
48
50
  // Status Colors
49
51
  status: {
@@ -62,6 +64,8 @@ var colors = defineTokens.colors({
62
64
  // Active
63
65
  heavy: { value: "var(--color-overlay-heavy)" },
64
66
  // Emphasis
67
+ primarySoft: { value: "var(--color-overlay-primary-soft)" },
68
+ secondarySoft: { value: "var(--color-overlay-secondary-soft)" },
65
69
  error: { value: "var(--color-overlay-error)" },
66
70
  // Error tint
67
71
  backdrop: {
@@ -154,6 +158,11 @@ var shadows = defineTokens5.shadows({
154
158
  md: { value: "var(--shadow-md)" },
155
159
  lg: { value: "var(--shadow-lg)" },
156
160
  xl: { value: "var(--shadow-xl)" },
161
+ elevation: {
162
+ 1: { value: "var(--shadow-elevation-1)" },
163
+ 2: { value: "var(--shadow-elevation-2)" },
164
+ 3: { value: "var(--shadow-elevation-3)" }
165
+ },
157
166
  // Glow shadows (primary - purple)
158
167
  glow: {
159
168
  primary: { value: "var(--shadow-glow-primary)" },
@@ -178,6 +187,13 @@ var shadows = defineTokens5.shadows({
178
187
  primary: { value: "var(--shadow-inset-primary)" },
179
188
  subtle: { value: "var(--shadow-inset-subtle)" },
180
189
  deep: { value: "var(--shadow-inset-deep)" }
190
+ },
191
+ focus: {
192
+ primary: { value: "var(--shadow-focus-ring-primary)" },
193
+ secondary: { value: "var(--shadow-focus-ring-secondary)" }
194
+ },
195
+ press: {
196
+ inset: { value: "var(--shadow-press-inset)" }
181
197
  }
182
198
  });
183
199
 
@@ -210,7 +226,9 @@ var semanticColors = defineSemanticTokens.colors({
210
226
  // Border (for buttons, inputs, cards)
211
227
  border: {
212
228
  subtle: { value: "{colors.border.subtle}" },
213
- strong: { value: "{colors.border.strong}" }
229
+ strong: { value: "{colors.border.strong}" },
230
+ control: { value: "{colors.border.soft}" },
231
+ emphasis: { value: "{colors.border.contrast}" }
214
232
  }
215
233
  });
216
234
 
@@ -219,16 +237,21 @@ import { defineSemanticTokens as defineSemanticTokens2 } from "@chakra-ui/react"
219
237
  var semanticShadows = defineSemanticTokens2.shadows({
220
238
  // Button shadows
221
239
  button: {
222
- base: { value: "{shadows.sm}, {shadows.inset.subtle}" },
223
- hover: { value: "{shadows.md}, {shadows.glow.primary-lg}" }
240
+ base: { value: "{shadows.elevation.1}, {shadows.inset.subtle}" },
241
+ hover: { value: "{shadows.elevation.2}, {shadows.inset.subtle}" },
242
+ active: { value: "{shadows.press.inset}" }
243
+ },
244
+ // Input shadows
245
+ input: {
246
+ focus: { value: "{shadows.focus.primary}" }
224
247
  },
225
248
  // Cell shadows (most complex - 4-layer stack for selected state)
226
249
  cell: {
227
250
  selected: {
228
- 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)"
251
+ value: "{shadows.inset.primary}, 0 0 0 {borderWidths.base} rgba(155, 124, 255, 0.52), {shadows.glow.primary}, 0 4px 12px rgba(155, 124, 255, 0.18)"
229
252
  },
230
253
  conflict: {
231
- value: "{shadows.glow.error}, 0 2px 6px rgba(216, 82, 77, 0.3)"
254
+ value: "{shadows.glow.error}, 0 2px 6px rgba(226, 102, 98, 0.26)"
232
255
  }
233
256
  }
234
257
  });
@@ -362,57 +385,62 @@ import { defineGlobalStyles } from "@chakra-ui/react";
362
385
 
363
386
  // src/cssVariables.ts
364
387
  var colorVariables = {
365
- // Surface Colors (deep purple monochrome)
366
- "--color-surface-0": "#1B0F26",
388
+ // Surface Colors (neutral dark foundation)
389
+ "--color-surface-0": "#0F1216",
367
390
  // Base background - darkest
368
- "--color-surface-1": "#24122F",
391
+ "--color-surface-1": "#18202A",
369
392
  // Elevated surfaces
370
- "--color-surface-2": "#2B173A",
393
+ "--color-surface-2": "#222C38",
371
394
  // Cards/panels
372
- "--color-surface-3": "#342046",
395
+ "--color-surface-3": "#2F3B4A",
373
396
  // Raised/hover states
397
+ "--color-surface-card-top": "#31364A",
398
+ // subtle purple cast
399
+ "--color-surface-card-bottom": "#232B39",
400
+ "--color-surface-control-top": "#2A3341",
401
+ "--color-surface-control-bottom": "#1E2632",
374
402
  // Text Colors (WCAG AA verified against surface-0)
375
- "--color-text-primary": "#F5F1FA",
376
- // 16.49:1 contrast
377
- "--color-text-secondary": "#D8D0E3",
378
- // 12.29:1 contrast
379
- "--color-text-muted": "#B9AEC9",
380
- // 8.72:1 contrast
381
- "--color-text-disabled": "#9E92B4",
382
- // 6.32:1 contrast
403
+ "--color-text-primary": "#F3F6FB",
404
+ "--color-text-secondary": "#D7DEE9",
405
+ "--color-text-muted": "#AAB6C5",
406
+ "--color-text-disabled": "#7F8A99",
383
407
  // Interactive - Primary (Purple)
384
- "--color-interactive-primary": "#7C5BD6",
385
- "--color-interactive-primary-hover": "#6F4FCB",
408
+ "--color-interactive-primary": "#9B7CFF",
409
+ "--color-interactive-primary-hover": "#8A6EF0",
386
410
  // Interactive - Secondary (Teal)
387
- "--color-interactive-secondary": "#2AB9B0",
388
- "--color-interactive-secondary-hover": "#52D6CC",
411
+ "--color-interactive-secondary": "#34CBBF",
412
+ "--color-interactive-secondary-hover": "#5DD9CF",
389
413
  // Interactive - Accent (Rose)
390
- "--color-interactive-accent": "#D86B9A",
414
+ "--color-interactive-accent": "#E282AE",
391
415
  // Border Colors
392
- "--color-border-subtle": "#3A3341",
393
- "--color-border-strong": "#4A4354",
416
+ "--color-border-subtle": "#334051",
417
+ "--color-border-strong": "#5D6D84",
418
+ "--color-border-soft": "#465365",
419
+ "--color-border-contrast": "#748AA4",
394
420
  // Status Colors
395
- "--color-status-success": "#2AB9B0",
421
+ "--color-status-success": "#34CBBF",
396
422
  // Teal
397
- "--color-status-warning": "#D9A24F",
423
+ "--color-status-warning": "#E0AD5D",
398
424
  // Amber
399
- "--color-status-error": "#D8524D",
425
+ "--color-status-error": "#E26662",
400
426
  // Red
401
- "--color-status-info": "#7C5BD6",
427
+ "--color-status-info": "#9B7CFF",
402
428
  // Purple
403
- // Overlay Colors (purple-based transparency)
404
- "--color-overlay-subtle": "rgba(124, 91, 214, 0.05)",
429
+ // Overlay Colors (neutral transparency with accent overlays)
430
+ "--color-overlay-subtle": "rgba(255, 255, 255, 0.03)",
405
431
  // Hover tint
406
- "--color-overlay-light": "rgba(124, 91, 214, 0.1)",
432
+ "--color-overlay-light": "rgba(255, 255, 255, 0.06)",
407
433
  // Selected
408
- "--color-overlay-medium": "rgba(124, 91, 214, 0.15)",
434
+ "--color-overlay-medium": "rgba(255, 255, 255, 0.1)",
409
435
  // Active
410
- "--color-overlay-heavy": "rgba(124, 91, 214, 0.25)",
436
+ "--color-overlay-heavy": "rgba(255, 255, 255, 0.16)",
411
437
  // Emphasis
412
- "--color-overlay-error": "rgba(216, 82, 77, 0.12)",
438
+ "--color-overlay-primary-soft": "rgba(155, 124, 255, 0.12)",
439
+ "--color-overlay-secondary-soft": "rgba(52, 203, 191, 0.12)",
440
+ "--color-overlay-error": "rgba(226, 102, 98, 0.14)",
413
441
  // Error tint
414
- "--color-overlay-backdrop-light": "rgba(27, 15, 38, 0.8)",
415
- "--color-overlay-backdrop-heavy": "rgba(27, 15, 38, 0.95)"
442
+ "--color-overlay-backdrop-light": "rgba(10, 12, 16, 0.78)",
443
+ "--color-overlay-backdrop-heavy": "rgba(10, 12, 16, 0.9)"
416
444
  };
417
445
  var typographyVariables = {
418
446
  // Font Families
@@ -484,22 +512,28 @@ var shadowVariables = {
484
512
  "--shadow-md": "0 4px 16px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.4)",
485
513
  "--shadow-lg": "0 8px 24px rgba(0, 0, 0, 0.7), 0 4px 12px rgba(0, 0, 0, 0.5)",
486
514
  "--shadow-xl": "0 16px 48px rgba(0, 0, 0, 0.8), 0 8px 24px rgba(0, 0, 0, 0.6)",
515
+ "--shadow-elevation-1": "0 1px 2px rgba(0, 0, 0, 0.36), 0 3px 8px rgba(0, 0, 0, 0.22)",
516
+ "--shadow-elevation-2": "0 6px 16px rgba(0, 0, 0, 0.32), 0 2px 6px rgba(0, 0, 0, 0.2)",
517
+ "--shadow-elevation-3": "0 12px 28px rgba(0, 0, 0, 0.36), 0 6px 14px rgba(0, 0, 0, 0.24)",
487
518
  // Glow shadows - Primary (Purple)
488
- "--shadow-glow-primary": "0 0 10px rgba(124, 91, 214, 0.4)",
489
- "--shadow-glow-primary-lg": "0 0 20px rgba(124, 91, 214, 0.5), 0 0 40px rgba(124, 91, 214, 0.3)",
490
- "--shadow-glow-primary-xl": "0 0 30px rgba(124, 91, 214, 0.6), 0 0 60px rgba(124, 91, 214, 0.4)",
519
+ "--shadow-glow-primary": "0 0 10px rgba(155, 124, 255, 0.24)",
520
+ "--shadow-glow-primary-lg": "0 0 20px rgba(155, 124, 255, 0.3), 0 0 40px rgba(155, 124, 255, 0.18)",
521
+ "--shadow-glow-primary-xl": "0 0 30px rgba(155, 124, 255, 0.38), 0 0 60px rgba(155, 124, 255, 0.24)",
491
522
  // Glow shadows - Secondary (Teal)
492
- "--shadow-glow-secondary": "0 0 10px rgba(42, 185, 176, 0.3)",
493
- "--shadow-glow-secondary-lg": "0 0 20px rgba(42, 185, 176, 0.4), 0 0 40px rgba(42, 185, 176, 0.2)",
523
+ "--shadow-glow-secondary": "0 0 10px rgba(52, 203, 191, 0.2)",
524
+ "--shadow-glow-secondary-lg": "0 0 20px rgba(52, 203, 191, 0.28), 0 0 40px rgba(52, 203, 191, 0.15)",
494
525
  // Glow shadows - Accent (Rose)
495
- "--shadow-glow-accent": "0 0 10px rgba(216, 107, 154, 0.3)",
496
- "--shadow-glow-accent-lg": "0 0 20px rgba(216, 107, 154, 0.4), 0 0 40px rgba(216, 107, 154, 0.2)",
526
+ "--shadow-glow-accent": "0 0 10px rgba(226, 130, 174, 0.2)",
527
+ "--shadow-glow-accent-lg": "0 0 20px rgba(226, 130, 174, 0.28), 0 0 40px rgba(226, 130, 174, 0.15)",
497
528
  // Glow shadows - Error
498
- "--shadow-glow-error": "0 0 10px rgba(216, 82, 77, 0.4)",
529
+ "--shadow-glow-error": "0 0 10px rgba(226, 102, 98, 0.24)",
530
+ "--shadow-focus-ring-primary": "0 0 0 2px rgba(155, 124, 255, 0.55)",
531
+ "--shadow-focus-ring-secondary": "0 0 0 2px rgba(52, 203, 191, 0.55)",
499
532
  // Inset shadows
500
- "--shadow-inset-primary": "inset 0 0 10px rgba(124, 91, 214, 0.3)",
533
+ "--shadow-inset-primary": "inset 0 0 10px rgba(155, 124, 255, 0.18)",
501
534
  "--shadow-inset-subtle": "inset 0 1px 3px rgba(0, 0, 0, 0.3)",
502
- "--shadow-inset-deep": "inset 0 2px 8px rgba(0, 0, 0, 0.5)"
535
+ "--shadow-inset-deep": "inset 0 2px 8px rgba(0, 0, 0, 0.5)",
536
+ "--shadow-press-inset": "inset 0 2px 6px rgba(0, 0, 0, 0.45)"
503
537
  };
504
538
  var zIndexVariables = {
505
539
  "--z-index-base": "1",
@@ -593,8 +627,8 @@ var globalCss = defineGlobalStyles({
593
627
  position: "fixed",
594
628
  inset: 0,
595
629
  backgroundImage: `
596
- radial-gradient(circle at 20% 50%, rgba(124, 91, 214, 0.03) 0%, transparent 50%),
597
- radial-gradient(circle at 80% 80%, rgba(42, 185, 176, 0.02) 0%, transparent 50%)
630
+ radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.02) 0%, transparent 55%),
631
+ radial-gradient(circle at 80% 80%, rgba(155, 124, 255, 0.03) 0%, transparent 45%)
598
632
  `,
599
633
  pointerEvents: "none",
600
634
  zIndex: 0
@@ -658,69 +692,74 @@ var buttonRecipe = defineRecipe({
658
692
  py: "sm",
659
693
  borderWidth: "base",
660
694
  borderStyle: "solid",
661
- borderColor: "border.strong",
662
- background: "linear-gradient(145deg, var(--chakra-colors-surface-1), var(--chakra-colors-surface-0))",
695
+ borderColor: "border.soft",
696
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
663
697
  color: "text.primary",
664
698
  cursor: "pointer",
665
699
  pointerEvents: "auto",
666
700
  userSelect: "none",
667
- transition: "all 200ms ease",
701
+ transition: "transform 160ms var(--easing-default), box-shadow 180ms var(--easing-default), border-color 180ms var(--easing-default), background 180ms var(--easing-default)",
668
702
  textTransform: "uppercase",
669
703
  letterSpacing: "tight",
670
704
  fontWeight: "medium",
671
705
  borderRadius: "md",
672
- boxShadow: "var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)",
706
+ boxShadow: "button.base",
673
707
  _disabled: {
674
708
  opacity: 0.5,
675
- cursor: "not-allowed"
709
+ cursor: "not-allowed",
710
+ transform: "none",
711
+ boxShadow: "button.base"
676
712
  },
677
713
  _focusVisible: {
678
- outline: "var(--chakra-border-widths-base) solid var(--chakra-colors-primary)",
679
- outlineOffset: "var(--chakra-border-widths-base)"
714
+ outline: "none",
715
+ boxShadow: "focus.primary, button.base"
680
716
  }
681
717
  },
682
718
  variants: {
683
719
  variant: {
684
720
  primary: {
685
- borderColor: "primary",
721
+ borderColor: "primary.DEFAULT",
686
722
  color: "primary",
687
723
  _hover: {
688
- background: "linear-gradient(145deg, var(--chakra-colors-primary-hover), var(--chakra-colors-primary))",
724
+ background: "linear-gradient(145deg, var(--color-interactive-primary-hover), var(--color-interactive-primary))",
725
+ borderColor: "primary.hover",
689
726
  color: "surface.0",
690
- boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-primary-lg)",
691
- transform: "translateY(-2px)"
727
+ boxShadow: "button.hover",
728
+ transform: "translateY(-1px)"
692
729
  },
693
730
  _active: {
694
731
  transform: "translateY(0)",
695
- boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-primary)"
732
+ boxShadow: "button.active"
696
733
  }
697
734
  },
698
735
  secondary: {
699
- borderColor: "utility",
736
+ borderColor: "utility.DEFAULT",
700
737
  color: "utility",
701
738
  _hover: {
702
- background: "linear-gradient(145deg, var(--chakra-colors-utility), var(--chakra-colors-utility-hover))",
739
+ background: "linear-gradient(145deg, var(--color-interactive-secondary), var(--color-interactive-secondary-hover))",
740
+ borderColor: "utility.hover",
703
741
  color: "surface.0",
704
- boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-utility-lg)",
705
- transform: "translateY(-2px)"
742
+ boxShadow: "button.hover",
743
+ transform: "translateY(-1px)"
706
744
  },
707
745
  _active: {
708
746
  transform: "translateY(0)",
709
- boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-utility)"
747
+ boxShadow: "button.active"
710
748
  }
711
749
  },
712
750
  danger: {
713
751
  borderColor: "status.error",
714
752
  color: "status.error",
715
753
  _hover: {
716
- background: "linear-gradient(145deg, var(--chakra-colors-status-error), var(--chakra-colors-status-error))",
754
+ background: "linear-gradient(145deg, var(--color-status-error), var(--color-status-error))",
755
+ borderColor: "status.error",
717
756
  color: "surface.0",
718
- boxShadow: "var(--chakra-shadows-md), var(--chakra-shadows-glow-error)",
719
- transform: "translateY(-2px)"
757
+ boxShadow: "button.hover",
758
+ transform: "translateY(-1px)"
720
759
  },
721
760
  _active: {
722
761
  transform: "translateY(0)",
723
- boxShadow: "var(--chakra-shadows-xs), var(--chakra-shadows-glow-error)"
762
+ boxShadow: "button.active"
724
763
  }
725
764
  }
726
765
  }
@@ -736,24 +775,24 @@ var cellRecipe = defineRecipe2({
736
775
  className: "ninefold-cell",
737
776
  base: {
738
777
  aspectRatio: "1",
739
- background: "linear-gradient(145deg, {colors.surface.1}, {colors.surface.0})",
778
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
740
779
  borderWidth: "thin",
741
- borderColor: "border.subtle",
780
+ borderColor: "border.soft",
742
781
  borderStyle: "solid",
743
782
  color: "text.primary",
744
783
  fontFamily: "body",
745
784
  fontSize: "cell",
746
785
  cursor: "pointer",
747
- transition: "all var(--transition-fast) var(--ease-default)",
786
+ transition: "all var(--timing-fast) var(--easing-default)",
748
787
  p: 0,
749
788
  position: "relative",
750
789
  display: "flex",
751
790
  alignItems: "center",
752
791
  justifyContent: "center",
753
- boxShadow: "{shadows.inset.subtle}, 0 1px 2px rgba(0, 0, 0, 0.2)",
792
+ boxShadow: "var(--shadow-inset-subtle), var(--shadow-elevation-1)",
754
793
  _focusVisible: {
755
- outline: "{borderWidths.base} solid {colors.primary.DEFAULT}",
756
- outlineOffset: "-2px",
794
+ outline: "none",
795
+ boxShadow: "var(--shadow-inset-subtle), var(--shadow-elevation-1), var(--shadow-focus-ring-primary)",
757
796
  zIndex: "base"
758
797
  }
759
798
  },
@@ -761,43 +800,43 @@ var cellRecipe = defineRecipe2({
761
800
  state: {
762
801
  normal: {
763
802
  _hover: {
764
- background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
803
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
765
804
  borderColor: "primary.hover",
766
- boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3), {shadows.glow.primary}",
805
+ boxShadow: "var(--shadow-inset-subtle), var(--shadow-elevation-2)",
767
806
  transform: "translateY(-1px)"
768
807
  }
769
808
  },
770
809
  given: {
771
810
  fontWeight: "bold",
772
- background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
773
- borderColor: "border.strong",
811
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
812
+ borderColor: "border.contrast",
774
813
  cursor: "default",
775
- boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
814
+ boxShadow: "var(--shadow-inset-subtle), var(--shadow-elevation-1)",
776
815
  _hover: {
777
- background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
778
- borderColor: "border.strong",
779
- boxShadow: "{shadows.inset.subtle}, 0 2px 4px rgba(0, 0, 0, 0.3)",
816
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
817
+ borderColor: "border.contrast",
818
+ boxShadow: "var(--shadow-inset-subtle), var(--shadow-elevation-1)",
780
819
  transform: "none"
781
820
  }
782
821
  },
783
822
  selected: {
784
- background: "linear-gradient(145deg, rgba(124, 91, 214, 0.2), rgba(124, 91, 214, 0.1))",
823
+ background: "linear-gradient(145deg, var(--color-overlay-primary-soft), rgba(155, 124, 255, 0.05))",
785
824
  borderColor: "primary.DEFAULT",
786
825
  boxShadow: "cell.selected",
787
- transform: "translateY(-2px)"
826
+ transform: "translateY(-1px)"
788
827
  },
789
828
  conflict: {
790
- background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
829
+ background: "linear-gradient(145deg, rgba(226, 102, 98, 0.16), rgba(226, 102, 98, 0.08))",
791
830
  borderColor: "status.error",
792
831
  color: "status.error",
793
832
  boxShadow: "cell.conflict"
794
833
  },
795
834
  selectedConflict: {
796
- background: "linear-gradient(145deg, rgba(216, 82, 77, 0.2), rgba(216, 82, 77, 0.1))",
835
+ background: "linear-gradient(145deg, rgba(226, 102, 98, 0.16), rgba(226, 102, 98, 0.08))",
797
836
  borderColor: "status.error",
798
837
  color: "status.error",
799
838
  boxShadow: "cell.conflict",
800
- transform: "translateY(-2px)"
839
+ transform: "translateY(-1px)"
801
840
  }
802
841
  }
803
842
  },
@@ -820,10 +859,10 @@ var timerRecipe = defineRecipe3({
820
859
  paddingX: "md",
821
860
  borderWidth: "base",
822
861
  borderStyle: "solid",
823
- borderColor: "border.strong",
824
- background: "surface.1",
862
+ borderColor: "border.contrast",
863
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
825
864
  borderRadius: "md",
826
- boxShadow: "var(--chakra-shadows-sm), inset 0 1px 0 rgba(255, 255, 255, 0.05)",
865
+ boxShadow: "var(--shadow-elevation-1), inset 0 1px 0 rgba(255, 255, 255, 0.05)",
827
866
  justifyContent: "center"
828
867
  }
829
868
  });
@@ -836,9 +875,12 @@ var loadingRecipe = defineRecipe4({
836
875
  display: "inline-block",
837
876
  width: "12px",
838
877
  height: "12px",
839
- backgroundColor: "primary.DEFAULT",
840
878
  borderRadius: "50%",
841
- animation: "bounce 1.4s infinite ease-in-out both"
879
+ animationName: "bounce",
880
+ animationDuration: "1.4s",
881
+ animationIterationCount: "infinite",
882
+ animationTimingFunction: "ease-in-out",
883
+ animationFillMode: "both"
842
884
  },
843
885
  variants: {
844
886
  size: {
@@ -857,13 +899,13 @@ var loadingRecipe = defineRecipe4({
857
899
  },
858
900
  color: {
859
901
  primary: {
860
- backgroundColor: "primary.DEFAULT"
902
+ bg: "primary"
861
903
  },
862
904
  secondary: {
863
- backgroundColor: "utility.DEFAULT"
905
+ bg: "utility"
864
906
  },
865
907
  accent: {
866
- backgroundColor: "emphasis.DEFAULT"
908
+ bg: "emphasis"
867
909
  }
868
910
  }
869
911
  },
@@ -881,23 +923,24 @@ var inputRecipe = defineRecipe5({
881
923
  fontFamily: "body",
882
924
  fontSize: "base",
883
925
  color: "text.primary",
884
- backgroundColor: "surface.0",
926
+ backgroundColor: "surface.1",
885
927
  borderWidth: "thin",
886
928
  borderStyle: "solid",
887
- borderColor: "border.subtle",
929
+ borderColor: "border.soft",
888
930
  borderRadius: "md",
889
931
  padding: "sm",
890
932
  width: "100%",
891
- transition: "all var(--timing-base) var(--easing-default)",
933
+ transition: "box-shadow var(--timing-base) var(--easing-default), border-color var(--timing-base) var(--easing-default), background-color var(--timing-base) var(--easing-default)",
934
+ boxShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.05), var(--shadow-inset-subtle)",
892
935
  _placeholder: {
893
936
  color: "text.muted"
894
937
  },
895
938
  _hover: {
896
- borderColor: "border.strong"
939
+ borderColor: "border.contrast"
897
940
  },
898
941
  _focus: {
899
942
  borderColor: "primary.DEFAULT",
900
- boxShadow: "var(--shadow-glow-primary)",
943
+ boxShadow: "input.focus, inset 0 1px 0 rgba(255, 255, 255, 0.05), var(--shadow-inset-subtle)",
901
944
  outline: "none"
902
945
  },
903
946
  _disabled: {
@@ -907,7 +950,7 @@ var inputRecipe = defineRecipe5({
907
950
  },
908
951
  _invalid: {
909
952
  borderColor: "status.error",
910
- boxShadow: "var(--shadow-glow-error)"
953
+ boxShadow: "0 0 0 var(--border-width-thin) rgba(226, 102, 98, 0.5), 0 0 4px rgba(226, 102, 98, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.05), var(--shadow-inset-subtle)"
911
954
  }
912
955
  },
913
956
  variants: {
@@ -930,17 +973,18 @@ var inputRecipe = defineRecipe5({
930
973
  },
931
974
  variant: {
932
975
  outline: {
933
- backgroundColor: "transparent",
934
- borderColor: "border.subtle"
976
+ backgroundColor: "surface.1",
977
+ borderColor: "border.soft"
935
978
  },
936
979
  filled: {
937
- backgroundColor: "surface.1",
938
- borderColor: "transparent",
980
+ backgroundColor: "surface.2",
981
+ borderColor: "border.soft",
939
982
  _hover: {
983
+ borderColor: "border.contrast",
940
984
  backgroundColor: "surface.2"
941
985
  },
942
986
  _focus: {
943
- backgroundColor: "surface.0",
987
+ backgroundColor: "surface.2",
944
988
  borderColor: "primary.DEFAULT"
945
989
  }
946
990
  }
@@ -1024,35 +1068,36 @@ import { defineRecipe as defineRecipe7 } from "@chakra-ui/react";
1024
1068
  var cardRecipe = defineRecipe7({
1025
1069
  className: "card",
1026
1070
  base: {
1027
- background: "linear-gradient(145deg, var(--color-surface-2), var(--color-surface-1))",
1071
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1028
1072
  borderWidth: "thin",
1029
1073
  borderStyle: "solid",
1030
- borderColor: "border.subtle",
1074
+ borderColor: "border.soft",
1031
1075
  borderRadius: "md",
1032
1076
  padding: "lg",
1033
- boxShadow: "var(--shadow-sm)"
1077
+ boxShadow: "var(--shadow-elevation-1), inset 0 1px 0 rgba(255, 255, 255, 0.04)",
1078
+ transition: "box-shadow var(--timing-base) var(--easing-default), border-color var(--timing-base) var(--easing-default)"
1034
1079
  },
1035
1080
  variants: {
1036
1081
  variant: {
1037
1082
  subtle: {
1038
- background: "surface.1",
1039
- borderColor: "border.subtle",
1040
- boxShadow: "none"
1083
+ background: "linear-gradient(145deg, var(--color-surface-2), var(--color-surface-1))",
1084
+ borderColor: "border.soft",
1085
+ boxShadow: "var(--shadow-xs), inset 0 1px 0 rgba(255, 255, 255, 0.03)"
1041
1086
  },
1042
1087
  elevated: {
1043
- background: "linear-gradient(145deg, var(--color-surface-2), var(--color-surface-1))",
1044
- borderColor: "border.strong",
1045
- boxShadow: "var(--shadow-md)"
1088
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1089
+ borderColor: "border.contrast",
1090
+ boxShadow: "var(--shadow-elevation-2), inset 0 1px 0 rgba(255, 255, 255, 0.06)"
1046
1091
  },
1047
1092
  outline: {
1048
1093
  background: "transparent",
1049
- borderColor: "border.strong",
1094
+ borderColor: "border.contrast",
1050
1095
  boxShadow: "none"
1051
1096
  },
1052
1097
  glow: {
1053
- background: "linear-gradient(145deg, var(--color-surface-2), var(--color-surface-1))",
1098
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1054
1099
  borderColor: "primary.DEFAULT",
1055
- boxShadow: "var(--shadow-md), var(--shadow-glow-primary)"
1100
+ boxShadow: "var(--shadow-elevation-2), var(--shadow-focus-ring-primary), inset 0 1px 0 rgba(255, 255, 255, 0.06)"
1056
1101
  }
1057
1102
  },
1058
1103
  size: {
@@ -1316,7 +1361,7 @@ var modalSlotRecipe = defineSlotRecipe({
1316
1361
  backdrop: {
1317
1362
  position: "fixed",
1318
1363
  inset: 0,
1319
- background: "{colors.overlay.backdrop.heavy}",
1364
+ background: "var(--color-overlay-backdrop-heavy)",
1320
1365
  backdropFilter: "blur(8px)",
1321
1366
  display: "flex",
1322
1367
  alignItems: "center",
@@ -1325,23 +1370,23 @@ var modalSlotRecipe = defineSlotRecipe({
1325
1370
  padding: "md"
1326
1371
  },
1327
1372
  modal: {
1328
- background: "linear-gradient(145deg, {colors.surface.2}, {colors.surface.1})",
1373
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1329
1374
  borderWidth: "base",
1330
1375
  borderStyle: "solid",
1331
- borderColor: "primary.DEFAULT",
1376
+ borderColor: "border.contrast",
1332
1377
  maxWidth: "500px",
1333
1378
  width: "100%",
1334
1379
  maxHeight: "90vh",
1335
1380
  overflowY: "auto",
1336
- boxShadow: "{shadows.xl}, {shadows.glow.primary-xl}, inset 0 1px 0 rgba(255, 255, 255, 0.1)",
1381
+ boxShadow: "var(--shadow-elevation-3), inset 0 1px 0 rgba(255, 255, 255, 0.08), var(--shadow-focus-ring-primary)",
1337
1382
  borderRadius: "md"
1338
1383
  },
1339
1384
  header: {
1340
1385
  padding: "lg",
1341
1386
  borderBottomWidth: "thin",
1342
1387
  borderBottomStyle: "solid",
1343
- borderBottomColor: "border.subtle",
1344
- background: "linear-gradient(180deg, {colors.overlay.light}, transparent)"
1388
+ borderBottomColor: "border.soft",
1389
+ background: "linear-gradient(180deg, var(--color-overlay-subtle), transparent)"
1345
1390
  },
1346
1391
  title: {
1347
1392
  margin: 0,
@@ -1383,7 +1428,6 @@ var switchSlotRecipe = defineSlotRecipe2({
1383
1428
  color: "text.primary",
1384
1429
  textTransform: "uppercase",
1385
1430
  letterSpacing: "wide",
1386
- textShadow: "0 1px 2px rgba(0, 0, 0, 0.4)",
1387
1431
  userSelect: "none"
1388
1432
  },
1389
1433
  control: {
@@ -1395,22 +1439,23 @@ var switchSlotRecipe = defineSlotRecipe2({
1395
1439
  borderRadius: "full",
1396
1440
  borderWidth: "base",
1397
1441
  borderStyle: "solid",
1398
- borderColor: "border.strong",
1399
- background: "linear-gradient(140deg, {colors.surface.2}, {colors.surface.1} 50%, {colors.surface.0})",
1400
- boxShadow: "{shadows.sm}, inset 0 1px 0 rgba(255, 255, 255, 0.06)",
1442
+ borderColor: "border.soft",
1443
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
1444
+ boxShadow: "var(--shadow-elevation-1), inset 0 1px 0 rgba(255, 255, 255, 0.06)",
1401
1445
  transition: "all 200ms ease",
1446
+ cursor: "pointer",
1402
1447
  _checked: {
1403
1448
  borderColor: "primary.DEFAULT",
1404
- background: "linear-gradient(140deg, {colors.primary.hover}, {colors.primary.DEFAULT})",
1405
- boxShadow: "{shadows.md}, {shadows.glow.primary}, inset 0 1px 0 rgba(255, 255, 255, 0.1)"
1449
+ background: "linear-gradient(145deg, var(--color-interactive-primary-hover), var(--color-interactive-primary))",
1450
+ boxShadow: "var(--shadow-elevation-2), var(--shadow-glow-primary), inset 0 1px 0 rgba(255, 255, 255, 0.1)"
1406
1451
  }
1407
1452
  },
1408
1453
  thumb: {
1409
1454
  width: "var(--switch-height)",
1410
1455
  height: "var(--switch-height)",
1411
1456
  borderRadius: "full",
1412
- background: "surface.0",
1413
- boxShadow: "{shadows.sm}",
1457
+ background: "surface.1",
1458
+ boxShadow: "var(--shadow-elevation-1)",
1414
1459
  transitionProperty: "translate",
1415
1460
  transitionDuration: "fast",
1416
1461
  _checked: {
@@ -1446,16 +1491,16 @@ var victoryScreenSlotRecipe = defineSlotRecipe3({
1446
1491
  padding: "xl",
1447
1492
  borderWidth: "thick",
1448
1493
  borderStyle: "solid",
1449
- borderColor: "border.strong",
1450
- background: "surface.2",
1451
- boxShadow: "glow.primary-xl"
1494
+ borderColor: "border.contrast",
1495
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1496
+ boxShadow: "var(--shadow-elevation-3), var(--shadow-focus-ring-primary)"
1452
1497
  },
1453
1498
  title: {
1454
1499
  fontFamily: "display",
1455
1500
  fontSize: "3xl",
1456
1501
  color: "text.primary",
1457
1502
  letterSpacing: "wide",
1458
- textShadow: "glow.emphasis-lg",
1503
+ textShadow: "0 2px 8px rgba(0, 0, 0, 0.45)",
1459
1504
  animation: "pulse 2s ease-in-out infinite"
1460
1505
  },
1461
1506
  stats: {
@@ -1471,8 +1516,8 @@ var victoryScreenSlotRecipe = defineSlotRecipe3({
1471
1516
  padding: "md",
1472
1517
  borderWidth: "base",
1473
1518
  borderStyle: "solid",
1474
- borderColor: "emphasis",
1475
- background: "overlay.subtle",
1519
+ borderColor: "primary.DEFAULT",
1520
+ background: "overlay.primarySoft",
1476
1521
  animation: "glowHighlight 2s ease-in-out infinite"
1477
1522
  },
1478
1523
  actions: {
@@ -1495,7 +1540,7 @@ var accordionSlotRecipe = defineSlotRecipe4({
1495
1540
  item: {
1496
1541
  borderWidth: "thin",
1497
1542
  borderStyle: "solid",
1498
- borderColor: "border.subtle",
1543
+ borderColor: "border.soft",
1499
1544
  borderRadius: "md",
1500
1545
  overflow: "hidden",
1501
1546
  marginBottom: "sm",
@@ -1509,7 +1554,7 @@ var accordionSlotRecipe = defineSlotRecipe4({
1509
1554
  justifyContent: "space-between",
1510
1555
  width: "100%",
1511
1556
  padding: "sm",
1512
- backgroundColor: "surface.0",
1557
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
1513
1558
  borderWidth: 0,
1514
1559
  borderBottomWidth: "thin",
1515
1560
  borderStyle: "solid",
@@ -1524,11 +1569,12 @@ var accordionSlotRecipe = defineSlotRecipe4({
1524
1569
  transition: "all var(--timing-base) var(--easing-default)",
1525
1570
  boxShadow: "inset 0 1px 0 rgba(255, 255, 255, 0.06)",
1526
1571
  _hover: {
1527
- backgroundColor: "surface.1"
1572
+ borderColor: "border.contrast",
1573
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))"
1528
1574
  },
1529
1575
  _expanded: {
1530
- borderBottomColor: "border.subtle",
1531
- backgroundColor: "surface.1"
1576
+ borderBottomColor: "border.soft",
1577
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))"
1532
1578
  }
1533
1579
  },
1534
1580
  icon: {
@@ -1540,25 +1586,25 @@ var accordionSlotRecipe = defineSlotRecipe4({
1540
1586
  },
1541
1587
  content: {
1542
1588
  padding: "md",
1543
- backgroundColor: "surface.1"
1589
+ backgroundColor: "surface.2"
1544
1590
  }
1545
1591
  },
1546
1592
  variants: {
1547
1593
  variant: {
1548
1594
  subtle: {
1549
1595
  item: {
1550
- borderColor: "border.subtle"
1596
+ borderColor: "border.soft"
1551
1597
  },
1552
1598
  trigger: {
1553
- backgroundColor: "surface.0"
1599
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))"
1554
1600
  },
1555
1601
  content: {
1556
- backgroundColor: "surface.1"
1602
+ backgroundColor: "surface.2"
1557
1603
  }
1558
1604
  },
1559
1605
  outline: {
1560
1606
  item: {
1561
- borderColor: "border.strong"
1607
+ borderColor: "border.contrast"
1562
1608
  },
1563
1609
  trigger: {
1564
1610
  backgroundColor: "transparent",
@@ -1573,14 +1619,14 @@ var accordionSlotRecipe = defineSlotRecipe4({
1573
1619
  solid: {
1574
1620
  item: {
1575
1621
  borderColor: "primary.DEFAULT",
1576
- boxShadow: "var(--shadow-glow-primary)"
1622
+ boxShadow: "var(--shadow-elevation-2), var(--shadow-glow-primary)"
1577
1623
  },
1578
1624
  trigger: {
1579
- backgroundColor: "surface.1",
1625
+ background: "linear-gradient(145deg, var(--color-surface-card-top), var(--color-surface-card-bottom))",
1580
1626
  borderBottomColor: "primary.DEFAULT"
1581
1627
  },
1582
1628
  content: {
1583
- backgroundColor: "surface.0"
1629
+ backgroundColor: "surface.2"
1584
1630
  }
1585
1631
  }
1586
1632
  },
@@ -1633,7 +1679,7 @@ var radioGroupSlotRecipe = defineSlotRecipe5({
1633
1679
  fontFamily: "body",
1634
1680
  fontSize: "base",
1635
1681
  fontWeight: "medium",
1636
- color: "primary.DEFAULT",
1682
+ color: "text.secondary",
1637
1683
  textTransform: "uppercase",
1638
1684
  letterSpacing: "tight",
1639
1685
  marginBottom: "md"
@@ -1650,25 +1696,26 @@ var radioGroupSlotRecipe = defineSlotRecipe5({
1650
1696
  padding: "sm",
1651
1697
  borderWidth: "thin",
1652
1698
  borderStyle: "solid",
1653
- borderColor: "border.subtle",
1699
+ borderColor: "border.soft",
1654
1700
  borderRadius: "md",
1655
- backgroundColor: "transparent",
1701
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))",
1656
1702
  cursor: "pointer",
1657
1703
  transition: "all var(--timing-base) var(--easing-default)",
1658
1704
  _hover: {
1659
- borderColor: "primary.DEFAULT",
1660
- backgroundColor: "overlay.subtle"
1705
+ borderColor: "border.contrast",
1706
+ backgroundColor: "overlay.light"
1661
1707
  },
1662
1708
  _checked: {
1663
1709
  borderColor: "primary.DEFAULT",
1664
- backgroundColor: "overlay.light"
1710
+ backgroundColor: "overlay.primarySoft",
1711
+ boxShadow: "var(--shadow-focus-ring-primary)"
1665
1712
  },
1666
1713
  _disabled: {
1667
1714
  opacity: 0.5,
1668
1715
  cursor: "not-allowed",
1669
1716
  _hover: {
1670
- borderColor: "border.subtle",
1671
- backgroundColor: "transparent"
1717
+ borderColor: "border.soft",
1718
+ background: "linear-gradient(145deg, var(--color-surface-control-top), var(--color-surface-control-bottom))"
1672
1719
  }
1673
1720
  }
1674
1721
  },
@@ -1680,7 +1727,7 @@ var radioGroupSlotRecipe = defineSlotRecipe5({
1680
1727
  height: "18px",
1681
1728
  borderWidth: "base",
1682
1729
  borderStyle: "solid",
1683
- borderColor: "border.strong",
1730
+ borderColor: "border.contrast",
1684
1731
  borderRadius: "50%",
1685
1732
  backgroundColor: "surface.0",
1686
1733
  flexShrink: 0,
@@ -1719,12 +1766,12 @@ var radioGroupSlotRecipe = defineSlotRecipe5({
1719
1766
  },
1720
1767
  subtle: {
1721
1768
  item: {
1722
- backgroundColor: "surface.1",
1769
+ backgroundColor: "surface.2",
1723
1770
  _hover: {
1724
- backgroundColor: "surface.2"
1771
+ backgroundColor: "surface.3"
1725
1772
  },
1726
1773
  _checked: {
1727
- backgroundColor: "overlay.light"
1774
+ backgroundColor: "overlay.primarySoft"
1728
1775
  }
1729
1776
  }
1730
1777
  },
@@ -1732,9 +1779,9 @@ var radioGroupSlotRecipe = defineSlotRecipe5({
1732
1779
  item: {
1733
1780
  padding: "md",
1734
1781
  borderRadius: "md",
1735
- boxShadow: "var(--shadow-xs)",
1782
+ boxShadow: "var(--shadow-elevation-1)",
1736
1783
  _checked: {
1737
- boxShadow: "var(--shadow-sm), var(--shadow-glow-primary)"
1784
+ boxShadow: "var(--shadow-elevation-2), var(--shadow-focus-ring-primary)"
1738
1785
  }
1739
1786
  }
1740
1787
  }