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.
- package/README.md +137 -33
- package/fesm2022/ngx-com-components-alert.mjs +21 -11
- package/fesm2022/ngx-com-components-alert.mjs.map +1 -1
- package/fesm2022/ngx-com-components-avatar.mjs +9 -7
- package/fesm2022/ngx-com-components-avatar.mjs.map +1 -1
- package/fesm2022/ngx-com-components-button.mjs +1 -1
- package/fesm2022/ngx-com-components-button.mjs.map +1 -1
- package/fesm2022/ngx-com-components-calendar.mjs +27 -3112
- package/fesm2022/ngx-com-components-calendar.mjs.map +1 -1
- package/fesm2022/ngx-com-components-card.mjs +8 -8
- package/fesm2022/ngx-com-components-card.mjs.map +1 -1
- package/fesm2022/ngx-com-components-carousel.mjs +16 -4
- package/fesm2022/ngx-com-components-carousel.mjs.map +1 -1
- package/fesm2022/ngx-com-components-checkbox.mjs +1 -1
- package/fesm2022/ngx-com-components-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-com-components-code-block.mjs +9 -9
- package/fesm2022/ngx-com-components-code-block.mjs.map +1 -1
- package/fesm2022/ngx-com-components-collapsible.mjs +15 -13
- package/fesm2022/ngx-com-components-collapsible.mjs.map +1 -1
- package/fesm2022/ngx-com-components-confirm.mjs +4 -4
- package/fesm2022/ngx-com-components-confirm.mjs.map +1 -1
- package/fesm2022/ngx-com-components-datepicker.mjs +2334 -0
- package/fesm2022/ngx-com-components-datepicker.mjs.map +1 -0
- package/fesm2022/ngx-com-components-dialog.mjs +47 -45
- package/fesm2022/ngx-com-components-dialog.mjs.map +1 -1
- package/fesm2022/ngx-com-components-dropdown.mjs +446 -340
- package/fesm2022/ngx-com-components-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-com-components-empty-state.mjs +5 -3
- package/fesm2022/ngx-com-components-empty-state.mjs.map +1 -1
- package/fesm2022/ngx-com-components-form-field.mjs +11 -6
- package/fesm2022/ngx-com-components-form-field.mjs.map +1 -1
- package/fesm2022/ngx-com-components-icon-lucide.mjs +41 -0
- package/fesm2022/ngx-com-components-icon-lucide.mjs.map +1 -0
- package/fesm2022/ngx-com-components-icon.mjs +89 -61
- package/fesm2022/ngx-com-components-icon.mjs.map +1 -1
- package/fesm2022/ngx-com-components-item.mjs +14 -4
- package/fesm2022/ngx-com-components-item.mjs.map +1 -1
- package/fesm2022/ngx-com-components-menu.mjs +61 -69
- package/fesm2022/ngx-com-components-menu.mjs.map +1 -1
- package/fesm2022/ngx-com-components-native-control.mjs +170 -0
- package/fesm2022/ngx-com-components-native-control.mjs.map +1 -0
- package/fesm2022/ngx-com-components-paginator.mjs +11 -3
- package/fesm2022/ngx-com-components-paginator.mjs.map +1 -1
- package/fesm2022/ngx-com-components-popover.mjs +58 -33
- package/fesm2022/ngx-com-components-popover.mjs.map +1 -1
- package/fesm2022/ngx-com-components-radio.mjs +4 -4
- package/fesm2022/ngx-com-components-radio.mjs.map +1 -1
- package/fesm2022/ngx-com-components-segmented-control.mjs +6 -4
- package/fesm2022/ngx-com-components-segmented-control.mjs.map +1 -1
- package/fesm2022/ngx-com-components-sort.mjs +63 -57
- package/fesm2022/ngx-com-components-sort.mjs.map +1 -1
- package/fesm2022/ngx-com-components-spinner.mjs +6 -6
- package/fesm2022/ngx-com-components-spinner.mjs.map +1 -1
- package/fesm2022/ngx-com-components-switch.mjs +18 -9
- package/fesm2022/ngx-com-components-switch.mjs.map +1 -1
- package/fesm2022/ngx-com-components-table.mjs +23 -9
- package/fesm2022/ngx-com-components-table.mjs.map +1 -1
- package/fesm2022/ngx-com-components-tabs.mjs +81 -58
- package/fesm2022/ngx-com-components-tabs.mjs.map +1 -1
- package/fesm2022/ngx-com-components-timepicker.mjs +1048 -0
- package/fesm2022/ngx-com-components-timepicker.mjs.map +1 -0
- package/fesm2022/ngx-com-components-toast.mjs +18 -14
- package/fesm2022/ngx-com-components-toast.mjs.map +1 -1
- package/fesm2022/ngx-com-components-tooltip.mjs +5 -5
- package/fesm2022/ngx-com-components-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-com-components.mjs +0 -13
- package/fesm2022/ngx-com-components.mjs.map +1 -1
- package/fesm2022/ngx-com-tokens.mjs +0 -8
- package/fesm2022/ngx-com-tokens.mjs.map +1 -1
- package/fesm2022/ngx-com-utils.mjs +13 -1
- package/fesm2022/ngx-com-utils.mjs.map +1 -1
- package/fesm2022/ngx-com.mjs +1 -1
- package/fesm2022/ngx-com.mjs.map +1 -1
- package/package.json +51 -8
- package/styles/animations.css +38 -0
- package/styles/candy.css +121 -0
- package/styles/dark.css +159 -0
- package/styles/forest.css +117 -0
- package/styles/ocean.css +117 -0
- package/styles/themes.css +7 -0
- package/styles/tokens.css +277 -0
- package/styles/utilities.css +16 -0
- package/types/ngx-com-components-alert.d.ts +14 -4
- package/types/ngx-com-components-avatar.d.ts +2 -0
- package/types/ngx-com-components-calendar.d.ts +3 -747
- package/types/ngx-com-components-card.d.ts +2 -2
- package/types/ngx-com-components-carousel.d.ts +11 -1
- package/types/ngx-com-components-code-block.d.ts +4 -4
- package/types/ngx-com-components-collapsible.d.ts +10 -2
- package/types/ngx-com-components-confirm.d.ts +2 -2
- package/types/ngx-com-components-datepicker.d.ts +623 -0
- package/types/ngx-com-components-dialog.d.ts +5 -2
- package/types/ngx-com-components-dropdown.d.ts +22 -4
- package/types/ngx-com-components-empty-state.d.ts +2 -0
- package/types/ngx-com-components-form-field.d.ts +4 -1
- package/types/ngx-com-components-icon-lucide.d.ts +32 -0
- package/types/ngx-com-components-icon.d.ts +49 -35
- package/types/ngx-com-components-item.d.ts +12 -2
- package/types/ngx-com-components-menu.d.ts +38 -38
- package/types/ngx-com-components-native-control.d.ts +99 -0
- package/types/ngx-com-components-paginator.d.ts +2 -0
- package/types/ngx-com-components-popover.d.ts +19 -12
- package/types/ngx-com-components-segmented-control.d.ts +3 -1
- package/types/ngx-com-components-sort.d.ts +13 -10
- package/types/ngx-com-components-switch.d.ts +7 -2
- package/types/ngx-com-components-table.d.ts +16 -2
- package/types/ngx-com-components-tabs.d.ts +46 -34
- package/types/ngx-com-components-timepicker.d.ts +273 -0
- package/types/ngx-com-components-toast.d.ts +4 -2
- package/types/ngx-com-components-tooltip.d.ts +1 -1
- package/types/ngx-com-components.d.ts +6 -7
- package/types/ngx-com-tokens.d.ts +5 -3
- package/types/ngx-com-utils.d.ts +11 -1
- package/types/ngx-com.d.ts +1 -1
package/styles/candy.css
ADDED
|
@@ -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
|
+
}
|
package/styles/dark.css
ADDED
|
@@ -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
|
+
}
|
package/styles/ocean.css
ADDED
|
@@ -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
|
+
}
|