@almadar/ui 5.123.0 → 5.125.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 +332 -275
  6. package/dist/avl/index.js +334 -277
  7. package/dist/components/index.cjs +284 -248
  8. package/dist/components/index.d.cts +4 -3
  9. package/dist/components/index.d.ts +4 -3
  10. package/dist/components/index.js +284 -248
  11. package/dist/context/index.cjs +25 -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 +25 -66
  15. package/dist/{offline-executor-aRuNznZx.d.cts → offline-executor-Qz4b6GpF.d.cts} +19 -1
  16. package/dist/{offline-executor-aRuNznZx.d.ts → offline-executor-Qz4b6GpF.d.ts} +19 -1
  17. package/dist/providers/index.cjs +395 -275
  18. package/dist/providers/index.d.cts +6 -6
  19. package/dist/providers/index.d.ts +6 -6
  20. package/dist/providers/index.js +394 -276
  21. package/dist/renderer/index.cjs +8 -0
  22. package/dist/renderer/index.d.cts +2 -2
  23. package/dist/renderer/index.d.ts +2 -2
  24. package/dist/renderer/index.js +1 -1
  25. package/dist/runtime/index.cjs +325 -268
  26. package/dist/runtime/index.d.cts +4 -2
  27. package/dist/runtime/index.d.ts +4 -2
  28. package/dist/runtime/index.js +327 -270
  29. package/package.json +13 -11
  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/ocean.css DELETED
