ngx-com 0.0.21 → 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.
Files changed (114) hide show
  1. package/README.md +137 -33
  2. package/fesm2022/ngx-com-components-alert.mjs +21 -11
  3. package/fesm2022/ngx-com-components-alert.mjs.map +1 -1
  4. package/fesm2022/ngx-com-components-avatar.mjs +9 -7
  5. package/fesm2022/ngx-com-components-avatar.mjs.map +1 -1
  6. package/fesm2022/ngx-com-components-button.mjs +1 -1
  7. package/fesm2022/ngx-com-components-button.mjs.map +1 -1
  8. package/fesm2022/ngx-com-components-calendar.mjs +27 -3112
  9. package/fesm2022/ngx-com-components-calendar.mjs.map +1 -1
  10. package/fesm2022/ngx-com-components-card.mjs +8 -8
  11. package/fesm2022/ngx-com-components-card.mjs.map +1 -1
  12. package/fesm2022/ngx-com-components-carousel.mjs +16 -4
  13. package/fesm2022/ngx-com-components-carousel.mjs.map +1 -1
  14. package/fesm2022/ngx-com-components-checkbox.mjs +1 -1
  15. package/fesm2022/ngx-com-components-checkbox.mjs.map +1 -1
  16. package/fesm2022/ngx-com-components-code-block.mjs +9 -9
  17. package/fesm2022/ngx-com-components-code-block.mjs.map +1 -1
  18. package/fesm2022/ngx-com-components-collapsible.mjs +15 -13
  19. package/fesm2022/ngx-com-components-collapsible.mjs.map +1 -1
  20. package/fesm2022/ngx-com-components-confirm.mjs +4 -4
  21. package/fesm2022/ngx-com-components-confirm.mjs.map +1 -1
  22. package/fesm2022/ngx-com-components-datepicker.mjs +2334 -0
  23. package/fesm2022/ngx-com-components-datepicker.mjs.map +1 -0
  24. package/fesm2022/ngx-com-components-dialog.mjs +47 -45
  25. package/fesm2022/ngx-com-components-dialog.mjs.map +1 -1
  26. package/fesm2022/ngx-com-components-dropdown.mjs +446 -340
  27. package/fesm2022/ngx-com-components-dropdown.mjs.map +1 -1
  28. package/fesm2022/ngx-com-components-empty-state.mjs +5 -3
  29. package/fesm2022/ngx-com-components-empty-state.mjs.map +1 -1
  30. package/fesm2022/ngx-com-components-form-field.mjs +11 -6
  31. package/fesm2022/ngx-com-components-form-field.mjs.map +1 -1
  32. package/fesm2022/ngx-com-components-icon-lucide.mjs +41 -0
  33. package/fesm2022/ngx-com-components-icon-lucide.mjs.map +1 -0
  34. package/fesm2022/ngx-com-components-icon.mjs +89 -61
  35. package/fesm2022/ngx-com-components-icon.mjs.map +1 -1
  36. package/fesm2022/ngx-com-components-item.mjs +14 -4
  37. package/fesm2022/ngx-com-components-item.mjs.map +1 -1
  38. package/fesm2022/ngx-com-components-menu.mjs +61 -69
  39. package/fesm2022/ngx-com-components-menu.mjs.map +1 -1
  40. package/fesm2022/ngx-com-components-native-control.mjs +170 -0
  41. package/fesm2022/ngx-com-components-native-control.mjs.map +1 -0
  42. package/fesm2022/ngx-com-components-paginator.mjs +11 -3
  43. package/fesm2022/ngx-com-components-paginator.mjs.map +1 -1
  44. package/fesm2022/ngx-com-components-popover.mjs +58 -33
  45. package/fesm2022/ngx-com-components-popover.mjs.map +1 -1
  46. package/fesm2022/ngx-com-components-radio.mjs +4 -4
  47. package/fesm2022/ngx-com-components-radio.mjs.map +1 -1
  48. package/fesm2022/ngx-com-components-segmented-control.mjs +6 -4
  49. package/fesm2022/ngx-com-components-segmented-control.mjs.map +1 -1
  50. package/fesm2022/ngx-com-components-sort.mjs +63 -57
  51. package/fesm2022/ngx-com-components-sort.mjs.map +1 -1
  52. package/fesm2022/ngx-com-components-spinner.mjs +6 -6
  53. package/fesm2022/ngx-com-components-spinner.mjs.map +1 -1
  54. package/fesm2022/ngx-com-components-switch.mjs +18 -9
  55. package/fesm2022/ngx-com-components-switch.mjs.map +1 -1
  56. package/fesm2022/ngx-com-components-table.mjs +23 -9
  57. package/fesm2022/ngx-com-components-table.mjs.map +1 -1
  58. package/fesm2022/ngx-com-components-tabs.mjs +81 -58
  59. package/fesm2022/ngx-com-components-tabs.mjs.map +1 -1
  60. package/fesm2022/ngx-com-components-timepicker.mjs +1048 -0
  61. package/fesm2022/ngx-com-components-timepicker.mjs.map +1 -0
  62. package/fesm2022/ngx-com-components-toast.mjs +18 -14
  63. package/fesm2022/ngx-com-components-toast.mjs.map +1 -1
  64. package/fesm2022/ngx-com-components-tooltip.mjs +5 -5
  65. package/fesm2022/ngx-com-components-tooltip.mjs.map +1 -1
  66. package/fesm2022/ngx-com-components.mjs +0 -13
  67. package/fesm2022/ngx-com-components.mjs.map +1 -1
  68. package/fesm2022/ngx-com-tokens.mjs +0 -8
  69. package/fesm2022/ngx-com-tokens.mjs.map +1 -1
  70. package/fesm2022/ngx-com-utils.mjs +13 -1
  71. package/fesm2022/ngx-com-utils.mjs.map +1 -1
  72. package/fesm2022/ngx-com.mjs +1 -1
  73. package/fesm2022/ngx-com.mjs.map +1 -1
  74. package/package.json +51 -8
  75. package/styles/animations.css +38 -0
  76. package/styles/candy.css +121 -0
  77. package/styles/dark.css +159 -0
  78. package/styles/forest.css +117 -0
  79. package/styles/ocean.css +117 -0
  80. package/styles/themes.css +7 -0
  81. package/styles/tokens.css +277 -0
  82. package/styles/utilities.css +16 -0
  83. package/types/ngx-com-components-alert.d.ts +14 -4
  84. package/types/ngx-com-components-avatar.d.ts +2 -0
  85. package/types/ngx-com-components-calendar.d.ts +3 -747
  86. package/types/ngx-com-components-card.d.ts +2 -2
  87. package/types/ngx-com-components-carousel.d.ts +11 -1
  88. package/types/ngx-com-components-code-block.d.ts +4 -4
  89. package/types/ngx-com-components-collapsible.d.ts +10 -2
  90. package/types/ngx-com-components-confirm.d.ts +2 -2
  91. package/types/ngx-com-components-datepicker.d.ts +623 -0
  92. package/types/ngx-com-components-dialog.d.ts +5 -2
  93. package/types/ngx-com-components-dropdown.d.ts +22 -4
  94. package/types/ngx-com-components-empty-state.d.ts +2 -0
  95. package/types/ngx-com-components-form-field.d.ts +4 -1
  96. package/types/ngx-com-components-icon-lucide.d.ts +32 -0
  97. package/types/ngx-com-components-icon.d.ts +49 -35
  98. package/types/ngx-com-components-item.d.ts +12 -2
  99. package/types/ngx-com-components-menu.d.ts +38 -38
  100. package/types/ngx-com-components-native-control.d.ts +99 -0
  101. package/types/ngx-com-components-paginator.d.ts +2 -0
  102. package/types/ngx-com-components-popover.d.ts +19 -12
  103. package/types/ngx-com-components-segmented-control.d.ts +3 -1
  104. package/types/ngx-com-components-sort.d.ts +13 -10
  105. package/types/ngx-com-components-switch.d.ts +7 -2
  106. package/types/ngx-com-components-table.d.ts +16 -2
  107. package/types/ngx-com-components-tabs.d.ts +46 -34
  108. package/types/ngx-com-components-timepicker.d.ts +273 -0
  109. package/types/ngx-com-components-toast.d.ts +4 -2
  110. package/types/ngx-com-components-tooltip.d.ts +1 -1
  111. package/types/ngx-com-components.d.ts +6 -7
  112. package/types/ngx-com-tokens.d.ts +5 -3
  113. package/types/ngx-com-utils.d.ts +11 -1
  114. package/types/ngx-com.d.ts +1 -1
