@almadar/ui 4.57.4 → 5.0.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/dist/avl/index.cjs +270 -69
- package/dist/avl/index.js +270 -69
- package/dist/components/index.cjs +101 -68
- package/dist/components/index.js +101 -68
- package/dist/context/index.cjs +199 -0
- package/dist/context/index.js +199 -0
- package/dist/context/themeTokens.d.ts +1 -1
- package/dist/docs/index.cjs +21 -21
- package/dist/docs/index.js +21 -21
- package/dist/marketing/index.cjs +18 -18
- package/dist/marketing/index.js +18 -18
- package/dist/providers/index.cjs +101 -68
- package/dist/providers/index.js +101 -68
- package/dist/runtime/index.cjs +270 -69
- package/dist/runtime/index.js +270 -69
- package/package.json +2 -2
- package/tailwind-preset.cjs +118 -3
- package/themes/_contract.md +198 -0
- package/themes/almadar-website.css +212 -0
- package/themes/almadar.css +210 -0
- package/themes/arctic.css +210 -0
- package/themes/atelier.css +427 -0
- package/themes/copper.css +210 -0
- package/themes/ember.css +210 -0
- package/themes/forest.css +210 -0
- package/themes/gazette.css +411 -0
- package/themes/index.css +7 -0
- package/themes/kiosk.css +412 -0
- package/themes/lavender.css +210 -0
- package/themes/midnight.css +210 -0
- package/themes/minimalist.css +210 -0
- package/themes/neon.css +210 -0
- package/themes/ocean.css +210 -0
- package/themes/prism.css +406 -0
- package/themes/rose.css +210 -0
- package/themes/sand.css +210 -0
- package/themes/slate.css +210 -0
- package/themes/sunset.css +210 -0
- package/themes/terminal.css +422 -0
- package/themes/trait-wars.css +210 -0
- package/themes/wireframe.css +216 -0
package/themes/ocean.css
CHANGED
|
@@ -101,6 +101,111 @@
|
|
|
101
101
|
--focus-ring-offset: 2px;
|
|
102
102
|
--focus-ring-color: #0077b6;
|
|
103
103
|
|
|
104
|
+
/* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
|
|
105
|
+
/* Density axis — spacing scale */
|
|
106
|
+
--space-0: 0px;
|
|
107
|
+
--space-1: 4px;
|
|
108
|
+
--space-2: 8px;
|
|
109
|
+
--space-3: 12px;
|
|
110
|
+
--space-4: 16px;
|
|
111
|
+
--space-5: 20px;
|
|
112
|
+
--space-6: 24px;
|
|
113
|
+
--space-7: 28px;
|
|
114
|
+
--space-8: 32px;
|
|
115
|
+
--space-9: 36px;
|
|
116
|
+
--space-10: 40px;
|
|
117
|
+
--space-11: 44px;
|
|
118
|
+
--space-12: 48px;
|
|
119
|
+
/* Density axis — per-element heights */
|
|
120
|
+
--button-height-sm: 28px;
|
|
121
|
+
--button-height-md: 36px;
|
|
122
|
+
--button-height-lg: 44px;
|
|
123
|
+
--input-height-sm: 28px;
|
|
124
|
+
--input-height-md: 36px;
|
|
125
|
+
--input-height-lg: 44px;
|
|
126
|
+
--row-height-compact: 32px;
|
|
127
|
+
--row-height-normal: 40px;
|
|
128
|
+
--row-height-spacious: 48px;
|
|
129
|
+
/* Density axis — per-element padding */
|
|
130
|
+
--card-padding-sm: 12px;
|
|
131
|
+
--card-padding-md: 16px;
|
|
132
|
+
--card-padding-lg: 24px;
|
|
133
|
+
--dialog-padding: 24px;
|
|
134
|
+
--section-gap: 32px;
|
|
135
|
+
/* Type axis — family triplet (aliases existing --font-family for backward compat) */
|
|
136
|
+
--font-family-display: var(--font-family);
|
|
137
|
+
--font-family-body: var(--font-family);
|
|
138
|
+
--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
139
|
+
/* Type axis — size scale */
|
|
140
|
+
--text-xs: 12px;
|
|
141
|
+
--leading-xs: 16px;
|
|
142
|
+
--text-sm: 14px;
|
|
143
|
+
--leading-sm: 20px;
|
|
144
|
+
--text-base: 16px;
|
|
145
|
+
--leading-base: 24px;
|
|
146
|
+
--text-lg: 18px;
|
|
147
|
+
--leading-lg: 28px;
|
|
148
|
+
--text-xl: 20px;
|
|
149
|
+
--leading-xl: 28px;
|
|
150
|
+
--text-2xl: 24px;
|
|
151
|
+
--leading-2xl: 32px;
|
|
152
|
+
--text-3xl: 30px;
|
|
153
|
+
--leading-3xl: 36px;
|
|
154
|
+
--text-4xl: 36px;
|
|
155
|
+
--leading-4xl: 40px;
|
|
156
|
+
--text-display-1: 48px;
|
|
157
|
+
--leading-display-1: 52px;
|
|
158
|
+
--text-display-2: 60px;
|
|
159
|
+
--leading-display-2: 64px;
|
|
160
|
+
/* Type axis — intent mapping */
|
|
161
|
+
--intent-heading-major-size: var(--text-2xl);
|
|
162
|
+
--intent-heading-major-weight: var(--font-weight-bold);
|
|
163
|
+
--intent-heading-major-leading: var(--leading-2xl);
|
|
164
|
+
--intent-heading-minor-size: var(--text-lg);
|
|
165
|
+
--intent-heading-minor-weight: var(--font-weight-bold);
|
|
166
|
+
--intent-heading-minor-leading: var(--leading-lg);
|
|
167
|
+
--intent-body-emphasis-size: var(--text-base);
|
|
168
|
+
--intent-body-emphasis-weight: var(--font-weight-medium);
|
|
169
|
+
--intent-body-emphasis-leading: var(--leading-base);
|
|
170
|
+
--intent-body-default-size: var(--text-sm);
|
|
171
|
+
--intent-body-default-weight: var(--font-weight-normal);
|
|
172
|
+
--intent-body-default-leading: var(--leading-sm);
|
|
173
|
+
--intent-body-quiet-size: var(--text-sm);
|
|
174
|
+
--intent-body-quiet-weight: var(--font-weight-normal);
|
|
175
|
+
--intent-body-quiet-leading: var(--leading-sm);
|
|
176
|
+
--intent-caption-size: var(--text-xs);
|
|
177
|
+
--intent-caption-weight: var(--font-weight-normal);
|
|
178
|
+
--intent-caption-leading: var(--leading-xs);
|
|
179
|
+
--intent-numeric-size: var(--text-sm);
|
|
180
|
+
--intent-numeric-weight: var(--font-weight-medium);
|
|
181
|
+
--intent-numeric-leading: var(--leading-sm);
|
|
182
|
+
/* Motion axis — duration palette */
|
|
183
|
+
--duration-instant: 0ms;
|
|
184
|
+
--duration-fast: var(--transition-fast);
|
|
185
|
+
--duration-normal: var(--transition-normal);
|
|
186
|
+
--duration-slow: var(--transition-slow);
|
|
187
|
+
--duration-dramatic: 600ms;
|
|
188
|
+
/* Motion axis — easing palette */
|
|
189
|
+
--easing-linear: linear;
|
|
190
|
+
--easing-standard: var(--transition-timing);
|
|
191
|
+
--easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
|
|
192
|
+
--easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
193
|
+
/* Iconography axis */
|
|
194
|
+
--icon-family: lucide;
|
|
195
|
+
--icon-default-size: 16px;
|
|
196
|
+
/* Elevation axis — per-layer mapping */
|
|
197
|
+
--elevation-card: var(--shadow-sm);
|
|
198
|
+
--elevation-popover: var(--shadow-main);
|
|
199
|
+
--elevation-dialog: var(--shadow-lg);
|
|
200
|
+
--elevation-toast: var(--shadow-main);
|
|
201
|
+
/* Geometry axis — radius rhythm with intent */
|
|
202
|
+
--radius-container: var(--radius-md);
|
|
203
|
+
--radius-interactive: var(--radius-md);
|
|
204
|
+
--radius-pill: var(--radius-full);
|
|
205
|
+
/* Geometry axis — border-width rhythm */
|
|
206
|
+
--border-hairline: 1px;
|
|
207
|
+
--border-standard: var(--border-width);
|
|
208
|
+
--border-heavy: var(--border-width-thick);
|
|
104
209
|
}
|
|
105
210
|
|
|
106
211
|
/* ==========================================================================
|
|
@@ -197,4 +302,109 @@
|
|
|
197
302
|
--focus-ring-offset: 2px;
|
|
198
303
|
--focus-ring-color: #48cae4;
|
|
199
304
|
|
|
305
|
+
/* Layer 1 — backfill (preserves current visual output, see themes/_contract.md) */
|
|
306
|
+
/* Density axis — spacing scale */
|
|
307
|
+
--space-0: 0px;
|
|
308
|
+
--space-1: 4px;
|
|
309
|
+
--space-2: 8px;
|
|
310
|
+
--space-3: 12px;
|
|
311
|
+
--space-4: 16px;
|
|
312
|
+
--space-5: 20px;
|
|
313
|
+
--space-6: 24px;
|
|
314
|
+
--space-7: 28px;
|
|
315
|
+
--space-8: 32px;
|
|
316
|
+
--space-9: 36px;
|
|
317
|
+
--space-10: 40px;
|
|
318
|
+
--space-11: 44px;
|
|
319
|
+
--space-12: 48px;
|
|
320
|
+
/* Density axis — per-element heights */
|
|
321
|
+
--button-height-sm: 28px;
|
|
322
|
+
--button-height-md: 36px;
|
|
323
|
+
--button-height-lg: 44px;
|
|
324
|
+
--input-height-sm: 28px;
|
|
325
|
+
--input-height-md: 36px;
|
|
326
|
+
--input-height-lg: 44px;
|
|
327
|
+
--row-height-compact: 32px;
|
|
328
|
+
--row-height-normal: 40px;
|
|
329
|
+
--row-height-spacious: 48px;
|
|
330
|
+
/* Density axis — per-element padding */
|
|
331
|
+
--card-padding-sm: 12px;
|
|
332
|
+
--card-padding-md: 16px;
|
|
333
|
+
--card-padding-lg: 24px;
|
|
334
|
+
--dialog-padding: 24px;
|
|
335
|
+
--section-gap: 32px;
|
|
336
|
+
/* Type axis — family triplet (aliases existing --font-family for backward compat) */
|
|
337
|
+
--font-family-display: var(--font-family);
|
|
338
|
+
--font-family-body: var(--font-family);
|
|
339
|
+
--font-family-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
340
|
+
/* Type axis — size scale */
|
|
341
|
+
--text-xs: 12px;
|
|
342
|
+
--leading-xs: 16px;
|
|
343
|
+
--text-sm: 14px;
|
|
344
|
+
--leading-sm: 20px;
|
|
345
|
+
--text-base: 16px;
|
|
346
|
+
--leading-base: 24px;
|
|
347
|
+
--text-lg: 18px;
|
|
348
|
+
--leading-lg: 28px;
|
|
349
|
+
--text-xl: 20px;
|
|
350
|
+
--leading-xl: 28px;
|
|
351
|
+
--text-2xl: 24px;
|
|
352
|
+
--leading-2xl: 32px;
|
|
353
|
+
--text-3xl: 30px;
|
|
354
|
+
--leading-3xl: 36px;
|
|
355
|
+
--text-4xl: 36px;
|
|
356
|
+
--leading-4xl: 40px;
|
|
357
|
+
--text-display-1: 48px;
|
|
358
|
+
--leading-display-1: 52px;
|
|
359
|
+
--text-display-2: 60px;
|
|
360
|
+
--leading-display-2: 64px;
|
|
361
|
+
/* Type axis — intent mapping */
|
|
362
|
+
--intent-heading-major-size: var(--text-2xl);
|
|
363
|
+
--intent-heading-major-weight: var(--font-weight-bold);
|
|
364
|
+
--intent-heading-major-leading: var(--leading-2xl);
|
|
365
|
+
--intent-heading-minor-size: var(--text-lg);
|
|
366
|
+
--intent-heading-minor-weight: var(--font-weight-bold);
|
|
367
|
+
--intent-heading-minor-leading: var(--leading-lg);
|
|
368
|
+
--intent-body-emphasis-size: var(--text-base);
|
|
369
|
+
--intent-body-emphasis-weight: var(--font-weight-medium);
|
|
370
|
+
--intent-body-emphasis-leading: var(--leading-base);
|
|
371
|
+
--intent-body-default-size: var(--text-sm);
|
|
372
|
+
--intent-body-default-weight: var(--font-weight-normal);
|
|
373
|
+
--intent-body-default-leading: var(--leading-sm);
|
|
374
|
+
--intent-body-quiet-size: var(--text-sm);
|
|
375
|
+
--intent-body-quiet-weight: var(--font-weight-normal);
|
|
376
|
+
--intent-body-quiet-leading: var(--leading-sm);
|
|
377
|
+
--intent-caption-size: var(--text-xs);
|
|
378
|
+
--intent-caption-weight: var(--font-weight-normal);
|
|
379
|
+
--intent-caption-leading: var(--leading-xs);
|
|
380
|
+
--intent-numeric-size: var(--text-sm);
|
|
381
|
+
--intent-numeric-weight: var(--font-weight-medium);
|
|
382
|
+
--intent-numeric-leading: var(--leading-sm);
|
|
383
|
+
/* Motion axis — duration palette */
|
|
384
|
+
--duration-instant: 0ms;
|
|
385
|
+
--duration-fast: var(--transition-fast);
|
|
386
|
+
--duration-normal: var(--transition-normal);
|
|
387
|
+
--duration-slow: var(--transition-slow);
|
|
388
|
+
--duration-dramatic: 600ms;
|
|
389
|
+
/* Motion axis — easing palette */
|
|
390
|
+
--easing-linear: linear;
|
|
391
|
+
--easing-standard: var(--transition-timing);
|
|
392
|
+
--easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
|
|
393
|
+
--easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
394
|
+
/* Iconography axis */
|
|
395
|
+
--icon-family: lucide;
|
|
396
|
+
--icon-default-size: 16px;
|
|
397
|
+
/* Elevation axis — per-layer mapping */
|
|
398
|
+
--elevation-card: var(--shadow-sm);
|
|
399
|
+
--elevation-popover: var(--shadow-main);
|
|
400
|
+
--elevation-dialog: var(--shadow-lg);
|
|
401
|
+
--elevation-toast: var(--shadow-main);
|
|
402
|
+
/* Geometry axis — radius rhythm with intent */
|
|
403
|
+
--radius-container: var(--radius-md);
|
|
404
|
+
--radius-interactive: var(--radius-md);
|
|
405
|
+
--radius-pill: var(--radius-full);
|
|
406
|
+
/* Geometry axis — border-width rhythm */
|
|
407
|
+
--border-hairline: 1px;
|
|
408
|
+
--border-standard: var(--border-width);
|
|
409
|
+
--border-heavy: var(--border-width-thick);
|
|
200
410
|
}
|
package/themes/prism.css
ADDED
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prism Theme
|
|
3
|
+
*
|
|
4
|
+
* Compact tech aesthetic — Linear-influenced but louder. Tight 4pt rhythm,
|
|
5
|
+
* mono-heavy numerics, electric violet + lime accents, mechanical linear motion.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* ==========================================================================
|
|
9
|
+
* LIGHT MODE
|
|
10
|
+
* ========================================================================== */
|
|
11
|
+
[data-theme="prism-light"] {
|
|
12
|
+
/* Shadows - Flat-ish, hairline-led */
|
|
13
|
+
--shadow-none: none;
|
|
14
|
+
--shadow-sm: 0 1px 0 rgba(15, 23, 42, 0.04), 0 1px 2px rgba(15, 23, 42, 0.04);
|
|
15
|
+
--shadow-main: 0 1px 2px rgba(15, 23, 42, 0.06), 0 2px 6px rgba(15, 23, 42, 0.04);
|
|
16
|
+
--shadow-lg: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04);
|
|
17
|
+
--shadow-inner: inset 0 1px 1px rgba(15, 23, 42, 0.04);
|
|
18
|
+
--shadow-hover: 0 2px 6px rgba(124, 58, 237, 0.12);
|
|
19
|
+
--shadow-active: 0 1px 2px rgba(124, 58, 237, 0.08);
|
|
20
|
+
|
|
21
|
+
/* Border radius - Mixed: containers sharp-ish, interactive softer */
|
|
22
|
+
--radius-none: 0px;
|
|
23
|
+
--radius-sm: 4px;
|
|
24
|
+
--radius-md: 6px;
|
|
25
|
+
--radius-lg: 10px;
|
|
26
|
+
--radius-xl: 12px;
|
|
27
|
+
--radius-full: 9999px;
|
|
28
|
+
|
|
29
|
+
/* Border width - Hairline */
|
|
30
|
+
--border-width: 1px;
|
|
31
|
+
--border-width-thin: 1px;
|
|
32
|
+
--border-width-thick: 2px;
|
|
33
|
+
|
|
34
|
+
/* Colors - Electric violet primary, lime accent, clean off-white */
|
|
35
|
+
--color-primary: #7c3aed;
|
|
36
|
+
--color-primary-hover: #6d28d9;
|
|
37
|
+
--color-primary-foreground: #ffffff;
|
|
38
|
+
|
|
39
|
+
--color-secondary: #f1f5f9;
|
|
40
|
+
--color-secondary-hover: #e2e8f0;
|
|
41
|
+
--color-secondary-foreground: #0f172a;
|
|
42
|
+
|
|
43
|
+
--color-accent: #84cc16;
|
|
44
|
+
--color-accent-foreground: #1a2e05;
|
|
45
|
+
|
|
46
|
+
--color-muted: #f1f5f9;
|
|
47
|
+
--color-muted-foreground: #64748b;
|
|
48
|
+
|
|
49
|
+
--color-background: #fafafa;
|
|
50
|
+
--color-foreground: #0f172a;
|
|
51
|
+
--color-card: #ffffff;
|
|
52
|
+
--color-card-foreground: #0f172a;
|
|
53
|
+
--color-surface: #f5f5f7;
|
|
54
|
+
--color-border: #e2e8f0;
|
|
55
|
+
--color-input: #cbd5e1;
|
|
56
|
+
--color-ring: #7c3aed;
|
|
57
|
+
|
|
58
|
+
/* Semantic colors */
|
|
59
|
+
--color-error: #dc2626;
|
|
60
|
+
--color-error-foreground: #ffffff;
|
|
61
|
+
--color-success: #16a34a;
|
|
62
|
+
--color-success-foreground: #ffffff;
|
|
63
|
+
--color-warning: #d97706;
|
|
64
|
+
--color-warning-foreground: #ffffff;
|
|
65
|
+
--color-info: #2563eb;
|
|
66
|
+
--color-info-foreground: #ffffff;
|
|
67
|
+
|
|
68
|
+
/* Typography - Tech: Inter body, JetBrains Mono for numerics */
|
|
69
|
+
--font-family:
|
|
70
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
71
|
+
--font-weight-normal: 400;
|
|
72
|
+
--font-weight-medium: 500;
|
|
73
|
+
--font-weight-bold: 600;
|
|
74
|
+
--letter-spacing: -0.01em;
|
|
75
|
+
--line-height: 1.4;
|
|
76
|
+
|
|
77
|
+
/* Icon styling - Thin */
|
|
78
|
+
--icon-stroke-width: 1.5;
|
|
79
|
+
--icon-color: currentColor;
|
|
80
|
+
|
|
81
|
+
/* Transitions - Snappy, mechanical linear */
|
|
82
|
+
--transition-fast: 80ms;
|
|
83
|
+
--transition-normal: 120ms;
|
|
84
|
+
--transition-slow: 180ms;
|
|
85
|
+
--transition-timing: linear;
|
|
86
|
+
|
|
87
|
+
/* Hover/Active transforms - Subtle */
|
|
88
|
+
--hover-scale: 1.0;
|
|
89
|
+
--hover-translate-y: -1px;
|
|
90
|
+
--hover-translate-x: 0;
|
|
91
|
+
--active-scale: 0.99;
|
|
92
|
+
--active-translate-y: 0;
|
|
93
|
+
|
|
94
|
+
/* Focus ring - Electric violet */
|
|
95
|
+
--focus-ring-width: 2px;
|
|
96
|
+
--focus-ring-offset: 2px;
|
|
97
|
+
--focus-ring-color: #7c3aed;
|
|
98
|
+
|
|
99
|
+
/* Density axis - COMPACT 4pt rhythm */
|
|
100
|
+
--space-0: 0px;
|
|
101
|
+
--space-1: 4px;
|
|
102
|
+
--space-2: 8px;
|
|
103
|
+
--space-3: 12px;
|
|
104
|
+
--space-4: 16px;
|
|
105
|
+
--space-5: 20px;
|
|
106
|
+
--space-6: 24px;
|
|
107
|
+
--space-7: 28px;
|
|
108
|
+
--space-8: 32px;
|
|
109
|
+
--space-9: 36px;
|
|
110
|
+
--space-10: 40px;
|
|
111
|
+
--space-11: 44px;
|
|
112
|
+
--space-12: 48px;
|
|
113
|
+
/* Density axis - tight heights */
|
|
114
|
+
--button-height-sm: 24px;
|
|
115
|
+
--button-height-md: 28px;
|
|
116
|
+
--button-height-lg: 36px;
|
|
117
|
+
--input-height-sm: 24px;
|
|
118
|
+
--input-height-md: 28px;
|
|
119
|
+
--input-height-lg: 36px;
|
|
120
|
+
--row-height-compact: 28px;
|
|
121
|
+
--row-height-normal: 32px;
|
|
122
|
+
--row-height-spacious: 40px;
|
|
123
|
+
/* Density axis - tight padding 8/12/16 */
|
|
124
|
+
--card-padding-sm: 8px;
|
|
125
|
+
--card-padding-md: 12px;
|
|
126
|
+
--card-padding-lg: 16px;
|
|
127
|
+
--dialog-padding: 20px;
|
|
128
|
+
--section-gap: 24px;
|
|
129
|
+
/* Type axis - Inter body, JetBrains Mono numerics */
|
|
130
|
+
--font-family-display:
|
|
131
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
132
|
+
--font-family-body:
|
|
133
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
134
|
+
--font-family-mono:
|
|
135
|
+
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
136
|
+
/* Type axis - tighter scale (body 13/18, heading-major 22/26) */
|
|
137
|
+
--text-xs: 11px;
|
|
138
|
+
--leading-xs: 14px;
|
|
139
|
+
--text-sm: 13px;
|
|
140
|
+
--leading-sm: 18px;
|
|
141
|
+
--text-base: 14px;
|
|
142
|
+
--leading-base: 20px;
|
|
143
|
+
--text-lg: 16px;
|
|
144
|
+
--leading-lg: 22px;
|
|
145
|
+
--text-xl: 18px;
|
|
146
|
+
--leading-xl: 24px;
|
|
147
|
+
--text-2xl: 22px;
|
|
148
|
+
--leading-2xl: 26px;
|
|
149
|
+
--text-3xl: 28px;
|
|
150
|
+
--leading-3xl: 32px;
|
|
151
|
+
--text-4xl: 34px;
|
|
152
|
+
--leading-4xl: 38px;
|
|
153
|
+
--text-display-1: 44px;
|
|
154
|
+
--leading-display-1: 48px;
|
|
155
|
+
--text-display-2: 56px;
|
|
156
|
+
--leading-display-2: 60px;
|
|
157
|
+
/* Type axis - intent mapping (numeric/caption forced to mono) */
|
|
158
|
+
--intent-heading-major-size: var(--text-2xl);
|
|
159
|
+
--intent-heading-major-weight: var(--font-weight-bold);
|
|
160
|
+
--intent-heading-major-leading: var(--leading-2xl);
|
|
161
|
+
--intent-heading-minor-size: var(--text-lg);
|
|
162
|
+
--intent-heading-minor-weight: var(--font-weight-bold);
|
|
163
|
+
--intent-heading-minor-leading: var(--leading-lg);
|
|
164
|
+
--intent-body-emphasis-size: var(--text-sm);
|
|
165
|
+
--intent-body-emphasis-weight: var(--font-weight-medium);
|
|
166
|
+
--intent-body-emphasis-leading: var(--leading-sm);
|
|
167
|
+
--intent-body-default-size: var(--text-sm);
|
|
168
|
+
--intent-body-default-weight: var(--font-weight-normal);
|
|
169
|
+
--intent-body-default-leading: var(--leading-sm);
|
|
170
|
+
--intent-body-quiet-size: var(--text-sm);
|
|
171
|
+
--intent-body-quiet-weight: var(--font-weight-normal);
|
|
172
|
+
--intent-body-quiet-leading: var(--leading-sm);
|
|
173
|
+
--intent-caption-size: var(--text-xs);
|
|
174
|
+
--intent-caption-weight: var(--font-weight-normal);
|
|
175
|
+
--intent-caption-leading: var(--leading-xs);
|
|
176
|
+
--intent-numeric-size: var(--text-sm);
|
|
177
|
+
--intent-numeric-weight: var(--font-weight-medium);
|
|
178
|
+
--intent-numeric-leading: var(--leading-sm);
|
|
179
|
+
/* Motion axis - snappy, mechanical linear */
|
|
180
|
+
--duration-instant: 0ms;
|
|
181
|
+
--duration-fast: 80ms;
|
|
182
|
+
--duration-normal: 120ms;
|
|
183
|
+
--duration-slow: 180ms;
|
|
184
|
+
--duration-dramatic: 240ms;
|
|
185
|
+
/* Motion axis - everything linear, mechanical */
|
|
186
|
+
--easing-linear: linear;
|
|
187
|
+
--easing-standard: linear;
|
|
188
|
+
--easing-emphasized: linear;
|
|
189
|
+
--easing-spring: linear;
|
|
190
|
+
/* Iconography axis - thin lucide */
|
|
191
|
+
--icon-family: lucide;
|
|
192
|
+
--icon-default-size: 14px;
|
|
193
|
+
/* Elevation axis - flat-ish */
|
|
194
|
+
--elevation-card: var(--shadow-sm);
|
|
195
|
+
--elevation-popover: var(--shadow-main);
|
|
196
|
+
--elevation-dialog: var(--shadow-main);
|
|
197
|
+
--elevation-toast: var(--shadow-sm);
|
|
198
|
+
/* Geometry axis - containers sharp-ish, interactive softer, pill full */
|
|
199
|
+
--radius-container: 6px;
|
|
200
|
+
--radius-interactive: 10px;
|
|
201
|
+
--radius-pill: 9999px;
|
|
202
|
+
/* Geometry axis - hairline borders */
|
|
203
|
+
--border-hairline: 1px;
|
|
204
|
+
--border-standard: 1px;
|
|
205
|
+
--border-heavy: 2px;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* ==========================================================================
|
|
209
|
+
* DARK MODE
|
|
210
|
+
* ========================================================================== */
|
|
211
|
+
[data-theme="prism-dark"] {
|
|
212
|
+
/* Shadows - Flat, deep shadows */
|
|
213
|
+
--shadow-none: none;
|
|
214
|
+
--shadow-sm: 0 1px 0 rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
|
|
215
|
+
--shadow-main: 0 1px 2px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.3);
|
|
216
|
+
--shadow-lg: 0 4px 12px rgba(0, 0, 0, 0.5), 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
217
|
+
--shadow-inner: inset 0 1px 1px rgba(0, 0, 0, 0.3);
|
|
218
|
+
--shadow-hover: 0 2px 8px rgba(167, 139, 250, 0.2);
|
|
219
|
+
--shadow-active: 0 1px 2px rgba(167, 139, 250, 0.15);
|
|
220
|
+
|
|
221
|
+
/* Border radius - Mixed: containers sharp-ish, interactive softer */
|
|
222
|
+
--radius-none: 0px;
|
|
223
|
+
--radius-sm: 4px;
|
|
224
|
+
--radius-md: 6px;
|
|
225
|
+
--radius-lg: 10px;
|
|
226
|
+
--radius-xl: 12px;
|
|
227
|
+
--radius-full: 9999px;
|
|
228
|
+
|
|
229
|
+
/* Border width - Hairline */
|
|
230
|
+
--border-width: 1px;
|
|
231
|
+
--border-width-thin: 1px;
|
|
232
|
+
--border-width-thick: 2px;
|
|
233
|
+
|
|
234
|
+
/* Colors - Brighter violet on very dark slate */
|
|
235
|
+
--color-primary: #a78bfa;
|
|
236
|
+
--color-primary-hover: #c4b5fd;
|
|
237
|
+
--color-primary-foreground: #1e1b4b;
|
|
238
|
+
|
|
239
|
+
--color-secondary: #1f1d3a;
|
|
240
|
+
--color-secondary-hover: #2a2748;
|
|
241
|
+
--color-secondary-foreground: #e2e8f0;
|
|
242
|
+
|
|
243
|
+
--color-accent: #bef264;
|
|
244
|
+
--color-accent-foreground: #1a2e05;
|
|
245
|
+
|
|
246
|
+
--color-muted: #1f1d3a;
|
|
247
|
+
--color-muted-foreground: #94a3b8;
|
|
248
|
+
|
|
249
|
+
--color-background: #0c0a1a;
|
|
250
|
+
--color-foreground: #e2e8f0;
|
|
251
|
+
--color-card: #14122a;
|
|
252
|
+
--color-card-foreground: #e2e8f0;
|
|
253
|
+
--color-surface: #1f1d3a;
|
|
254
|
+
--color-border: #2a2748;
|
|
255
|
+
--color-input: #3a3658;
|
|
256
|
+
--color-ring: #a78bfa;
|
|
257
|
+
|
|
258
|
+
/* Semantic colors - Brighter for dark */
|
|
259
|
+
--color-error: #f87171;
|
|
260
|
+
--color-error-foreground: #000000;
|
|
261
|
+
--color-success: #4ade80;
|
|
262
|
+
--color-success-foreground: #000000;
|
|
263
|
+
--color-warning: #fbbf24;
|
|
264
|
+
--color-warning-foreground: #000000;
|
|
265
|
+
--color-info: #60a5fa;
|
|
266
|
+
--color-info-foreground: #000000;
|
|
267
|
+
|
|
268
|
+
/* Typography - Tech */
|
|
269
|
+
--font-family:
|
|
270
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
271
|
+
--font-weight-normal: 400;
|
|
272
|
+
--font-weight-medium: 500;
|
|
273
|
+
--font-weight-bold: 600;
|
|
274
|
+
--letter-spacing: -0.01em;
|
|
275
|
+
--line-height: 1.4;
|
|
276
|
+
|
|
277
|
+
/* Icon styling - Thin */
|
|
278
|
+
--icon-stroke-width: 1.5;
|
|
279
|
+
--icon-color: currentColor;
|
|
280
|
+
|
|
281
|
+
/* Transitions - Snappy linear */
|
|
282
|
+
--transition-fast: 80ms;
|
|
283
|
+
--transition-normal: 120ms;
|
|
284
|
+
--transition-slow: 180ms;
|
|
285
|
+
--transition-timing: linear;
|
|
286
|
+
|
|
287
|
+
/* Hover/Active transforms - Subtle */
|
|
288
|
+
--hover-scale: 1.0;
|
|
289
|
+
--hover-translate-y: -1px;
|
|
290
|
+
--hover-translate-x: 0;
|
|
291
|
+
--active-scale: 0.99;
|
|
292
|
+
--active-translate-y: 0;
|
|
293
|
+
|
|
294
|
+
/* Focus ring - Bright violet */
|
|
295
|
+
--focus-ring-width: 2px;
|
|
296
|
+
--focus-ring-offset: 2px;
|
|
297
|
+
--focus-ring-color: #a78bfa;
|
|
298
|
+
|
|
299
|
+
/* Density axis - COMPACT 4pt rhythm */
|
|
300
|
+
--space-0: 0px;
|
|
301
|
+
--space-1: 4px;
|
|
302
|
+
--space-2: 8px;
|
|
303
|
+
--space-3: 12px;
|
|
304
|
+
--space-4: 16px;
|
|
305
|
+
--space-5: 20px;
|
|
306
|
+
--space-6: 24px;
|
|
307
|
+
--space-7: 28px;
|
|
308
|
+
--space-8: 32px;
|
|
309
|
+
--space-9: 36px;
|
|
310
|
+
--space-10: 40px;
|
|
311
|
+
--space-11: 44px;
|
|
312
|
+
--space-12: 48px;
|
|
313
|
+
/* Density axis - tight heights */
|
|
314
|
+
--button-height-sm: 24px;
|
|
315
|
+
--button-height-md: 28px;
|
|
316
|
+
--button-height-lg: 36px;
|
|
317
|
+
--input-height-sm: 24px;
|
|
318
|
+
--input-height-md: 28px;
|
|
319
|
+
--input-height-lg: 36px;
|
|
320
|
+
--row-height-compact: 28px;
|
|
321
|
+
--row-height-normal: 32px;
|
|
322
|
+
--row-height-spacious: 40px;
|
|
323
|
+
/* Density axis - tight padding 8/12/16 */
|
|
324
|
+
--card-padding-sm: 8px;
|
|
325
|
+
--card-padding-md: 12px;
|
|
326
|
+
--card-padding-lg: 16px;
|
|
327
|
+
--dialog-padding: 20px;
|
|
328
|
+
--section-gap: 24px;
|
|
329
|
+
/* Type axis - Inter body, JetBrains Mono numerics */
|
|
330
|
+
--font-family-display:
|
|
331
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
332
|
+
--font-family-body:
|
|
333
|
+
"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
334
|
+
--font-family-mono:
|
|
335
|
+
"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
336
|
+
/* Type axis - tighter scale (body 13/18, heading-major 22/26) */
|
|
337
|
+
--text-xs: 11px;
|
|
338
|
+
--leading-xs: 14px;
|
|
339
|
+
--text-sm: 13px;
|
|
340
|
+
--leading-sm: 18px;
|
|
341
|
+
--text-base: 14px;
|
|
342
|
+
--leading-base: 20px;
|
|
343
|
+
--text-lg: 16px;
|
|
344
|
+
--leading-lg: 22px;
|
|
345
|
+
--text-xl: 18px;
|
|
346
|
+
--leading-xl: 24px;
|
|
347
|
+
--text-2xl: 22px;
|
|
348
|
+
--leading-2xl: 26px;
|
|
349
|
+
--text-3xl: 28px;
|
|
350
|
+
--leading-3xl: 32px;
|
|
351
|
+
--text-4xl: 34px;
|
|
352
|
+
--leading-4xl: 38px;
|
|
353
|
+
--text-display-1: 44px;
|
|
354
|
+
--leading-display-1: 48px;
|
|
355
|
+
--text-display-2: 56px;
|
|
356
|
+
--leading-display-2: 60px;
|
|
357
|
+
/* Type axis - intent mapping */
|
|
358
|
+
--intent-heading-major-size: var(--text-2xl);
|
|
359
|
+
--intent-heading-major-weight: var(--font-weight-bold);
|
|
360
|
+
--intent-heading-major-leading: var(--leading-2xl);
|
|
361
|
+
--intent-heading-minor-size: var(--text-lg);
|
|
362
|
+
--intent-heading-minor-weight: var(--font-weight-bold);
|
|
363
|
+
--intent-heading-minor-leading: var(--leading-lg);
|
|
364
|
+
--intent-body-emphasis-size: var(--text-sm);
|
|
365
|
+
--intent-body-emphasis-weight: var(--font-weight-medium);
|
|
366
|
+
--intent-body-emphasis-leading: var(--leading-sm);
|
|
367
|
+
--intent-body-default-size: var(--text-sm);
|
|
368
|
+
--intent-body-default-weight: var(--font-weight-normal);
|
|
369
|
+
--intent-body-default-leading: var(--leading-sm);
|
|
370
|
+
--intent-body-quiet-size: var(--text-sm);
|
|
371
|
+
--intent-body-quiet-weight: var(--font-weight-normal);
|
|
372
|
+
--intent-body-quiet-leading: var(--leading-sm);
|
|
373
|
+
--intent-caption-size: var(--text-xs);
|
|
374
|
+
--intent-caption-weight: var(--font-weight-normal);
|
|
375
|
+
--intent-caption-leading: var(--leading-xs);
|
|
376
|
+
--intent-numeric-size: var(--text-sm);
|
|
377
|
+
--intent-numeric-weight: var(--font-weight-medium);
|
|
378
|
+
--intent-numeric-leading: var(--leading-sm);
|
|
379
|
+
/* Motion axis - snappy, mechanical linear */
|
|
380
|
+
--duration-instant: 0ms;
|
|
381
|
+
--duration-fast: 80ms;
|
|
382
|
+
--duration-normal: 120ms;
|
|
383
|
+
--duration-slow: 180ms;
|
|
384
|
+
--duration-dramatic: 240ms;
|
|
385
|
+
/* Motion axis - everything linear, mechanical */
|
|
386
|
+
--easing-linear: linear;
|
|
387
|
+
--easing-standard: linear;
|
|
388
|
+
--easing-emphasized: linear;
|
|
389
|
+
--easing-spring: linear;
|
|
390
|
+
/* Iconography axis - thin lucide */
|
|
391
|
+
--icon-family: lucide;
|
|
392
|
+
--icon-default-size: 14px;
|
|
393
|
+
/* Elevation axis - flat-ish */
|
|
394
|
+
--elevation-card: var(--shadow-sm);
|
|
395
|
+
--elevation-popover: var(--shadow-main);
|
|
396
|
+
--elevation-dialog: var(--shadow-main);
|
|
397
|
+
--elevation-toast: var(--shadow-sm);
|
|
398
|
+
/* Geometry axis - containers sharp-ish, interactive softer, pill full */
|
|
399
|
+
--radius-container: 6px;
|
|
400
|
+
--radius-interactive: 10px;
|
|
401
|
+
--radius-pill: 9999px;
|
|
402
|
+
/* Geometry axis - hairline borders */
|
|
403
|
+
--border-hairline: 1px;
|
|
404
|
+
--border-standard: 1px;
|
|
405
|
+
--border-heavy: 2px;
|
|
406
|
+
}
|