@@ -1,238 +0,0 @@
1
- /**
2
- * Ocean Theme - "Deep Sea Calm"
3
- *
4
- * Inspired by the tranquil depths of the ocean. Features soft layered
5
- * shadows with blue tints, smooth wave-like border radii, and a serene
6
- * palette ranging from deep navy to bright cyan. Slow, fluid transitions
7
- * create a calm, immersive experience like light filtering through water.
8
- */
9
-
10
- /* ==========================================================================
11
- * LIGHT MODE
12
- * ========================================================================== */
13
- [data-theme="ocean-light"] {
14
- /* Shadows - Soft layered with blue tint */
15
- --shadow-main:
16
- 0 4px 12px rgba(0, 119, 182, 0.1), 0 1px 3px rgba(0, 0, 0, 0.05);
17
- --shadow-sm: 0 2px 6px rgba(0, 119, 182, 0.08);
18
- --shadow-lg:
19
- 0 8px 28px rgba(0, 119, 182, 0.14), 0 4px 10px rgba(0, 0, 0, 0.05);
20
- --shadow-inner: inset 0 1px 3px rgba(0, 119, 182, 0.06);
21
- --shadow-none: none;
22
- --shadow-hover:
23
- 0 12px 36px rgba(0, 119, 182, 0.18), 0 4px 12px rgba(0, 180, 216, 0.1);
24
- --shadow-active: 0 2px 6px rgba(0, 119, 182, 0.12);
25
-
26
- /* Border radius - Smooth like waves */
27
- --radius-none: 0px;
28
- --radius-sm: 8px;
29
- --radius-md: 12px;
30
- --radius-lg: 16px;
31
- --radius-xl: 18px;
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 - Ocean blue on light background */
40
- --color-primary: #0077b6;
41
- --color-primary-hover: #005f8a;
42
- --color-primary-foreground: #ffffff;
43
-
44
- --color-secondary: #edf6f9;
45
- --color-secondary-hover: #d6eef5;
46
- --color-secondary-foreground: #023e5a;
47
-
48
- --color-accent: #00b4d8;
49
- --color-accent-foreground: #ffffff;
50
-
51
- --color-muted: #edf6f9;
52
- --color-muted-foreground: #5a7d8e;
53
-
54
- --color-background: #f7fbfd;
55
- --color-foreground: #0a2540;
56
- --color-card: #ffffff;
57
- --color-card-foreground: #0a2540;
58
- --color-surface: #edf6f9;
59
- --color-border: rgba(0, 119, 182, 0.2);
60
- --color-input: rgba(0, 119, 182, 0.15);
61
- --color-ring: #0077b6;
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: #0077b6;
76
-
77
- /* Transitions - Slow and smooth like currents */
78
- --transition-fast: 200ms;
79
- --transition-normal: 350ms;
80
- --transition-slow: 500ms;
81
- --transition-timing: cubic-bezier(0.25, 0.1, 0.25, 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: #0077b6;
94
-
95
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
96
- /* Motion axis — duration palette */
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 */
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="ocean-dark"] {
129
- /* Shadows - Blue-tinted colored glow */
130
- --shadow-main:
131
- 0 4px 14px rgba(72, 202, 228, 0.12), 0 1px 3px rgba(0, 0, 0, 0.15);
132
- --shadow-sm: 0 2px 6px rgba(72, 202, 228, 0.08);
133
- --shadow-lg:
134
- 0 8px 30px rgba(72, 202, 228, 0.2), 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 40px rgba(72, 202, 228, 0.3), 0 4px 12px rgba(0, 180, 216, 0.15);
139
- --shadow-active: 0 2px 8px rgba(72, 202, 228, 0.18);
140
-
141
- /* Border radius - Smooth like waves */
142
- --radius-none: 0px;
143
- --radius-sm: 8px;
144
- --radius-md: 12px;
145
- --radius-lg: 16px;
146
- --radius-xl: 18px;
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 cyan on deep navy */
155
- --color-primary: #48cae4;
156
- --color-primary-hover: #76d8eb;
157
- --color-primary-foreground: #062031;
158
-
159
- --color-secondary: #112840;
160
- --color-secondary-hover: #1a3654;
161
- --color-secondary-foreground: #cae9f5;
162
-
163
- --color-accent: #00b4d8;
164
- --color-accent-foreground: #062031;
165
-
166
- --color-muted: #112840;
167
- --color-muted-foreground: #8ab4c8;
168
-
169
- --color-background: #0a1628;
170
- --color-foreground: #e8f0f5;
171
- --color-card: #0f2035;
172
- --color-card-foreground: #e8f0f5;
173
- --color-surface: #112840;
174
- --color-border: rgba(72, 202, 228, 0.22);
175
- --color-input: rgba(72, 202, 228, 0.25);
176
- --color-ring: #48cae4;
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: #48cae4;
191
-
192
- /* Transitions - Slow and smooth like currents */
193
- --transition-fast: 200ms;
194
- --transition-normal: 350ms;
195
- --transition-slow: 500ms;
196
- --transition-timing: cubic-bezier(0.25, 0.1, 0.25, 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: #48cae4;
209
-
210
- /* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
211
- /* Motion axis — duration palette */
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 */
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
- }
package/themes/rose.css DELETED
@@ -1,233 +0,0 @@
1
- /**
2
- * Rose Theme — "Elegant Bloom"
3
- *
4
- * Pink and rose palette with warm, elegant, and sophisticated aesthetics.
5
- * Gentle curves, graceful transitions, and rose-tinted shadows create
6
- * a refined atmosphere perfect for lifestyle, beauty, and luxury UIs.
7
- */
8
-
9
- /* ==========================================================================
10
- * LIGHT MODE
11
- * ========================================================================== */
12
- [data-theme="rose-light"] {
13
- /* Shadows - Rose-tinted, warm */
14
- --shadow-main: 0 1px 3px rgba(225, 29, 72, 0.08), 0 1px 2px rgba(225, 29, 72, 0.05);
15
- --shadow-sm: 0 1px 2px rgba(225, 29, 72, 0.05);
16
- --shadow-lg:
17
- 0 10px 25px -5px rgba(225, 29, 72, 0.12), 0 8px 10px -6px rgba(225, 29, 72, 0.08);
18
- --shadow-inner: inset 0 1px 2px rgba(225, 29, 72, 0.06);
19
- --shadow-none: none;
20
- --shadow-hover: 0 10px 40px -10px rgba(225, 29, 72, 0.2);
21
- --shadow-active: 0 1px 2px rgba(225, 29, 72, 0.05);
22
-
23
- /* Border radius - Gentle curves */
24
- --radius-none: 0px;
25
- --radius-sm: 8px;
26
- --radius-md: 12px;
27
- --radius-lg: 16px;
28
- --radius-xl: 22px;
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 - Rose palette, warm and elegant */
37
- --color-primary: #e11d48;
38
- --color-primary-hover: #be123c;
39
- --color-primary-foreground: #ffffff;
40
-
41
- --color-secondary: #fff1f2;
42
- --color-secondary-hover: #ffe4e6;
43
- --color-secondary-foreground: #9f1239;
44
-
45
- --color-accent: #fb7185;
46
- --color-accent-foreground: #4c0519;
47
-
48
- --color-muted: #ffe4e6;
49
- --color-muted-foreground: #6b7280;
50
-
51
- --color-background: #fff1f2;
52
- --color-foreground: #4c0519;
53
- --color-card: #ffffff;
54
- --color-card-foreground: #4c0519;
55
- --color-surface: #ffe4e6;
56
- --color-border: rgba(225, 29, 72, 0.15);
57
- --color-input: rgba(225, 29, 72, 0.12);
58
- --color-ring: #e11d48;
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 - Rose tint */
71
- --icon-stroke-width: 1.5;
72
- --icon-color: #e11d48;
73
-
74
- /* Transitions - Graceful, smooth */
75
- --transition-fast: 200ms;
76
- --transition-normal: 350ms;
77
- --transition-slow: 500ms;
78
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
79
-
80
- /* Hover/Active transforms - Subtle, elegant */
81
- --hover-scale: 1.01;
82
- --hover-translate-y: -1px;
83
- --hover-translate-x: 0;
84
- --active-scale: 0.99;
85
- --active-translate-y: 0;
86
-
87
- /* Focus ring */
88
- --focus-ring-width: 2px;
89
- --focus-ring-offset: 2px;
90
- --focus-ring-color: #e11d48;
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="rose-dark"] {
126
- /* Shadows - Deep rose-tinted */
127
- --shadow-main: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(225, 29, 72, 0.12);
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(225, 29, 72, 0.15);
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(251, 113, 133, 0.3);
134
- --shadow-active: 0 1px 2px rgba(0, 0, 0, 0.25);
135
-
136
- /* Border radius - Gentle curves */
137
- --radius-none: 0px;
138
- --radius-sm: 8px;
139
- --radius-md: 12px;
140
- --radius-lg: 16px;
141
- --radius-xl: 22px;
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 rose dark mode */
150
- --color-primary: #fb7185;
151
- --color-primary-hover: #fda4af;
152
- --color-primary-foreground: #4c0519;
153
-
154
- --color-secondary: #2a0a1a;
155
- --color-secondary-hover: #3d1025;
156
- --color-secondary-foreground: #fecdd3;
157
-
158
- --color-accent: #fb7185;
159
- --color-accent-foreground: #4c0519;
160
-
161
- --color-muted: #2a0a1a;
162
- --color-muted-foreground: #fda4af;
163
-
164
- --color-background: #1a0510;
165
- --color-foreground: #ffe4e6;
166
- --color-card: #2a0a1a;
167
- --color-card-foreground: #ffe4e6;
168
- --color-surface: #3d1025;
169
- --color-border: rgba(251, 113, 133, 0.2);
170
- --color-input: rgba(251, 113, 133, 0.15);
171
- --color-ring: #fb7185;
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 rose for dark */
184
- --icon-stroke-width: 1.5;
185
- --icon-color: #fb7185;
186
-
187
- /* Transitions - Graceful, smooth */
188
- --transition-fast: 200ms;
189
- --transition-normal: 350ms;
190
- --transition-slow: 500ms;
191
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
192
-
193
- /* Hover/Active transforms - Subtle, elegant */
194
- --hover-scale: 1.01;
195
- --hover-translate-y: -1px;
196
- --hover-translate-x: 0;
197
- --active-scale: 0.99;
198
- --active-translate-y: 0;
199
-
200
- /* Focus ring */
201
- --focus-ring-width: 2px;
202
- --focus-ring-offset: 2px;
203
- --focus-ring-color: #fb7185;
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
- }
package/themes/sand.css DELETED
@@ -1,234 +0,0 @@
1
- /**
2
- * Sand Theme — "Desert Minimal"
3
- *
4
- * Warm beige and amber earth tones that evoke sun-baked desert landscapes.
5
- * A calm, natural aesthetic with soft golden shadows, rounded organic radii,
6
- * and gentle transitions. The palette draws from sandstone, amber, and
7
- * sun-bleached clay — grounded, warm, and inviting.
8
- */
9
-
10
- /* ==========================================================================
11
- * LIGHT MODE
12
- * ========================================================================== */
13
- [data-theme="sand-light"] {
14
- /* Shadows - Warm earth-toned, amber-tinted */
15
- --shadow-main: 0 1px 3px rgba(146, 64, 14, 0.08), 0 1px 2px rgba(146, 64, 14, 0.05);
16
- --shadow-sm: 0 1px 2px rgba(146, 64, 14, 0.05);
17
- --shadow-lg:
18
- 0 10px 25px -5px rgba(146, 64, 14, 0.1), 0 8px 10px -6px rgba(146, 64, 14, 0.06);
19
- --shadow-inner: inset 0 1px 2px rgba(146, 64, 14, 0.05);
20
- --shadow-none: none;
21
- --shadow-hover: 0 10px 40px -10px rgba(146, 64, 14, 0.14);
22
- --shadow-active: 0 1px 2px rgba(146, 64, 14, 0.05);
23
-
24
- /* Border radius - Natural, soft */
25
- --radius-none: 0px;
26
- --radius-sm: 6px;
27
- --radius-md: 10px;
28
- --radius-lg: 14px;
29
- --radius-xl: 16px;
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 - Warm amber earth tones */
38
- --color-primary: #92400e;
39
- --color-primary-hover: #78350f;
40
- --color-primary-foreground: #ffffff;
41
-
42
- --color-secondary: #fef9c3;
43
- --color-secondary-hover: #fef3c7;
44
- --color-secondary-foreground: #451a03;
45
-
46
- --color-accent: #d97706;
47
- --color-accent-foreground: #ffffff;
48
-
49
- --color-muted: #fef9c3;
50
- --color-muted-foreground: #78716c;
51
-
52
- --color-background: #fefdfb;
53
- --color-foreground: #451a03;
54
- --color-card: #ffffff;
55
- --color-card-foreground: #451a03;
56
- --color-surface: #fef3c7;
57
- --color-border: rgba(146, 64, 14, 0.2);
58
- --color-input: rgba(146, 64, 14, 0.22);
59
- --color-ring: #92400e;
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 */
72
- --icon-stroke-width: 1.75;
73
- --icon-color: #92400e;
74
-
75
- /* Transitions - Gentle, natural */
76
- --transition-fast: 150ms;
77
- --transition-normal: 300ms;
78
- --transition-slow: 450ms;
79
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
80
-
81
- /* Hover/Active transforms */
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: #92400e;
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="sand-dark"] {
127
- /* Shadows - Deep warm amber glow */
128
- --shadow-main: 0 1px 3px rgba(217, 119, 6, 0.1), 0 1px 2px rgba(0, 0, 0, 0.2);
129
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.2);
130
- --shadow-lg:
131
- 0 10px 25px -5px rgba(0, 0, 0, 0.35), 0 8px 10px -6px rgba(217, 119, 6, 0.08);
132
- --shadow-inner: inset 0 1px 2px rgba(0, 0, 0, 0.25);
133
- --shadow-none: none;
134
- --shadow-hover: 0 10px 40px -10px rgba(217, 119, 6, 0.15);
135
- --shadow-active: 0 1px 2px rgba(0, 0, 0, 0.2);
136
-
137
- /* Border radius - Natural, soft */
138
- --radius-none: 0px;
139
- --radius-sm: 6px;
140
- --radius-md: 10px;
141
- --radius-lg: 14px;
142
- --radius-xl: 16px;
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 - Warm amber on deep brown */
151
- --color-primary: #fbbf24;
152
- --color-primary-hover: #fcd34d;
153
- --color-primary-foreground: #18120a;
154
-
155
- --color-secondary: #241c10;
156
- --color-secondary-hover: #302416;
157
- --color-secondary-foreground: #fef3c7;
158
-
159
- --color-accent: #d97706;
160
- --color-accent-foreground: #ffffff;
161
-
162
- --color-muted: #241c10;
163
- --color-muted-foreground: #fbbf24;
164
-
165
- --color-background: #18120a;
166
- --color-foreground: #fef3c7;
167
- --color-card: #241c10;
168
- --color-card-foreground: #fef3c7;
169
- --color-surface: #302416;
170
- --color-border: rgba(217, 119, 6, 0.2);
171
- --color-input: rgba(217, 119, 6, 0.25);
172
- --color-ring: #fbbf24;
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 */
185
- --icon-stroke-width: 1.75;
186
- --icon-color: #d97706;
187
-
188
- /* Transitions - Gentle, natural */
189
- --transition-fast: 150ms;
190
- --transition-normal: 300ms;
191
- --transition-slow: 450ms;
192
- --transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
193
-
194
- /* Hover/Active transforms */
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: #d97706;
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
- }