@almadar/ui 5.122.14 → 5.124.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 (63) hide show
  1. package/dist/{TraitProvider-YkK6tXDw.d.cts → TraitProvider-Ch79cUcb.d.cts} +6 -1
  2. package/dist/{TraitProvider-YkK6tXDw.d.ts → TraitProvider-Ch79cUcb.d.ts} +6 -1
  3. package/dist/{UserContext-bziZwgFL.d.cts → UserContext-BKckAUv7.d.cts} +5 -5
  4. package/dist/{UserContext-bziZwgFL.d.ts → UserContext-BKckAUv7.d.ts} +5 -5
  5. package/dist/avl/index.cjs +354 -234
  6. package/dist/avl/index.js +356 -236
  7. package/dist/components/index.cjs +273 -198
  8. package/dist/components/index.d.cts +18 -12
  9. package/dist/components/index.d.ts +18 -12
  10. package/dist/components/index.js +273 -198
  11. package/dist/context/index.cjs +34 -66
  12. package/dist/context/index.d.cts +1 -1
  13. package/dist/context/index.d.ts +1 -1
  14. package/dist/context/index.js +34 -66
  15. package/dist/hooks/index.cjs +8 -0
  16. package/dist/hooks/index.js +8 -0
  17. package/dist/lib/drawable/three/index.cjs +6 -0
  18. package/dist/lib/drawable/three/index.js +6 -0
  19. package/dist/marketing/index.cjs +7 -0
  20. package/dist/marketing/index.js +7 -0
  21. package/dist/providers/index.cjs +343 -217
  22. package/dist/providers/index.d.cts +6 -6
  23. package/dist/providers/index.d.ts +6 -6
  24. package/dist/providers/index.js +343 -217
  25. package/dist/runtime/index.cjs +347 -227
  26. package/dist/runtime/index.d.cts +4 -2
  27. package/dist/runtime/index.d.ts +4 -2
  28. package/dist/runtime/index.js +349 -229
  29. package/package.json +8 -7
  30. package/themes/_contract.md +2 -0
  31. package/themes/almadar-website.css +3 -3
  32. package/themes/almadar.css +4 -4
  33. package/themes/bloomberg-dense.css +2 -2
  34. package/themes/clay.css +417 -0
  35. package/themes/corporate.css +411 -0
  36. package/themes/game-adventure.css +3 -3
  37. package/themes/game-rpg.css +2 -2
  38. package/themes/game-sci-fi.css +1 -1
  39. package/themes/game-ui-pack.css +2 -2
  40. package/themes/gazette.css +2 -2
  41. package/themes/glass.css +428 -0
  42. package/themes/index.css +9 -13
  43. package/themes/kiosk.css +5 -5
  44. package/themes/linear-clean.css +1 -1
  45. package/themes/minimalist.css +2 -2
  46. package/themes/neon.css +3 -3
  47. package/themes/notion-editorial.css +1 -1
  48. package/themes/prism.css +3 -3
  49. package/themes/retro.css +410 -0
  50. package/themes/terminal.css +1 -1
  51. package/themes/trait-wars.css +8 -8
  52. package/themes/wireframe.css +2 -2
  53. package/themes/arctic.css +0 -235
  54. package/themes/copper.css +0 -235
  55. package/themes/ember.css +0 -238
  56. package/themes/forest.css +0 -238
  57. package/themes/lavender.css +0 -233
  58. package/themes/midnight.css +0 -234
  59. package/themes/ocean.css +0 -238
  60. package/themes/rose.css +0 -233
  61. package/themes/sand.css +0 -234
  62. package/themes/slate.css +0 -233
  63. package/themes/sunset.css +0 -238