@@ -0,0 +1,121 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────────
2
+ CANDY THEME
3
+ ───────────────────────────────────────────────────────────────────────────── */
4
+
5
+ [data-theme='candy'] {
6
+ /* Primary - Bubblegum Pink (hue ~350) */
7
+ --color-primary-50: oklch(0.97 0.02 350);
8
+ --color-primary-100: oklch(0.93 0.06 350);
9
+ --color-primary-200: oklch(0.86 0.12 350);
10
+ --color-primary-300: oklch(0.76 0.18 350);
11
+ --color-primary-400: oklch(0.66 0.22 350);
12
+ --color-primary-500: oklch(0.58 0.22 350);
13
+ --color-primary-600: oklch(0.50 0.20 350);
14
+ --color-primary-700: oklch(0.42 0.17 350);
15
+ --color-primary-800: oklch(0.35 0.13 350);
16
+ --color-primary-900: oklch(0.28 0.09 350);
17
+ --color-primary-950: oklch(0.20 0.06 350);
18
+
19
+ /* Accent - Grape Purple (hue ~290) */
20
+ --color-accent-50: oklch(0.97 0.02 290);
21
+ --color-accent-100: oklch(0.93 0.05 290);
22
+ --color-accent-200: oklch(0.86 0.10 290);
23
+ --color-accent-300: oklch(0.76 0.16 290);
24
+ --color-accent-400: oklch(0.66 0.20 290);
25
+ --color-accent-500: oklch(0.55 0.18 290);
26
+ --color-accent-600: oklch(0.47 0.16 290);
27
+ --color-accent-700: oklch(0.40 0.14 290);
28
+ --color-accent-800: oklch(0.33 0.11 290);
29
+ --color-accent-900: oklch(0.27 0.08 290);
30
+ --color-accent-950: oklch(0.20 0.05 290);
31
+
32
+ /* Warn - Sour Lemon Yellow-Green (hue ~85) */
33
+ --color-warn-50: oklch(0.98 0.03 85);
34
+ --color-warn-100: oklch(0.94 0.06 85);
35
+ --color-warn-200: oklch(0.88 0.12 85);
36
+ --color-warn-300: oklch(0.80 0.18 85);
37
+ --color-warn-400: oklch(0.72 0.20 85);
38
+ --color-warn-500: oklch(0.65 0.18 85);
39
+ --color-warn-600: oklch(0.55 0.16 85);
40
+ --color-warn-700: oklch(0.45 0.14 85);
41
+ --color-warn-800: oklch(0.36 0.10 85);
42
+ --color-warn-900: oklch(0.28 0.06 85);
43
+ --color-warn-950: oklch(0.20 0.03 85);
44
+
45
+ /* Surface - Warm pink-tinted neutrals (hue ~350 for faint blush) */
46
+ --color-surface-50: oklch(0.98 0.006 350);
47
+ --color-surface-100: oklch(0.96 0.010 350);
48
+ --color-surface-200: oklch(0.92 0.012 350);
49
+ --color-surface-300: oklch(0.86 0.014 350);
50
+ --color-surface-400: oklch(0.70 0.012 350);
51
+ --color-surface-500: oklch(0.54 0.010 350);
52
+ --color-surface-600: oklch(0.44 0.010 350);
53
+ --color-surface-700: oklch(0.36 0.008 350);
54
+ --color-surface-800: oklch(0.26 0.006 350);
55
+ --color-surface-900: oklch(0.20 0.005 350);
56
+ --color-surface-950: oklch(0.14 0.004 350);
57
+
58
+ /* Success - Mint green (hue 160) to separate from lemon warn */
59
+ --color-success-500: oklch(0.48 0.17 160);
60
+ --color-success-600: oklch(0.42 0.15 160);
61
+
62
+ /* ═══ Semantic overrides ═══ */
63
+ --color-background: var(--color-surface-50);
64
+ --color-foreground: var(--color-surface-900);
65
+
66
+ --color-primary: var(--color-primary-500);
67
+ --color-primary-foreground: var(--color-primary-50);
68
+ --color-primary-hover: var(--color-primary-600);
69
+ --color-primary-subtle: var(--color-primary-100);
70
+ --color-primary-subtle-foreground: var(--color-primary-900);
71
+
72
+ --color-accent: var(--color-accent-500);
73
+ --color-accent-foreground: oklch(1 0 0);
74
+ --color-accent-hover: var(--color-accent-600);
75
+ --color-accent-subtle: var(--color-accent-100);
76
+ --color-accent-subtle-foreground: var(--color-accent-800);
77
+
78
+ --color-warn: var(--color-warn-500);
79
+ --color-warn-foreground: oklch(1 0 0);
80
+ --color-warn-hover: var(--color-warn-600);
81
+ --color-warn-subtle: var(--color-warn-100);
82
+ --color-warn-subtle-foreground: var(--color-warn-800);
83
+
84
+ --color-success: var(--color-success-500);
85
+ --color-success-foreground: oklch(1 0 0);
86
+ --color-success-hover: var(--color-success-600);
87
+ --color-success-subtle: oklch(0.94 0.05 160);
88
+ --color-success-subtle-foreground: oklch(0.32 0.12 160);
89
+
90
+ --color-muted: var(--color-surface-200);
91
+ --color-muted-foreground: var(--color-surface-700);
92
+ --color-muted-hover: var(--color-surface-300);
93
+
94
+ --color-border: var(--color-surface-300);
95
+ --color-border-subtle: var(--color-surface-200);
96
+ --color-ring: var(--color-primary-500);
97
+
98
+ --color-backdrop: oklch(0 0 0 / 0.8);
99
+ --color-popover: var(--color-surface-50);
100
+ --color-popover-foreground: var(--color-surface-900);
101
+
102
+ --color-card: var(--color-surface-50);
103
+ --color-card-foreground: var(--color-surface-900);
104
+
105
+ --color-tooltip: var(--color-surface-900);
106
+ --color-tooltip-foreground: var(--color-surface-50);
107
+
108
+ --color-input-border: var(--color-surface-300);
109
+ --color-input-background: var(--color-surface-50);
110
+ --color-input-foreground: var(--color-surface-900);
111
+ --color-input-placeholder: var(--color-surface-500);
112
+ --color-input-disabled: var(--color-surface-100);
113
+
114
+ --color-placeholder: var(--color-surface-500);
115
+ --color-disabled: var(--color-surface-300);
116
+ --color-disabled-foreground: var(--color-surface-500);
117
+
118
+ /* ─── Candy success overrides (hue 160) ─── */
119
+ --color-success-border-subtle: oklch(0.86 0.10 160);
120
+ --color-success-subtle-hover: oklch(0.86 0.08 160);
121
+ }
@@ -0,0 +1,159 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────────
2
+ DARK THEME
3
+ ───────────────────────────────────────────────────────────────────────────── */
4
+
5
+ [data-theme='dark'] {
6
+ /* Primary - Violet/Purple with higher lightness for dark backgrounds */
7
+ --color-primary-50: oklch(0.20 0.08 264);
8
+ --color-primary-100: oklch(0.27 0.11 264);
9
+ --color-primary-200: oklch(0.33 0.15 264);
10
+ --color-primary-300: oklch(0.40 0.19 264);
11
+ --color-primary-400: oklch(0.55 0.24 264);
12
+ --color-primary-500: oklch(0.65 0.22 264);
13
+ --color-primary-600: oklch(0.72 0.18 264);
14
+ --color-primary-700: oklch(0.80 0.14 264);
15
+ --color-primary-800: oklch(0.88 0.08 264);
16
+ --color-primary-900: oklch(0.94 0.04 264);
17
+ --color-primary-950: oklch(0.97 0.014 264);
18
+
19
+ /* Accent - Magenta adjusted for dark mode */
20
+ --color-accent-50: oklch(0.22 0.08 333);
21
+ --color-accent-100: oklch(0.30 0.12 333);
22
+ --color-accent-200: oklch(0.37 0.16 333);
23
+ --color-accent-300: oklch(0.45 0.20 333);
24
+ --color-accent-400: oklch(0.55 0.24 333);
25
+ --color-accent-500: oklch(0.65 0.25 333);
26
+ --color-accent-600: oklch(0.72 0.20 333);
27
+ --color-accent-700: oklch(0.80 0.14 333);
28
+ --color-accent-800: oklch(0.88 0.08 333);
29
+ --color-accent-900: oklch(0.94 0.04 333);
30
+ --color-accent-950: oklch(0.97 0.014 333);
31
+
32
+ /* Warn - Orange adjusted for dark mode */
33
+ --color-warn-50: oklch(0.21 0.06 25);
34
+ --color-warn-100: oklch(0.28 0.09 25);
35
+ --color-warn-200: oklch(0.35 0.13 25);
36
+ --color-warn-300: oklch(0.45 0.17 25);
37
+ --color-warn-400: oklch(0.55 0.21 25);
38
+ --color-warn-500: oklch(0.65 0.22 25);
39
+ --color-warn-600: oklch(0.72 0.18 25);
40
+ --color-warn-700: oklch(0.80 0.12 25);
41
+ --color-warn-800: oklch(0.88 0.06 25);
42
+ --color-warn-900: oklch(0.94 0.03 25);
43
+ --color-warn-950: oklch(0.97 0.014 25);
44
+
45
+ /* Surface - Inverted grayscale for dark mode */
46
+ --color-surface-50: oklch(0.14 0.006 280);
47
+ --color-surface-100: oklch(0.18 0.008 280);
48
+ --color-surface-200: oklch(0.22 0.010 280);
49
+ --color-surface-300: oklch(0.28 0.012 280);
50
+ --color-surface-400: oklch(0.40 0.012 280);
51
+ --color-surface-500: oklch(0.50 0.012 280);
52
+ --color-surface-600: oklch(0.62 0.010 280);
53
+ --color-surface-700: oklch(0.75 0.008 280);
54
+ --color-surface-800: oklch(0.88 0.006 280);
55
+ --color-surface-900: oklch(0.94 0.004 280);
56
+ --color-surface-950: oklch(0.98 0.002 280);
57
+
58
+ /* Shadows adjusted for dark mode */
59
+ --shadow-xs: 0 1px 2px oklch(0 0 0 / 0.3);
60
+ --shadow-sm: 0 1px 3px oklch(0 0 0 / 0.4), 0 1px 2px oklch(0 0 0 / 0.3);
61
+ --shadow-md: 0 4px 6px oklch(0 0 0 / 0.4), 0 2px 4px oklch(0 0 0 / 0.3);
62
+ --shadow-lg: 0 10px 15px oklch(0 0 0 / 0.4), 0 4px 6px oklch(0 0 0 / 0.3);
63
+ --shadow-xl: 0 20px 25px oklch(0 0 0 / 0.4), 0 8px 10px oklch(0 0 0 / 0.3);
64
+
65
+ /* ═══ Semantic overrides ═══ */
66
+ --color-background: var(--color-surface-50);
67
+ --color-foreground: var(--color-surface-900);
68
+
69
+ --color-primary: var(--color-primary-500);
70
+ --color-primary-foreground: var(--color-primary-50);
71
+ --color-primary-hover: var(--color-primary-400);
72
+ --color-primary-subtle: var(--color-primary-100);
73
+ --color-primary-subtle-foreground: var(--color-primary-900);
74
+
75
+ --color-accent: var(--color-accent-500);
76
+ --color-accent-foreground: oklch(1 0 0);
77
+ --color-accent-hover: var(--color-accent-400);
78
+ --color-accent-subtle: var(--color-accent-100);
79
+ --color-accent-subtle-foreground: var(--color-accent-800);
80
+
81
+ --color-warn: var(--color-warn-500);
82
+ --color-warn-foreground: oklch(1 0 0);
83
+ --color-warn-hover: var(--color-warn-400);
84
+ --color-warn-subtle: var(--color-warn-100);
85
+ --color-warn-subtle-foreground: var(--color-warn-800);
86
+
87
+ --color-success: var(--color-success-500);
88
+ --color-success-foreground: oklch(1 0 0);
89
+ --color-success-hover: var(--color-success-600);
90
+ --color-success-subtle: oklch(0.22 0.06 145);
91
+ --color-success-subtle-foreground: oklch(0.85 0.10 145);
92
+
93
+ --color-muted: var(--color-surface-200);
94
+ --color-muted-foreground: var(--color-surface-700);
95
+ --color-muted-hover: var(--color-surface-300);
96
+
97
+ --color-border: var(--color-surface-300);
98
+ --color-border-subtle: var(--color-surface-200);
99
+ --color-ring: var(--color-primary-500);
100
+
101
+ --color-backdrop: oklch(0 0 0 / 0.85);
102
+ --color-popover: var(--color-surface-100);
103
+ --color-popover-foreground: var(--color-surface-900);
104
+
105
+ --color-card: var(--color-surface-100);
106
+ --color-card-foreground: var(--color-surface-900);
107
+
108
+ --color-tooltip: var(--color-surface-900);
109
+ --color-tooltip-foreground: var(--color-surface-50);
110
+
111
+ --color-input-border: var(--color-surface-300);
112
+ --color-input-background: var(--color-surface-100);
113
+ --color-input-foreground: var(--color-surface-900);
114
+ --color-input-placeholder: var(--color-surface-500);
115
+ --color-input-disabled: var(--color-surface-200);
116
+
117
+ --color-placeholder: var(--color-surface-500);
118
+ --color-disabled: var(--color-surface-300);
119
+ --color-disabled-foreground: var(--color-surface-500);
120
+
121
+ /* ─── Colored Border Subtle ─── */
122
+ --color-primary-border-subtle: var(--color-primary-300);
123
+ --color-success-border-subtle: oklch(0.35 0.10 145);
124
+ --color-warn-border-subtle: var(--color-warn-300);
125
+
126
+ /* ─── Subtle Surface Hover ─── */
127
+ --color-primary-subtle-hover: var(--color-primary-200);
128
+ --color-success-subtle-hover: oklch(0.28 0.08 145);
129
+ --color-warn-subtle-hover: var(--color-warn-200);
130
+
131
+ /* ─── Muted Foreground in Colored Contexts ─── */
132
+ --color-primary-subtle-foreground-muted: var(--color-primary-700);
133
+ --color-success-subtle-foreground-muted: oklch(0.72 0.14 145);
134
+ --color-warn-subtle-foreground-muted: var(--color-warn-700);
135
+ --color-warn-foreground-muted: oklch(1 0 0 / 0.65);
136
+ --color-success-foreground-muted: oklch(1 0 0 / 0.65);
137
+
138
+ /* ─── Foreground Wash ─── */
139
+ --color-warn-foreground-wash: oklch(1 0 0 / 0.10);
140
+
141
+ /* ─── Progress Track ─── */
142
+ --color-success-foreground-track: oklch(1 0 0 / 0.30);
143
+ --color-warn-subtle-foreground-track: var(--color-warn-500);
144
+ --color-warn-foreground-track: oklch(1 0 0 / 0.30);
145
+ --color-primary-subtle-foreground-track: var(--color-primary-500);
146
+
147
+ /* ─── Table ─── */
148
+ --color-muted-stripe: var(--color-surface-100);
149
+ --color-overlay: oklch(0.14 0.006 280 / 0.60);
150
+ }
151
+
152
+ /* Dark-specific text color overrides */
153
+ [data-theme='dark'] .text-success {
154
+ color: var(--color-success-400);
155
+ }
156
+
157
+ [data-theme='dark'] .text-warn {
158
+ color: var(--color-warn-400);
159
+ }
@@ -0,0 +1,117 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────────
2
+ FOREST THEME
3
+ ───────────────────────────────────────────────────────────────────────────── */
4
+
5
+ [data-theme='forest'] {
6
+ /* Primary - Forest Green (hue ~145) */
7
+ --color-primary-50: oklch(0.97 0.02 145);
8
+ --color-primary-100: oklch(0.93 0.05 145);
9
+ --color-primary-200: oklch(0.86 0.10 145);
10
+ --color-primary-300: oklch(0.76 0.16 145);
11
+ --color-primary-400: oklch(0.66 0.20 145);
12
+ --color-primary-500: oklch(0.52 0.18 145);
13
+ --color-primary-600: oklch(0.45 0.16 145);
14
+ --color-primary-700: oklch(0.38 0.14 145);
15
+ --color-primary-800: oklch(0.32 0.11 145);
16
+ --color-primary-900: oklch(0.26 0.08 145);
17
+ --color-primary-950: oklch(0.18 0.05 145);
18
+
19
+ /* Accent - Amber/Gold for forest (hue ~85) */
20
+ --color-accent-50: oklch(0.98 0.02 85);
21
+ --color-accent-100: oklch(0.94 0.06 85);
22
+ --color-accent-200: oklch(0.88 0.12 85);
23
+ --color-accent-300: oklch(0.80 0.18 85);
24
+ --color-accent-400: oklch(0.72 0.20 85);
25
+ --color-accent-500: oklch(0.65 0.18 85);
26
+ --color-accent-600: oklch(0.55 0.16 85);
27
+ --color-accent-700: oklch(0.45 0.14 85);
28
+ --color-accent-800: oklch(0.36 0.10 85);
29
+ --color-accent-900: oklch(0.28 0.06 85);
30
+ --color-accent-950: oklch(0.20 0.03 85);
31
+
32
+ /* Warn - Earthy Red/Brown (hue ~35) */
33
+ --color-warn-50: oklch(0.97 0.02 35);
34
+ --color-warn-100: oklch(0.93 0.05 35);
35
+ --color-warn-200: oklch(0.86 0.10 35);
36
+ --color-warn-300: oklch(0.76 0.16 35);
37
+ --color-warn-400: oklch(0.66 0.20 35);
38
+ --color-warn-500: oklch(0.55 0.20 35);
39
+ --color-warn-600: oklch(0.48 0.18 35);
40
+ --color-warn-700: oklch(0.40 0.15 35);
41
+ --color-warn-800: oklch(0.33 0.11 35);
42
+ --color-warn-900: oklch(0.27 0.08 35);
43
+ --color-warn-950: oklch(0.20 0.05 35);
44
+
45
+ /* Surface - Warm earthy neutrals (hue ~90 for slight green-yellow tint) */
46
+ --color-surface-50: oklch(0.98 0.008 90);
47
+ --color-surface-100: oklch(0.96 0.012 90);
48
+ --color-surface-200: oklch(0.92 0.016 90);
49
+ --color-surface-300: oklch(0.86 0.018 90);
50
+ --color-surface-400: oklch(0.70 0.016 90);
51
+ --color-surface-500: oklch(0.54 0.014 90);
52
+ --color-surface-600: oklch(0.44 0.014 90);
53
+ --color-surface-700: oklch(0.36 0.012 90);
54
+ --color-surface-800: oklch(0.26 0.010 90);
55
+ --color-surface-900: oklch(0.20 0.008 90);
56
+ --color-surface-950: oklch(0.14 0.006 90);
57
+
58
+ /* Success - Same green family */
59
+ --color-success-500: oklch(0.48 0.16 145);
60
+ --color-success-600: oklch(0.42 0.14 145);
61
+
62
+ /* ═══ Semantic overrides ═══ */
63
+ --color-background: var(--color-surface-50);
64
+ --color-foreground: var(--color-surface-900);
65
+
66
+ --color-primary: var(--color-primary-500);
67
+ --color-primary-foreground: var(--color-primary-50);
68
+ --color-primary-hover: var(--color-primary-600);
69
+ --color-primary-subtle: var(--color-primary-100);
70
+ --color-primary-subtle-foreground: var(--color-primary-900);
71
+
72
+ --color-accent: var(--color-accent-500);
73
+ --color-accent-foreground: oklch(1 0 0);
74
+ --color-accent-hover: var(--color-accent-600);
75
+ --color-accent-subtle: var(--color-accent-100);
76
+ --color-accent-subtle-foreground: var(--color-accent-800);
77
+
78
+ --color-warn: var(--color-warn-500);
79
+ --color-warn-foreground: oklch(1 0 0);
80
+ --color-warn-hover: var(--color-warn-600);
81
+ --color-warn-subtle: var(--color-warn-100);
82
+ --color-warn-subtle-foreground: var(--color-warn-800);
83
+
84
+ --color-success: var(--color-success-500);
85
+ --color-success-foreground: oklch(1 0 0);
86
+ --color-success-hover: var(--color-success-600);
87
+ --color-success-subtle: oklch(0.94 0.05 145);
88
+ --color-success-subtle-foreground: oklch(0.32 0.12 145);
89
+
90
+ --color-muted: var(--color-surface-200);
91
+ --color-muted-foreground: var(--color-surface-700);
92
+ --color-muted-hover: var(--color-surface-300);
93
+
94
+ --color-border: var(--color-surface-300);
95
+ --color-border-subtle: var(--color-surface-200);
96
+ --color-ring: var(--color-primary-500);
97
+
98
+ --color-backdrop: oklch(0 0 0 / 0.8);
99
+ --color-popover: var(--color-surface-50);
100
+ --color-popover-foreground: var(--color-surface-900);
101
+
102
+ --color-card: var(--color-surface-50);
103
+ --color-card-foreground: var(--color-surface-900);
104
+
105
+ --color-tooltip: var(--color-surface-900);
106
+ --color-tooltip-foreground: var(--color-surface-50);
107
+
108
+ --color-input-border: var(--color-surface-300);
109
+ --color-input-background: var(--color-surface-50);
110
+ --color-input-foreground: var(--color-surface-900);
111
+ --color-input-placeholder: var(--color-surface-500);
112
+ --color-input-disabled: var(--color-surface-100);
113
+
114
+ --color-placeholder: var(--color-surface-500);
115
+ --color-disabled: var(--color-surface-300);
116
+ --color-disabled-foreground: var(--color-surface-500);
117
+ }
@@ -0,0 +1,117 @@
1
+ /* ─────────────────────────────────────────────────────────────────────────────
2
+ OCEAN THEME
3
+ ───────────────────────────────────────────────────────────────────────────── */
4
+
5
+ [data-theme='ocean'] {
6
+ /* Primary - Deep Ocean Blue (hue ~230) */
7
+ --color-primary-50: oklch(0.97 0.02 230);
8
+ --color-primary-100: oklch(0.93 0.05 230);
9
+ --color-primary-200: oklch(0.86 0.10 230);
10
+ --color-primary-300: oklch(0.76 0.16 230);
11
+ --color-primary-400: oklch(0.66 0.20 230);
12
+ --color-primary-500: oklch(0.52 0.20 230);
13
+ --color-primary-600: oklch(0.45 0.18 230);
14
+ --color-primary-700: oklch(0.38 0.15 230);
15
+ --color-primary-800: oklch(0.32 0.12 230);
16
+ --color-primary-900: oklch(0.26 0.08 230);
17
+ --color-primary-950: oklch(0.18 0.05 230);
18
+
19
+ /* Accent - Coastal Teal/Cyan (hue ~175) */
20
+ --color-accent-50: oklch(0.98 0.02 175);
21
+ --color-accent-100: oklch(0.94 0.05 175);
22
+ --color-accent-200: oklch(0.88 0.10 175);
23
+ --color-accent-300: oklch(0.80 0.16 175);
24
+ --color-accent-400: oklch(0.72 0.18 175);
25
+ --color-accent-500: oklch(0.62 0.16 175);
26
+ --color-accent-600: oklch(0.52 0.15 175);
27
+ --color-accent-700: oklch(0.44 0.13 175);
28
+ --color-accent-800: oklch(0.36 0.10 175);
29
+ --color-accent-900: oklch(0.28 0.06 175);
30
+ --color-accent-950: oklch(0.20 0.03 175);
31
+
32
+ /* Warn - Sandy Gold/Amber (hue ~60) */
33
+ --color-warn-50: oklch(0.97 0.02 60);
34
+ --color-warn-100: oklch(0.93 0.05 60);
35
+ --color-warn-200: oklch(0.86 0.10 60);
36
+ --color-warn-300: oklch(0.76 0.16 60);
37
+ --color-warn-400: oklch(0.66 0.20 60);
38
+ --color-warn-500: oklch(0.55 0.18 60);
39
+ --color-warn-600: oklch(0.48 0.16 60);
40
+ --color-warn-700: oklch(0.40 0.14 60);
41
+ --color-warn-800: oklch(0.33 0.10 60);
42
+ --color-warn-900: oklch(0.27 0.07 60);
43
+ --color-warn-950: oklch(0.20 0.04 60);
44
+
45
+ /* Surface - Cool blue-grey neutrals (hue ~220 for subtle blue tint) */
46
+ --color-surface-50: oklch(0.98 0.006 220);
47
+ --color-surface-100: oklch(0.96 0.010 220);
48
+ --color-surface-200: oklch(0.92 0.014 220);
49
+ --color-surface-300: oklch(0.86 0.016 220);
50
+ --color-surface-400: oklch(0.70 0.014 220);
51
+ --color-surface-500: oklch(0.54 0.012 220);
52
+ --color-surface-600: oklch(0.44 0.012 220);
53
+ --color-surface-700: oklch(0.36 0.010 220);
54
+ --color-surface-800: oklch(0.26 0.008 220);
55
+ --color-surface-900: oklch(0.20 0.006 220);
56
+ --color-surface-950: oklch(0.14 0.004 220);
57
+
58
+ /* Success - Default green (hue 145) works well with ocean palette */
59
+ --color-success-500: oklch(0.48 0.17 145);
60
+ --color-success-600: oklch(0.42 0.15 145);
61
+
62
+ /* ═══ Semantic overrides ═══ */
63
+ --color-background: var(--color-surface-50);
64
+ --color-foreground: var(--color-surface-900);
65
+
66
+ --color-primary: var(--color-primary-500);
67
+ --color-primary-foreground: var(--color-primary-50);
68
+ --color-primary-hover: var(--color-primary-600);
69
+ --color-primary-subtle: var(--color-primary-100);
70
+ --color-primary-subtle-foreground: var(--color-primary-900);
71
+
72
+ --color-accent: var(--color-accent-500);
73
+ --color-accent-foreground: oklch(1 0 0);
74
+ --color-accent-hover: var(--color-accent-600);
75
+ --color-accent-subtle: var(--color-accent-100);
76
+ --color-accent-subtle-foreground: var(--color-accent-800);
77
+
78
+ --color-warn: var(--color-warn-500);
79
+ --color-warn-foreground: oklch(1 0 0);
80
+ --color-warn-hover: var(--color-warn-600);
81
+ --color-warn-subtle: var(--color-warn-100);
82
+ --color-warn-subtle-foreground: var(--color-warn-800);
83
+
84
+ --color-success: var(--color-success-500);
85
+ --color-success-foreground: oklch(1 0 0);
86
+ --color-success-hover: var(--color-success-600);
87
+ --color-success-subtle: oklch(0.94 0.05 145);
88
+ --color-success-subtle-foreground: oklch(0.32 0.12 145);
89
+
90
+ --color-muted: var(--color-surface-200);
91
+ --color-muted-foreground: var(--color-surface-700);
92
+ --color-muted-hover: var(--color-surface-300);
93
+
94
+ --color-border: var(--color-surface-300);
95
+ --color-border-subtle: var(--color-surface-200);
96
+ --color-ring: var(--color-primary-500);
97
+
98
+ --color-backdrop: oklch(0 0 0 / 0.8);
99
+ --color-popover: var(--color-surface-50);
100
+ --color-popover-foreground: var(--color-surface-900);
101
+
102
+ --color-card: var(--color-surface-50);
103
+ --color-card-foreground: var(--color-surface-900);
104
+
105
+ --color-tooltip: var(--color-surface-900);
106
+ --color-tooltip-foreground: var(--color-surface-50);
107
+
108
+ --color-input-border: var(--color-surface-300);
109
+ --color-input-background: var(--color-surface-50);
110
+ --color-input-foreground: var(--color-surface-900);
111
+ --color-input-placeholder: var(--color-surface-500);
112
+ --color-input-disabled: var(--color-surface-100);
113
+
114
+ --color-placeholder: var(--color-surface-500);
115
+ --color-disabled: var(--color-surface-300);
116
+ --color-disabled-foreground: var(--color-surface-500);
117
+ }
@@ -0,0 +1,7 @@
1
+ @import './tokens.css';
2
+ @import './dark.css';
3
+ @import './forest.css';
4
+ @import './ocean.css';
5
+ @import './candy.css';
6
+ @import './animations.css';
7
+ @import './utilities.css';