package/themes/forest.css DELETED
@@ -1,238 +0,0 @@
1
- /**
2
- * Forest Theme - "Woodland Serenity"
3
- *
4
- * Inspired by the calm of a sunlit forest. Features warm organic shadows
5
- * with brown tints, natural green tones from deep emerald to soft sage,
6
- * and gentle organic curves that evoke leaves and bark. Natural-paced
7
- * transitions create a grounded, earthy, tranquil experience.
8
- */
9
-
10
- /* ==========================================================================
11
- * LIGHT MODE
12
- * ========================================================================== */
13
- [data-theme="forest-light"] {
14
- /* Shadows - Warm organic, brown-tinted */
15
- --shadow-main:
16
- 0 3px 10px rgba(45, 106, 79, 0.1), 0 1px 3px rgba(62, 39, 15, 0.06);
17
- --shadow-sm: 0 2px 4px rgba(62, 39, 15, 0.07);
18
- --shadow-lg:
19
- 0 8px 24px rgba(45, 106, 79, 0.12), 0 4px 8px rgba(62, 39, 15, 0.06);
20
- --shadow-inner: inset 0 1px 2px rgba(62, 39, 15, 0.06);
21
- --shadow-none: none;
22
- --shadow-hover:
23
- 0 10px 32px rgba(45, 106, 79, 0.16), 0 4px 10px rgba(62, 39, 15, 0.08);
24
- --shadow-active: 0 2px 6px rgba(45, 106, 79, 0.1);
25
-
26
- /* Border radius - Organic curves */
27
- --radius-none: 0px;
28
- --radius-sm: 6px;
29
- --radius-md: 10px;
30
- --radius-lg: 14px;
31
- --radius-xl: 16px;
32
- --radius-full: 9999px;
33
-
34
- /* Border width */
35
- --border-width: 1px;
36
- --border-width-thin: 1px;
37
- --border-width-thick: 2px;
38
-
39
- /* Colors - Forest green on warm light background */
40
- --color-primary: #2d6a4f;
41
- --color-primary-hover: #1b4332;
42
- --color-primary-foreground: #ffffff;
43
-
44
- --color-secondary: #f0f5f1;
45
- --color-secondary-hover: #dfe8e0;
46
- --color-secondary-foreground: #1b4332;
47
-
48
- --color-accent: #95d5b2;
49
- --color-accent-foreground: #1b4332;
50
-
51
- --color-muted: #f0f5f1;
52
- --color-muted-foreground: #5f7a68;
53
-
54
- --color-background: #f8faf8;
55
- --color-foreground: #1a2e22;
56
- --color-card: #ffffff;
57
- --color-card-foreground: #1a2e22;
58
- --color-surface: #f0f5f1;
59
- --color-border: rgba(45, 106, 79, 0.2);
60
- --color-input: rgba(45, 106, 79, 0.15);
61
- --color-ring: #2d6a4f;
62
-
63
- /* Semantic colors */
64
- --color-error: #dc2626;
65
- --color-error-foreground: #ffffff;
66
- --color-success: #16a34a;
67
- --color-success-foreground: #ffffff;
68
- --color-warning: #ca8a04;
69
- --color-warning-foreground: #000000;
70
- --color-info: #0ea5e9;
71
- --color-info-foreground: #ffffff;
72
-
73
- /* Icon styling */
74
- --icon-stroke-width: 1.75;
75
- --icon-color: #2d6a4f;
76
-
77
- /* Transitions - Natural pace */
78
- --transition-fast: 150ms;
79
- --transition-normal: 300ms;
80
- --transition-slow: 500ms;
81
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
82
-
83
- /* Hover/Active transforms */
84
- --hover-scale: 1.02;
85
- --hover-translate-y: -2px;
86
- --hover-translate-x: 0;
87
- --active-scale: 0.98;
88
- --active-translate-y: 0;
89
-
90
- /* Focus ring */
91
- --focus-ring-width: 2px;
92
- --focus-ring-offset: 2px;
93
- --focus-ring-color: #2d6a4f;
94
-
95
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
96
- /* Motion axis — duration palette (aliases existing --transition-* for backward compat) */
97
- --duration-instant: 0ms;
98
- --duration-fast: var(--transition-fast);
99
- --duration-normal: var(--transition-normal);
100
- --duration-slow: var(--transition-slow);
101
- --duration-dramatic: 600ms;
102
- /* Motion axis — easing palette (aliases existing --transition-timing for backward compat) */
103
- --easing-linear: linear;
104
- --easing-standard: var(--transition-timing);
105
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
106
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
107
- /* Iconography axis */
108
- --icon-family: lucide;
109
- --icon-default-size: 16px;
110
- /* Elevation axis — per-layer mapping */
111
- --elevation-card: var(--shadow-sm);
112
- --elevation-popover: var(--shadow-main);
113
- --elevation-dialog: var(--shadow-lg);
114
- --elevation-toast: var(--shadow-main);
115
- /* Geometry axis — radius rhythm with intent */
116
- --radius-container: var(--radius-md);
117
- --radius-interactive: var(--radius-md);
118
- --radius-pill: var(--radius-full);
119
- /* Geometry axis — border-width rhythm */
120
- --border-hairline: 1px;
121
- --border-standard: var(--border-width);
122
- --border-heavy: var(--border-width-thick);
123
- }
124
-
125
- /* ==========================================================================
126
- * DARK MODE
127
- * ========================================================================== */
128
- [data-theme="forest-dark"] {
129
- /* Shadows - Warm earthy glow from primary */
130
- --shadow-main:
131
- 0 3px 12px rgba(82, 183, 136, 0.1), 0 1px 3px rgba(0, 0, 0, 0.15);
132
- --shadow-sm: 0 2px 5px rgba(82, 183, 136, 0.07);
133
- --shadow-lg:
134
- 0 8px 28px rgba(82, 183, 136, 0.18), 0 4px 10px rgba(0, 0, 0, 0.12);
135
- --shadow-inner: inset 0 1px 3px rgba(0, 0, 0, 0.15);
136
- --shadow-none: none;
137
- --shadow-hover:
138
- 0 12px 36px rgba(82, 183, 136, 0.25), 0 4px 12px rgba(149, 213, 178, 0.12);
139
- --shadow-active: 0 2px 6px rgba(82, 183, 136, 0.15);
140
-
141
- /* Border radius - Organic curves */
142
- --radius-none: 0px;
143
- --radius-sm: 6px;
144
- --radius-md: 10px;
145
- --radius-lg: 14px;
146
- --radius-xl: 16px;
147
- --radius-full: 9999px;
148
-
149
- /* Border width */
150
- --border-width: 1px;
151
- --border-width-thin: 1px;
152
- --border-width-thick: 2px;
153
-
154
- /* Colors - Bright sage on deep forest */
155
- --color-primary: #52b788;
156
- --color-primary-hover: #74c69d;
157
- --color-primary-foreground: #081c11;
158
-
159
- --color-secondary: #142a1c;
160
- --color-secondary-hover: #1e3a28;
161
- --color-secondary-foreground: #d4e8db;
162
-
163
- --color-accent: #95d5b2;
164
- --color-accent-foreground: #081c11;
165
-
166
- --color-muted: #142a1c;
167
- --color-muted-foreground: #88ad96;
168
-
169
- --color-background: #0c1a12;
170
- --color-foreground: #e6f0ea;
171
- --color-card: #12251a;
172
- --color-card-foreground: #e6f0ea;
173
- --color-surface: #142a1c;
174
- --color-border: rgba(82, 183, 136, 0.2);
175
- --color-input: rgba(82, 183, 136, 0.22);
176
- --color-ring: #52b788;
177
-
178
- /* Semantic colors - Brighter for dark mode */
179
- --color-error: #f87171;
180
- --color-error-foreground: #000000;
181
- --color-success: #4ade80;
182
- --color-success-foreground: #000000;
183
- --color-warning: #fbbf24;
184
- --color-warning-foreground: #000000;
185
- --color-info: #38bdf8;
186
- --color-info-foreground: #000000;
187
-
188
- /* Icon styling */
189
- --icon-stroke-width: 1.75;
190
- --icon-color: #52b788;
191
-
192
- /* Transitions - Natural pace */
193
- --transition-fast: 150ms;
194
- --transition-normal: 300ms;
195
- --transition-slow: 500ms;
196
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
197
-
198
- /* Hover/Active transforms */
199
- --hover-scale: 1.02;
200
- --hover-translate-y: -2px;
201
- --hover-translate-x: 0;
202
- --active-scale: 0.98;
203
- --active-translate-y: 0;
204
-
205
- /* Focus ring */
206
- --focus-ring-width: 2px;
207
- --focus-ring-offset: 2px;
208
- --focus-ring-color: #52b788;
209
-
210
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
211
- /* Motion axis — duration palette (aliases existing --transition-* for backward compat) */
212
- --duration-instant: 0ms;
213
- --duration-fast: var(--transition-fast);
214
- --duration-normal: var(--transition-normal);
215
- --duration-slow: var(--transition-slow);
216
- --duration-dramatic: 600ms;
217
- /* Motion axis — easing palette (aliases existing --transition-timing for backward compat) */
218
- --easing-linear: linear;
219
- --easing-standard: var(--transition-timing);
220
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
221
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
222
- /* Iconography axis */
223
- --icon-family: lucide;
224
- --icon-default-size: 16px;
225
- /* Elevation axis — per-layer mapping */
226
- --elevation-card: var(--shadow-sm);
227
- --elevation-popover: var(--shadow-main);
228
- --elevation-dialog: var(--shadow-lg);
229
- --elevation-toast: var(--shadow-main);
230
- /* Geometry axis — radius rhythm with intent */
231
- --radius-container: var(--radius-md);
232
- --radius-interactive: var(--radius-md);
233
- --radius-pill: var(--radius-full);
234
- /* Geometry axis — border-width rhythm */
235
- --border-hairline: 1px;
236
- --border-standard: var(--border-width);
237
- --border-heavy: var(--border-width-thick);
238
- }
@@ -1,233 +0,0 @@
1
- /**
2
- * Lavender Theme — "Creative Studio"
3
- *
4
- * Violet/purple palette with soft, creative, and playful aesthetics.
5
- * Pillowy rounded corners, bouncy transitions, and purple-tinted shadows
6
- * make this theme ideal for creative tools, design apps, and playful UIs.
7
- */
8
-
9
- /* ==========================================================================
10
- * LIGHT MODE
11
- * ========================================================================== */
12
- [data-theme="lavender-light"] {
13
- /* Shadows - Purple-tinted, soft */
14
- --shadow-main: 0 1px 3px rgba(124, 58, 237, 0.1), 0 1px 2px rgba(124, 58, 237, 0.06);
15
- --shadow-sm: 0 1px 2px rgba(124, 58, 237, 0.06);
16
- --shadow-lg:
17
- 0 10px 25px -5px rgba(124, 58, 237, 0.15), 0 8px 10px -6px rgba(124, 58, 237, 0.1);
18
- --shadow-inner: inset 0 1px 2px rgba(124, 58, 237, 0.08);
19
- --shadow-none: none;
20
- --shadow-hover: 0 10px 40px -10px rgba(124, 58, 237, 0.25);
21
- --shadow-active: 0 1px 2px rgba(124, 58, 237, 0.06);
22
-
23
- /* Border radius - Pillowy, very rounded */
24
- --radius-none: 0px;
25
- --radius-sm: 12px;
26
- --radius-md: 16px;
27
- --radius-lg: 24px;
28
- --radius-xl: 32px;
29
- --radius-full: 9999px;
30
-
31
- /* Border width */
32
- --border-width: 1px;
33
- --border-width-thin: 1px;
34
- --border-width-thick: 2px;
35
-
36
- /* Colors - Violet palette, soft and creative */
37
- --color-primary: #7c3aed;
38
- --color-primary-hover: #6d28d9;
39
- --color-primary-foreground: #ffffff;
40
-
41
- --color-secondary: #f5f3ff;
42
- --color-secondary-hover: #ede9fe;
43
- --color-secondary-foreground: #5b21b6;
44
-
45
- --color-accent: #a78bfa;
46
- --color-accent-foreground: #2e1065;
47
-
48
- --color-muted: #ede9fe;
49
- --color-muted-foreground: #6b7280;
50
-
51
- --color-background: #faf5ff;
52
- --color-foreground: #2e1065;
53
- --color-card: #ffffff;
54
- --color-card-foreground: #2e1065;
55
- --color-surface: #f3e8ff;
56
- --color-border: rgba(124, 58, 237, 0.2);
57
- --color-input: rgba(124, 58, 237, 0.15);
58
- --color-ring: #7c3aed;
59
-
60
- /* Semantic colors */
61
- --color-error: #dc2626;
62
- --color-error-foreground: #ffffff;
63
- --color-success: #16a34a;
64
- --color-success-foreground: #ffffff;
65
- --color-warning: #ca8a04;
66
- --color-warning-foreground: #000000;
67
- --color-info: #2563eb;
68
- --color-info-foreground: #ffffff;
69
-
70
- /* Icon styling - Violet tint */
71
- --icon-stroke-width: 1.5;
72
- --icon-color: #7c3aed;
73
-
74
- /* Transitions - Bouncy, playful */
75
- --transition-fast: 180ms;
76
- --transition-normal: 300ms;
77
- --transition-slow: 450ms;
78
- --transition-timing: cubic-bezier(0.34, 1.56, 0.64, 1);
79
-
80
- /* Hover/Active transforms - Playful lift */
81
- --hover-scale: 1.02;
82
- --hover-translate-y: -2px;
83
- --hover-translate-x: 0;
84
- --active-scale: 0.98;
85
- --active-translate-y: 0;
86
-
87
- /* Focus ring */
88
- --focus-ring-width: 2px;
89
- --focus-ring-offset: 2px;
90
- --focus-ring-color: #7c3aed;
91
-
92
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
93
- /* Motion axis — duration palette */
94
- --duration-instant: 0ms;
95
- --duration-fast: var(--transition-fast);
96
- --duration-normal: var(--transition-normal);
97
- --duration-slow: var(--transition-slow);
98
- --duration-dramatic: 600ms;
99
- /* Motion axis — easing palette */
100
- --easing-linear: linear;
101
- --easing-standard: var(--transition-timing);
102
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
103
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
104
- /* Iconography axis */
105
- --icon-family: lucide;
106
- --icon-default-size: 16px;
107
- /* Elevation axis — per-layer mapping */
108
- --elevation-card: var(--shadow-sm);
109
- --elevation-popover: var(--shadow-main);
110
- --elevation-dialog: var(--shadow-lg);
111
- --elevation-toast: var(--shadow-main);
112
- /* Geometry axis — radius rhythm with intent */
113
- --radius-container: var(--radius-md);
114
- --radius-interactive: var(--radius-md);
115
- --radius-pill: var(--radius-full);
116
- /* Geometry axis — border-width rhythm */
117
- --border-hairline: 1px;
118
- --border-standard: var(--border-width);
119
- --border-heavy: var(--border-width-thick);
120
- }
121
-
122
- /* ==========================================================================
123
- * DARK MODE
124
- * ========================================================================== */
125
- [data-theme="lavender-dark"] {
126
- /* Shadows - Deep purple-tinted */
127
- --shadow-main: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(124, 58, 237, 0.15);
128
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.25);
129
- --shadow-lg:
130
- 0 10px 25px -5px rgba(0, 0, 0, 0.4), 0 8px 10px -6px rgba(124, 58, 237, 0.2);
131
- --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.3);
132
- --shadow-none: none;
133
- --shadow-hover: 0 10px 40px -10px rgba(124, 58, 237, 0.35);
134
- --shadow-active: 0 1px 2px rgba(0, 0, 0, 0.25);
135
-
136
- /* Border radius - Pillowy, very rounded */
137
- --radius-none: 0px;
138
- --radius-sm: 12px;
139
- --radius-md: 16px;
140
- --radius-lg: 24px;
141
- --radius-xl: 32px;
142
- --radius-full: 9999px;
143
-
144
- /* Border width */
145
- --border-width: 1px;
146
- --border-width-thin: 1px;
147
- --border-width-thick: 2px;
148
-
149
- /* Colors - Deep purple dark mode */
150
- --color-primary: #7c3aed;
151
- --color-primary-hover: #6d28d9;
152
- --color-primary-foreground: #ffffff;
153
-
154
- --color-secondary: #1a0d30;
155
- --color-secondary-hover: #251445;
156
- --color-secondary-foreground: #e9d5ff;
157
-
158
- --color-accent: #a78bfa;
159
- --color-accent-foreground: #2e1065;
160
-
161
- --color-muted: #1a0d30;
162
- --color-muted-foreground: #c4b5fd;
163
-
164
- --color-background: #0f0720;
165
- --color-foreground: #f3e8ff;
166
- --color-card: #1a0d30;
167
- --color-card-foreground: #f3e8ff;
168
- --color-surface: #251445;
169
- --color-border: rgba(167, 139, 250, 0.2);
170
- --color-input: rgba(167, 139, 250, 0.15);
171
- --color-ring: #a78bfa;
172
-
173
- /* Semantic colors - Brighter for dark mode */
174
- --color-error: #f87171;
175
- --color-error-foreground: #000000;
176
- --color-success: #4ade80;
177
- --color-success-foreground: #000000;
178
- --color-warning: #fbbf24;
179
- --color-warning-foreground: #000000;
180
- --color-info: #60a5fa;
181
- --color-info-foreground: #000000;
182
-
183
- /* Icon styling - Lighter violet for dark */
184
- --icon-stroke-width: 1.5;
185
- --icon-color: #a78bfa;
186
-
187
- /* Transitions - Bouncy, playful */
188
- --transition-fast: 180ms;
189
- --transition-normal: 300ms;
190
- --transition-slow: 450ms;
191
- --transition-timing: cubic-bezier(0.34, 1.56, 0.64, 1);
192
-
193
- /* Hover/Active transforms - Playful lift */
194
- --hover-scale: 1.02;
195
- --hover-translate-y: -2px;
196
- --hover-translate-x: 0;
197
- --active-scale: 0.98;
198
- --active-translate-y: 0;
199
-
200
- /* Focus ring */
201
- --focus-ring-width: 2px;
202
- --focus-ring-offset: 2px;
203
- --focus-ring-color: #a78bfa;
204
-
205
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
206
- /* Motion axis — duration palette */
207
- --duration-instant: 0ms;
208
- --duration-fast: var(--transition-fast);
209
- --duration-normal: var(--transition-normal);
210
- --duration-slow: var(--transition-slow);
211
- --duration-dramatic: 600ms;
212
- /* Motion axis — easing palette */
213
- --easing-linear: linear;
214
- --easing-standard: var(--transition-timing);
215
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
216
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
217
- /* Iconography axis */
218
- --icon-family: lucide;
219
- --icon-default-size: 16px;
220
- /* Elevation axis — per-layer mapping */
221
- --elevation-card: var(--shadow-sm);
222
- --elevation-popover: var(--shadow-main);
223
- --elevation-dialog: var(--shadow-lg);
224
- --elevation-toast: var(--shadow-main);
225
- /* Geometry axis — radius rhythm with intent */
226
- --radius-container: var(--radius-md);
227
- --radius-interactive: var(--radius-md);
228
- --radius-pill: var(--radius-full);
229
- /* Geometry axis — border-width rhythm */
230
- --border-hairline: 1px;
231
- --border-standard: var(--border-width);
232
- --border-heavy: var(--border-width-thick);
233
- }
@@ -1,234 +0,0 @@
1
- /**
2
- * Midnight Theme — "Noir Elegance"
3
- *
4
- * Indigo/navy palette with sophisticated and luxurious aesthetics.
5
- * Refined corners, slow luxurious transitions, and deep indigo-tinted
6
- * shadows create an atmosphere of understated elegance, perfect for
7
- * dashboards, analytics, and professional enterprise UIs.
8
- */
9
-
10
- /* ==========================================================================
11
- * LIGHT MODE
12
- * ========================================================================== */
13
- [data-theme="midnight-light"] {
14
- /* Shadows - Indigo-tinted, deep */
15
- --shadow-main: 0 1px 3px rgba(99, 102, 241, 0.1), 0 1px 2px rgba(99, 102, 241, 0.06);
16
- --shadow-sm: 0 1px 2px rgba(99, 102, 241, 0.06);
17
- --shadow-lg:
18
- 0 10px 25px -5px rgba(99, 102, 241, 0.15), 0 8px 10px -6px rgba(99, 102, 241, 0.1);
19
- --shadow-inner: inset 0 1px 2px rgba(99, 102, 241, 0.08);
20
- --shadow-none: none;
21
- --shadow-hover: 0 10px 40px -10px rgba(99, 102, 241, 0.22);
22
- --shadow-active: 0 1px 2px rgba(99, 102, 241, 0.06);
23
-
24
- /* Border radius - Refined */
25
- --radius-none: 0px;
26
- --radius-sm: 6px;
27
- --radius-md: 10px;
28
- --radius-lg: 14px;
29
- --radius-xl: 18px;
30
- --radius-full: 9999px;
31
-
32
- /* Border width */
33
- --border-width: 1px;
34
- --border-width-thin: 1px;
35
- --border-width-thick: 2px;
36
-
37
- /* Colors - Indigo palette, sophisticated */
38
- --color-primary: #4f46e5;
39
- --color-primary-hover: #4338ca;
40
- --color-primary-foreground: #ffffff;
41
-
42
- --color-secondary: #eef2ff;
43
- --color-secondary-hover: #e0e7ff;
44
- --color-secondary-foreground: #3730a3;
45
-
46
- --color-accent: #818cf8;
47
- --color-accent-foreground: #1e1b4b;
48
-
49
- --color-muted: #e0e7ff;
50
- --color-muted-foreground: #6b7280;
51
-
52
- --color-background: #eef2ff;
53
- --color-foreground: #1e1b4b;
54
- --color-card: #ffffff;
55
- --color-card-foreground: #1e1b4b;
56
- --color-surface: #e0e7ff;
57
- --color-border: rgba(99, 102, 241, 0.2);
58
- --color-input: rgba(99, 102, 241, 0.15);
59
- --color-ring: #6366f1;
60
-
61
- /* Semantic colors */
62
- --color-error: #dc2626;
63
- --color-error-foreground: #ffffff;
64
- --color-success: #16a34a;
65
- --color-success-foreground: #ffffff;
66
- --color-warning: #ca8a04;
67
- --color-warning-foreground: #000000;
68
- --color-info: #2563eb;
69
- --color-info-foreground: #ffffff;
70
-
71
- /* Icon styling - Indigo tint */
72
- --icon-stroke-width: 1.5;
73
- --icon-color: #6366f1;
74
-
75
- /* Transitions - Slow, luxurious */
76
- --transition-fast: 200ms;
77
- --transition-normal: 400ms;
78
- --transition-slow: 600ms;
79
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
80
-
81
- /* Hover/Active transforms - Dignified, minimal */
82
- --hover-scale: 1.01;
83
- --hover-translate-y: -1px;
84
- --hover-translate-x: 0;
85
- --active-scale: 0.99;
86
- --active-translate-y: 0;
87
-
88
- /* Focus ring */
89
- --focus-ring-width: 2px;
90
- --focus-ring-offset: 2px;
91
- --focus-ring-color: #6366f1;
92
-
93
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
94
- /* Motion axis — duration palette */
95
- --duration-instant: 0ms;
96
- --duration-fast: var(--transition-fast);
97
- --duration-normal: var(--transition-normal);
98
- --duration-slow: var(--transition-slow);
99
- --duration-dramatic: 600ms;
100
- /* Motion axis — easing palette */
101
- --easing-linear: linear;
102
- --easing-standard: var(--transition-timing);
103
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
104
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
105
- /* Iconography axis */
106
- --icon-family: lucide;
107
- --icon-default-size: 16px;
108
- /* Elevation axis — per-layer mapping */
109
- --elevation-card: var(--shadow-sm);
110
- --elevation-popover: var(--shadow-main);
111
- --elevation-dialog: var(--shadow-lg);
112
- --elevation-toast: var(--shadow-main);
113
- /* Geometry axis — radius rhythm with intent */
114
- --radius-container: var(--radius-md);
115
- --radius-interactive: var(--radius-md);
116
- --radius-pill: var(--radius-full);
117
- /* Geometry axis — border-width rhythm */
118
- --border-hairline: 1px;
119
- --border-standard: var(--border-width);
120
- --border-heavy: var(--border-width-thick);
121
- }
122
-
123
- /* ==========================================================================
124
- * DARK MODE
125
- * ========================================================================== */
126
- [data-theme="midnight-dark"] {
127
- /* Shadows - Deep indigo-tinted */
128
- --shadow-main: 0 1px 3px rgba(0, 0, 0, 0.35), 0 1px 2px rgba(99, 102, 241, 0.1);
129
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
130
- --shadow-lg:
131
- 0 10px 25px -5px rgba(0, 0, 0, 0.45), 0 8px 10px -6px rgba(99, 102, 241, 0.15);
132
- --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.35);
133
- --shadow-none: none;
134
- --shadow-hover: 0 10px 40px -10px rgba(129, 140, 248, 0.3);
135
- --shadow-active: 0 1px 2px rgba(0, 0, 0, 0.3);
136
-
137
- /* Border radius - Refined */
138
- --radius-none: 0px;
139
- --radius-sm: 6px;
140
- --radius-md: 10px;
141
- --radius-lg: 14px;
142
- --radius-xl: 18px;
143
- --radius-full: 9999px;
144
-
145
- /* Border width */
146
- --border-width: 1px;
147
- --border-width-thin: 1px;
148
- --border-width-thick: 2px;
149
-
150
- /* Colors - Near-black indigo dark mode */
151
- --color-primary: #818cf8;
152
- --color-primary-hover: #a5b4fc;
153
- --color-primary-foreground: #1e1b4b;
154
-
155
- --color-secondary: #12122a;
156
- --color-secondary-hover: #1e1e3d;
157
- --color-secondary-foreground: #c7d2fe;
158
-
159
- --color-accent: #818cf8;
160
- --color-accent-foreground: #1e1b4b;
161
-
162
- --color-muted: #1e1e3d;
163
- --color-muted-foreground: #a5b4fc;
164
-
165
- --color-background: #0a0a1a;
166
- --color-foreground: #e0e7ff;
167
- --color-card: #12122a;
168
- --color-card-foreground: #e0e7ff;
169
- --color-surface: #1e1e3d;
170
- --color-border: rgba(129, 140, 248, 0.2);
171
- --color-input: rgba(129, 140, 248, 0.15);
172
- --color-ring: #818cf8;
173
-
174
- /* Semantic colors - Brighter for dark mode */
175
- --color-error: #f87171;
176
- --color-error-foreground: #000000;
177
- --color-success: #4ade80;
178
- --color-success-foreground: #000000;
179
- --color-warning: #fbbf24;
180
- --color-warning-foreground: #000000;
181
- --color-info: #60a5fa;
182
- --color-info-foreground: #000000;
183
-
184
- /* Icon styling - Lighter indigo for dark */
185
- --icon-stroke-width: 1.5;
186
- --icon-color: #818cf8;
187
-
188
- /* Transitions - Slow, luxurious */
189
- --transition-fast: 200ms;
190
- --transition-normal: 400ms;
191
- --transition-slow: 600ms;
192
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
193
-
194
- /* Hover/Active transforms - Dignified, minimal */
195
- --hover-scale: 1.01;
196
- --hover-translate-y: -1px;
197
- --hover-translate-x: 0;
198
- --active-scale: 0.99;
199
- --active-translate-y: 0;
200
-
201
- /* Focus ring */
202
- --focus-ring-width: 2px;
203
- --focus-ring-offset: 2px;
204
- --focus-ring-color: #818cf8;
205
-
206
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
207
- /* Motion axis — duration palette */
208
- --duration-instant: 0ms;
209
- --duration-fast: var(--transition-fast);
210
- --duration-normal: var(--transition-normal);
211
- --duration-slow: var(--transition-slow);
212
- --duration-dramatic: 600ms;
213
- /* Motion axis — easing palette */
214
- --easing-linear: linear;
215
- --easing-standard: var(--transition-timing);
216
- --easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
217
- --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
218
- /* Iconography axis */
219
- --icon-family: lucide;
220
- --icon-default-size: 16px;
221
- /* Elevation axis — per-layer mapping */
222
- --elevation-card: var(--shadow-sm);
223
- --elevation-popover: var(--shadow-main);
224
- --elevation-dialog: var(--shadow-lg);
225
- --elevation-toast: var(--shadow-main);
226
- /* Geometry axis — radius rhythm with intent */
227
- --radius-container: var(--radius-md);
228
- --radius-interactive: var(--radius-md);
229
- --radius-pill: var(--radius-full);
230
- /* Geometry axis — border-width rhythm */
231
- --border-hairline: 1px;
232
- --border-standard: var(--border-width);
233
- --border-heavy: var(--border-width-thick);
234
- }