@yuva-devlab/tokens 1.0.0 → 1.1.1
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 +7 -34
- package/dist/index.cjs +23 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +16 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/preset.css +408 -0
- package/dist/root.css +91 -0
- package/dist/styles.css +12 -0
- package/{src/themes/theme-finai.css → dist/themes/finai.css} +86 -4
- package/dist/themes/orchestrai.css +205 -0
- package/package.json +35 -10
- package/styles/preset.css +408 -0
- package/styles/root.css +91 -0
- package/styles/styles.css +12 -0
- package/styles/themes/finai.css +192 -0
- package/styles/themes/orchestrai.css +205 -0
- package/src/preset.css +0 -159
- package/src/styles.css +0 -2
- package/src/themes/theme-orchestrai.css +0 -45
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Yuva DevLab Design System — Tailwind CSS 4 Preset Bridge
|
|
3
|
+
*
|
|
4
|
+
* Maps standard design tokens and CSS custom properties to Tailwind utility classes.
|
|
5
|
+
* Acts as the universal preset and neutral baseline when no brands are mapped.
|
|
6
|
+
* Zero individual brand tokens are declared here.
|
|
7
|
+
* Can be consumed downstream via: `@import "@yuva-devlab/tokens/preset.css";`
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/* ── Neutral Fallback Baseline (Active when no brands are mapped) ─────────── */
|
|
11
|
+
:root {
|
|
12
|
+
--radius: 0.75rem;
|
|
13
|
+
|
|
14
|
+
/* Surfaces */
|
|
15
|
+
--background: oklch(0.985 0 0);
|
|
16
|
+
--foreground: oklch(0.18 0.01 260);
|
|
17
|
+
--card: oklch(1 0 0);
|
|
18
|
+
--card-foreground: oklch(0.18 0.01 260);
|
|
19
|
+
--popover: oklch(1 0 0);
|
|
20
|
+
--popover-foreground: oklch(0.18 0.01 260);
|
|
21
|
+
|
|
22
|
+
/* Core Neutral Action */
|
|
23
|
+
--primary: oklch(0.35 0.04 260);
|
|
24
|
+
--primary-foreground: oklch(0.99 0 0);
|
|
25
|
+
--secondary: oklch(0.96 0.005 260);
|
|
26
|
+
--secondary-foreground: oklch(0.2 0.01 260);
|
|
27
|
+
|
|
28
|
+
/* Muted / Accent */
|
|
29
|
+
--muted: oklch(0.96 0.005 260);
|
|
30
|
+
--muted-foreground: oklch(0.5 0.01 260);
|
|
31
|
+
--accent: oklch(0.94 0.01 260);
|
|
32
|
+
--accent-foreground: oklch(0.2 0.01 260);
|
|
33
|
+
|
|
34
|
+
/* System Status Feedback */
|
|
35
|
+
--destructive: oklch(0.6 0.22 25);
|
|
36
|
+
--destructive-foreground: oklch(0.99 0 0);
|
|
37
|
+
--warning: oklch(0.75 0.14 80);
|
|
38
|
+
--warning-foreground: oklch(0.2 0.02 80);
|
|
39
|
+
--success: oklch(0.65 0.15 150);
|
|
40
|
+
--success-foreground: oklch(0.99 0 0);
|
|
41
|
+
--info: oklch(0.68 0.13 245);
|
|
42
|
+
--info-foreground: oklch(0.99 0 0);
|
|
43
|
+
|
|
44
|
+
/* Form & Interactive */
|
|
45
|
+
--border: oklch(0.92 0.005 260);
|
|
46
|
+
--input: oklch(0.92 0.005 260);
|
|
47
|
+
--ring: oklch(0.35 0.04 260);
|
|
48
|
+
|
|
49
|
+
/* Surfaces & Overlay */
|
|
50
|
+
--surface: oklch(1 0 0 / 70%);
|
|
51
|
+
--surface-2: oklch(0.975 0.005 260);
|
|
52
|
+
--overlay: oklch(0.985 0 0 / 80%);
|
|
53
|
+
|
|
54
|
+
/* Navigation & Sidebar */
|
|
55
|
+
--sidebar: oklch(1 0 0);
|
|
56
|
+
--sidebar-foreground: oklch(0.18 0.01 260);
|
|
57
|
+
--sidebar-primary: oklch(0.35 0.04 260);
|
|
58
|
+
--sidebar-primary-foreground: oklch(0.99 0 0);
|
|
59
|
+
--sidebar-accent: oklch(0.95 0.01 260);
|
|
60
|
+
--sidebar-accent-foreground: oklch(0.2 0.01 260);
|
|
61
|
+
--sidebar-border: oklch(0.92 0.005 260);
|
|
62
|
+
--sidebar-ring: oklch(0.35 0.04 260);
|
|
63
|
+
|
|
64
|
+
/* Charts */
|
|
65
|
+
--chart-1: oklch(0.6 0.15 250);
|
|
66
|
+
--chart-2: oklch(0.65 0.15 150);
|
|
67
|
+
--chart-3: oklch(0.7 0.12 70);
|
|
68
|
+
--chart-4: oklch(0.75 0.14 80);
|
|
69
|
+
--chart-5: oklch(0.6 0.18 25);
|
|
70
|
+
|
|
71
|
+
/* Sizing, Spacing & Layout */
|
|
72
|
+
--control-height-xs: 1.75rem;
|
|
73
|
+
--control-height-sm: 2rem;
|
|
74
|
+
--control-height-md: 2.25rem;
|
|
75
|
+
--control-height-lg: 2.5rem;
|
|
76
|
+
--control-height-xl: 3rem;
|
|
77
|
+
|
|
78
|
+
--icon-xs: 0.875rem;
|
|
79
|
+
--icon-sm: 1rem;
|
|
80
|
+
--icon-md: 1.25rem;
|
|
81
|
+
--icon-lg: 1.5rem;
|
|
82
|
+
--icon-xl: 2rem;
|
|
83
|
+
|
|
84
|
+
--space-1: 0.25rem;
|
|
85
|
+
--space-2: 0.5rem;
|
|
86
|
+
--space-3: 0.75rem;
|
|
87
|
+
--space-4: 1rem;
|
|
88
|
+
--space-5: 1.25rem;
|
|
89
|
+
--space-6: 1.5rem;
|
|
90
|
+
--space-8: 2rem;
|
|
91
|
+
--space-10: 2.5rem;
|
|
92
|
+
|
|
93
|
+
--card-padding: var(--space-4);
|
|
94
|
+
--dialog-padding: var(--space-5);
|
|
95
|
+
--form-field-gap: var(--space-3);
|
|
96
|
+
--section-gap: var(--space-5);
|
|
97
|
+
--table-row-padding-x: var(--space-4);
|
|
98
|
+
--table-row-padding-y: var(--space-3);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.dark,
|
|
102
|
+
[data-theme="dark"] {
|
|
103
|
+
--radius: 0.75rem;
|
|
104
|
+
|
|
105
|
+
/* Surfaces */
|
|
106
|
+
--background: oklch(0.16 0.01 260);
|
|
107
|
+
--foreground: oklch(0.97 0.003 260);
|
|
108
|
+
--card: oklch(0.2 0.01 260);
|
|
109
|
+
--card-foreground: oklch(0.97 0.003 260);
|
|
110
|
+
--popover: oklch(0.2 0.01 260);
|
|
111
|
+
--popover-foreground: oklch(0.97 0.003 260);
|
|
112
|
+
|
|
113
|
+
/* Core Neutral Action */
|
|
114
|
+
--primary: oklch(0.75 0.05 260);
|
|
115
|
+
--primary-foreground: oklch(0.15 0.01 260);
|
|
116
|
+
--secondary: oklch(0.25 0.01 260);
|
|
117
|
+
--secondary-foreground: oklch(0.97 0.003 260);
|
|
118
|
+
|
|
119
|
+
/* Muted / Accent */
|
|
120
|
+
--muted: oklch(0.25 0.01 260);
|
|
121
|
+
--muted-foreground: oklch(0.7 0.01 260);
|
|
122
|
+
--accent: oklch(0.3 0.02 260);
|
|
123
|
+
--accent-foreground: oklch(0.95 0.005 260);
|
|
124
|
+
|
|
125
|
+
/* System Status Feedback */
|
|
126
|
+
--destructive: oklch(0.65 0.2 25);
|
|
127
|
+
--destructive-foreground: oklch(0.97 0.003 0);
|
|
128
|
+
--warning: oklch(0.75 0.14 80);
|
|
129
|
+
--warning-foreground: oklch(0.15 0.02 80);
|
|
130
|
+
--success: oklch(0.7 0.15 150);
|
|
131
|
+
--success-foreground: oklch(0.15 0.01 260);
|
|
132
|
+
--info: oklch(0.72 0.12 245);
|
|
133
|
+
--info-foreground: oklch(0.15 0.01 260);
|
|
134
|
+
|
|
135
|
+
/* Form & Interactive */
|
|
136
|
+
--border: oklch(1 0 0 / 10%);
|
|
137
|
+
--input: oklch(1 0 0 / 14%);
|
|
138
|
+
--ring: oklch(0.75 0.05 260);
|
|
139
|
+
|
|
140
|
+
/* Surfaces & Overlay */
|
|
141
|
+
--surface: oklch(0.22 0.01 260 / 70%);
|
|
142
|
+
--surface-2: oklch(0.235 0.01 260);
|
|
143
|
+
--overlay: oklch(0.11 0.01 260 / 80%);
|
|
144
|
+
|
|
145
|
+
/* Navigation & Sidebar */
|
|
146
|
+
--sidebar: oklch(0.18 0.01 260);
|
|
147
|
+
--sidebar-foreground: oklch(0.97 0.003 260);
|
|
148
|
+
--sidebar-primary: oklch(0.75 0.05 260);
|
|
149
|
+
--sidebar-primary-foreground: oklch(0.15 0.01 260);
|
|
150
|
+
--sidebar-accent: oklch(0.26 0.01 260);
|
|
151
|
+
--sidebar-accent-foreground: oklch(0.97 0.003 260);
|
|
152
|
+
--sidebar-border: oklch(1 0 0 / 10%);
|
|
153
|
+
--sidebar-ring: oklch(0.75 0.05 260);
|
|
154
|
+
|
|
155
|
+
/* Charts */
|
|
156
|
+
--chart-1: oklch(0.7 0.15 250);
|
|
157
|
+
--chart-2: oklch(0.72 0.15 150);
|
|
158
|
+
--chart-3: oklch(0.75 0.12 70);
|
|
159
|
+
--chart-4: oklch(0.8 0.14 80);
|
|
160
|
+
--chart-5: oklch(0.65 0.18 25);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
@theme inline {
|
|
164
|
+
/* ── Radii Mappings ─────────────────────────────────────────────── */
|
|
165
|
+
--radius-sm: calc(var(--radius, 0.5rem) - 4px);
|
|
166
|
+
--radius-md: calc(var(--radius, 0.5rem) - 2px);
|
|
167
|
+
--radius-lg: var(--radius, 0.5rem);
|
|
168
|
+
--radius-xl: calc(var(--radius, 0.5rem) + 4px);
|
|
169
|
+
--radius-2xl: calc(var(--radius, 0.5rem) + 8px);
|
|
170
|
+
--radius-3xl: calc(var(--radius, 0.5rem) + 12px);
|
|
171
|
+
--radius-4xl: calc(var(--radius, 0.5rem) + 16px);
|
|
172
|
+
|
|
173
|
+
/* ── Semantic Color Tokens ─────────────────────────────────────── */
|
|
174
|
+
--color-background: var(--background);
|
|
175
|
+
--color-foreground: var(--foreground);
|
|
176
|
+
--color-card: var(--card);
|
|
177
|
+
--color-card-foreground: var(--card-foreground);
|
|
178
|
+
--color-popover: var(--popover);
|
|
179
|
+
--color-popover-foreground: var(--popover-foreground);
|
|
180
|
+
--color-primary: var(--primary);
|
|
181
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
182
|
+
--color-secondary: var(--secondary);
|
|
183
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
184
|
+
--color-muted: var(--muted);
|
|
185
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
186
|
+
--color-accent: var(--accent);
|
|
187
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
188
|
+
--color-destructive: var(--destructive);
|
|
189
|
+
--color-destructive-foreground: var(--destructive-foreground);
|
|
190
|
+
--color-border: var(--border);
|
|
191
|
+
--color-input: var(--input);
|
|
192
|
+
--color-ring: var(--ring);
|
|
193
|
+
|
|
194
|
+
/* ── Contextual System Colors ──────────────────────────────────── */
|
|
195
|
+
--color-success: var(--success);
|
|
196
|
+
--color-success-foreground: var(--success-foreground);
|
|
197
|
+
--color-warning: var(--warning);
|
|
198
|
+
--color-warning-foreground: var(--warning-foreground);
|
|
199
|
+
--color-info: var(--info);
|
|
200
|
+
--color-info-foreground: var(--info-foreground);
|
|
201
|
+
--color-overlay: var(--overlay);
|
|
202
|
+
|
|
203
|
+
/* ── Glass / Surface Tokens ───────────────────────────────────── */
|
|
204
|
+
--color-surface: var(--surface);
|
|
205
|
+
--color-surface-2: var(--surface-2);
|
|
206
|
+
|
|
207
|
+
/* ── Navigation & Sidebar ──────────────────────────────────────── */
|
|
208
|
+
--color-sidebar: var(--sidebar);
|
|
209
|
+
--color-sidebar-foreground: var(--sidebar-foreground);
|
|
210
|
+
--color-sidebar-primary: var(--sidebar-primary);
|
|
211
|
+
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
|
|
212
|
+
--color-sidebar-accent: var(--sidebar-accent);
|
|
213
|
+
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
|
214
|
+
--color-sidebar-border: var(--sidebar-border);
|
|
215
|
+
--color-sidebar-ring: var(--sidebar-ring);
|
|
216
|
+
|
|
217
|
+
/* ── Visual Data Telemetry (Charts) ──────────────────────────────── */
|
|
218
|
+
--color-chart-1: var(--chart-1);
|
|
219
|
+
--color-chart-2: var(--chart-2);
|
|
220
|
+
--color-chart-3: var(--chart-3);
|
|
221
|
+
--color-chart-4: var(--chart-4);
|
|
222
|
+
--color-chart-5: var(--chart-5);
|
|
223
|
+
|
|
224
|
+
/* ── Component Control Dimensions ─────────────────────────────────── */
|
|
225
|
+
--height-control-xs: var(--control-height-xs, 1.75rem);
|
|
226
|
+
--height-control-sm: var(--control-height-sm, 2rem);
|
|
227
|
+
--height-control-md: var(--control-height-md, 2.25rem);
|
|
228
|
+
--height-control-lg: var(--control-height-lg, 2.5rem);
|
|
229
|
+
--height-control-xl: var(--control-height-xl, 3rem);
|
|
230
|
+
|
|
231
|
+
/* ── Icon Sizing Tokens ───────────────────────────────────────────── */
|
|
232
|
+
--size-icon-xs: var(--icon-xs, 0.875rem);
|
|
233
|
+
--size-icon-sm: var(--icon-sm, 1rem);
|
|
234
|
+
--size-icon-md: var(--icon-md, 1.25rem);
|
|
235
|
+
--size-icon-lg: var(--icon-lg, 1.5rem);
|
|
236
|
+
--size-icon-xl: var(--icon-xl, 2rem);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* ── Cybernetic Grid & Graph Topologies ──────────────────────────────────── */
|
|
240
|
+
@utility execution-grid {
|
|
241
|
+
background-image:
|
|
242
|
+
linear-gradient(var(--border) 1px, transparent 1px),
|
|
243
|
+
linear-gradient(90deg, var(--border) 1px, transparent 1px);
|
|
244
|
+
background-size: 36px 36px;
|
|
245
|
+
mask-image: linear-gradient(to bottom, black, transparent 72%);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@utility topology-grid {
|
|
249
|
+
background-image: radial-gradient(
|
|
250
|
+
circle at center,
|
|
251
|
+
var(--border) 1px,
|
|
252
|
+
transparent 1px
|
|
253
|
+
);
|
|
254
|
+
background-size: 18px 18px;
|
|
255
|
+
mask-image: linear-gradient(
|
|
256
|
+
90deg,
|
|
257
|
+
transparent,
|
|
258
|
+
black 15%,
|
|
259
|
+
black 85%,
|
|
260
|
+
transparent
|
|
261
|
+
);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
/* ── Glass Morphism Utility ────────────────────────────────────────────── */
|
|
265
|
+
@utility glass {
|
|
266
|
+
background-color: var(--surface);
|
|
267
|
+
backdrop-filter: blur(16px) saturate(140%);
|
|
268
|
+
-webkit-backdrop-filter: blur(16px) saturate(140%);
|
|
269
|
+
border: 1px solid var(--border);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* ── Mesh Background Gradient ─────────────────────────────────────────── */
|
|
273
|
+
@utility mesh-bg {
|
|
274
|
+
background-image:
|
|
275
|
+
radial-gradient(
|
|
276
|
+
60rem 30rem at 12% -10%,
|
|
277
|
+
color-mix(in oklch, var(--primary) 16%, transparent),
|
|
278
|
+
transparent 70%
|
|
279
|
+
),
|
|
280
|
+
radial-gradient(
|
|
281
|
+
50rem 26rem at 95% 0%,
|
|
282
|
+
color-mix(in oklch, var(--info) 14%, transparent),
|
|
283
|
+
transparent 70%
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/* ── Text Gradient Utility ─────────────────────────────────────────────── */
|
|
288
|
+
@utility text-gradient {
|
|
289
|
+
background-image: linear-gradient(
|
|
290
|
+
100deg,
|
|
291
|
+
var(--foreground) 10%,
|
|
292
|
+
color-mix(in oklch, var(--primary) 85%, var(--foreground)) 60%
|
|
293
|
+
);
|
|
294
|
+
background-clip: text;
|
|
295
|
+
color: transparent;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
/* ── Live Agent Telemetry Animations ─────────────────────────────────────── */
|
|
299
|
+
@utility animate-agent-pulse {
|
|
300
|
+
animation: agent-pulse 1.8s ease-in-out infinite;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
@utility animate-signal-travel {
|
|
304
|
+
animation: signal-travel 1.5s linear infinite;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
@utility animate-progress-flow {
|
|
308
|
+
animation: progress-flow 1.8s ease-in-out infinite;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@utility runner-enter {
|
|
312
|
+
animation: runner-enter 260ms ease-out both;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/* ── Pulse Ring Animation (status indicator) ───────────────────────────── */
|
|
316
|
+
@utility pulse-dot {
|
|
317
|
+
animation: pulse-ring 1.8s ease-out infinite;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
@keyframes pulse-ring {
|
|
321
|
+
0% {
|
|
322
|
+
box-shadow: 0 0 0 0 color-mix(in oklch, var(--primary) 45%, transparent);
|
|
323
|
+
}
|
|
324
|
+
100% {
|
|
325
|
+
box-shadow: 0 0 0 8px transparent;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
@keyframes agent-pulse {
|
|
330
|
+
0%,
|
|
331
|
+
100% {
|
|
332
|
+
opacity: 0.55;
|
|
333
|
+
transform: scale(0.9);
|
|
334
|
+
}
|
|
335
|
+
50% {
|
|
336
|
+
opacity: 1;
|
|
337
|
+
transform: scale(1.15);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
@keyframes signal-travel {
|
|
342
|
+
from {
|
|
343
|
+
left: 0;
|
|
344
|
+
}
|
|
345
|
+
to {
|
|
346
|
+
left: calc(100% - 0.5rem);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
@keyframes progress-flow {
|
|
351
|
+
0%,
|
|
352
|
+
100% {
|
|
353
|
+
opacity: 0.55;
|
|
354
|
+
}
|
|
355
|
+
50% {
|
|
356
|
+
opacity: 1;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
@keyframes runner-enter {
|
|
361
|
+
from {
|
|
362
|
+
opacity: 0;
|
|
363
|
+
transform: translateY(6px);
|
|
364
|
+
}
|
|
365
|
+
to {
|
|
366
|
+
opacity: 1;
|
|
367
|
+
transform: translateY(0);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/* ── Sonner Toast Semantic Feedback Styles ────────────────────────────────── */
|
|
372
|
+
[data-sonner-toaster] [data-sonner-toast] {
|
|
373
|
+
border-radius: var(--radius-md, 0.375rem);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="success"] {
|
|
377
|
+
border-color: color-mix(in oklch, var(--success) 35%, transparent);
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="success"] [data-icon] {
|
|
381
|
+
color: var(--success);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="error"],
|
|
385
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="destructive"] {
|
|
386
|
+
border-color: color-mix(in oklch, var(--destructive) 35%, transparent);
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="error"] [data-icon],
|
|
390
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="destructive"] [data-icon] {
|
|
391
|
+
color: var(--destructive);
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="warning"] {
|
|
395
|
+
border-color: color-mix(in oklch, var(--warning) 35%, transparent);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="warning"] [data-icon] {
|
|
399
|
+
color: var(--warning);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="info"] {
|
|
403
|
+
border-color: color-mix(in oklch, var(--info) 35%, transparent);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
[data-sonner-toaster] [data-sonner-toast][data-type="info"] [data-icon] {
|
|
407
|
+
color: var(--info);
|
|
408
|
+
}
|
package/styles/root.css
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/styles/root.css
|
|
3
|
+
* @description Baseline normalizations, CSS variables, and interactive element resets.
|
|
4
|
+
* Pure CSS — zero Tailwind dependency.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
@layer dl-base {
|
|
8
|
+
/* ── Interactive Cursors ───────────────────────────────────────────── */
|
|
9
|
+
button,
|
|
10
|
+
a,
|
|
11
|
+
select,
|
|
12
|
+
summary,
|
|
13
|
+
[role="button"],
|
|
14
|
+
[role="tab"],
|
|
15
|
+
[type="button"],
|
|
16
|
+
[type="submit"],
|
|
17
|
+
[type="reset"] {
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
button:disabled,
|
|
22
|
+
a[aria-disabled="true"],
|
|
23
|
+
[aria-disabled="true"],
|
|
24
|
+
[type="button"]:disabled,
|
|
25
|
+
[type="submit"]:disabled {
|
|
26
|
+
cursor: not-allowed;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* ── Interactive Focus Normalization ───────────────────────────────── */
|
|
30
|
+
:focus:not(:focus-visible) {
|
|
31
|
+
outline: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ── Text Selection ────────────────────────────────────────────────── */
|
|
35
|
+
::selection {
|
|
36
|
+
background: color-mix(in oklab, var(--primary) 28%, transparent);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ── Scrollbars ────────────────────────────────────────────────────── */
|
|
40
|
+
* {
|
|
41
|
+
scrollbar-width: thin;
|
|
42
|
+
scrollbar-color: var(--border) transparent;
|
|
43
|
+
}
|
|
44
|
+
::-webkit-scrollbar {
|
|
45
|
+
width: 6px;
|
|
46
|
+
height: 6px;
|
|
47
|
+
}
|
|
48
|
+
::-webkit-scrollbar-track {
|
|
49
|
+
background: transparent;
|
|
50
|
+
}
|
|
51
|
+
::-webkit-scrollbar-thumb {
|
|
52
|
+
background: var(--border);
|
|
53
|
+
border-radius: 9999px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ── Form Typography Inheritance ───────────────────────────────────── */
|
|
57
|
+
button,
|
|
58
|
+
input,
|
|
59
|
+
select,
|
|
60
|
+
textarea {
|
|
61
|
+
letter-spacing: 0;
|
|
62
|
+
font-family: inherit;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/*
|
|
66
|
+
* Radix Select — Item relative positioning anchor.
|
|
67
|
+
* Ensures stacking context for the indicator (absolute right-2).
|
|
68
|
+
*/
|
|
69
|
+
[role="option"] {
|
|
70
|
+
position: relative;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
* Breadcrumb Separator SVG Sizing
|
|
75
|
+
*/
|
|
76
|
+
[data-slot="breadcrumb-separator"] svg {
|
|
77
|
+
width: 0.875rem;
|
|
78
|
+
height: 0.875rem;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* ── Reduced Motion ────────────────────────────────────────────────── */
|
|
82
|
+
@media (prefers-reduced-motion: reduce) {
|
|
83
|
+
*,
|
|
84
|
+
*::before,
|
|
85
|
+
*::after {
|
|
86
|
+
animation-duration: 0.01ms !important;
|
|
87
|
+
animation-iteration-count: 1 !important;
|
|
88
|
+
scroll-behavior: auto !important;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file src/styles/styles.css
|
|
3
|
+
* @description Master stylesheet for @yuva-devlab/tokens.
|
|
4
|
+
* Contains base CSS custom properties, theme definitions, and design tokens.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* ── Base Normalization & Design Tokens ──────────────────────────────────── */
|
|
8
|
+
@import "./root.css";
|
|
9
|
+
|
|
10
|
+
/* ── Brand Scoped Themes ─────────────────────────────────────────────────── */
|
|
11
|
+
@import "./themes/finai.css";
|
|
12
|
+
@import "./themes/orchestrai.css";
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FinAI Theme Preset — Emerald / Forest Green Palette
|
|
3
|
+
* Modern OKLCH color spaces optimized for trust, clarity, and financial wellness.
|
|
4
|
+
* High-specificity scoped tokens for FinAI applications.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/* ── FinAI Theme — Light Mode ─────────────────────────────────────────── */
|
|
8
|
+
[data-brand="finai"],
|
|
9
|
+
[data-theme="finai"],
|
|
10
|
+
[data-theme="finai-light"],
|
|
11
|
+
:root[data-brand="finai"],
|
|
12
|
+
:root[data-theme="finai"],
|
|
13
|
+
:root[data-theme="finai-light"] {
|
|
14
|
+
--radius: 0.75rem;
|
|
15
|
+
|
|
16
|
+
/* Surfaces */
|
|
17
|
+
--background: oklch(0.985 0.001 247);
|
|
18
|
+
--foreground: oklch(0.21 0.02 260);
|
|
19
|
+
--card: oklch(1 0 0);
|
|
20
|
+
--card-foreground: oklch(0.21 0.02 260);
|
|
21
|
+
--popover: oklch(1 0 0);
|
|
22
|
+
--popover-foreground: oklch(0.21 0.02 260);
|
|
23
|
+
|
|
24
|
+
/* Brand */
|
|
25
|
+
--primary: oklch(0.63 0.14 156);
|
|
26
|
+
--primary-foreground: oklch(0.99 0.005 150);
|
|
27
|
+
--secondary: oklch(0.965 0.003 260);
|
|
28
|
+
--secondary-foreground: oklch(0.21 0.02 260);
|
|
29
|
+
|
|
30
|
+
/* Muted / Accent */
|
|
31
|
+
--muted: oklch(0.965 0.003 260);
|
|
32
|
+
--muted-foreground: oklch(0.52 0.015 260);
|
|
33
|
+
--accent: oklch(0.95 0.03 156);
|
|
34
|
+
--accent-foreground: oklch(0.35 0.09 156);
|
|
35
|
+
|
|
36
|
+
/* Status */
|
|
37
|
+
--destructive: oklch(0.6 0.22 25);
|
|
38
|
+
--destructive-foreground: oklch(0.99 0.005 0);
|
|
39
|
+
--warning: oklch(0.75 0.14 80);
|
|
40
|
+
--warning-foreground: oklch(0.2 0.02 80);
|
|
41
|
+
--success: oklch(0.63 0.14 156);
|
|
42
|
+
--success-foreground: oklch(0.99 0.005 150);
|
|
43
|
+
--info: oklch(0.68 0.12 245);
|
|
44
|
+
--info-foreground: oklch(0.99 0.005 245);
|
|
45
|
+
|
|
46
|
+
/* Form / Ring */
|
|
47
|
+
--border: oklch(0.92 0.005 260);
|
|
48
|
+
--input: oklch(0.92 0.005 260);
|
|
49
|
+
--ring: oklch(0.63 0.14 156);
|
|
50
|
+
|
|
51
|
+
/* Glass / Surface Tokens */
|
|
52
|
+
--surface: oklch(1 0 0 / 70%);
|
|
53
|
+
--surface-2: oklch(0.975 0.003 260);
|
|
54
|
+
--overlay: oklch(0.985 0.001 247 / 80%);
|
|
55
|
+
|
|
56
|
+
/* Navigation & Sidebar */
|
|
57
|
+
--sidebar: oklch(1 0 0);
|
|
58
|
+
--sidebar-foreground: oklch(0.21 0.02 260);
|
|
59
|
+
--sidebar-primary: oklch(0.63 0.14 156);
|
|
60
|
+
--sidebar-primary-foreground: oklch(0.99 0.005 150);
|
|
61
|
+
--sidebar-accent: oklch(0.95 0.03 156);
|
|
62
|
+
--sidebar-accent-foreground: oklch(0.35 0.09 156);
|
|
63
|
+
--sidebar-border: oklch(0.93 0.005 260);
|
|
64
|
+
--sidebar-ring: oklch(0.63 0.14 156);
|
|
65
|
+
|
|
66
|
+
/* Visual Data Telemetry (Charts) */
|
|
67
|
+
--chart-1: oklch(0.63 0.14 156);
|
|
68
|
+
--chart-2: oklch(0.55 0.02 260);
|
|
69
|
+
--chart-3: oklch(0.75 0.04 156);
|
|
70
|
+
--chart-4: oklch(0.7 0.15 60);
|
|
71
|
+
--chart-5: oklch(0.6 0.18 25);
|
|
72
|
+
|
|
73
|
+
/* ── Financial Flow Tokens (Income, Expense, Investment) ───────────────── */
|
|
74
|
+
--income: var(--primary);
|
|
75
|
+
--income-foreground: var(--primary-foreground);
|
|
76
|
+
--expense: var(--destructive);
|
|
77
|
+
--expense-foreground: var(--destructive-foreground);
|
|
78
|
+
--investment: oklch(0.62 0.19 260);
|
|
79
|
+
--investment-foreground: oklch(0.99 0.005 260);
|
|
80
|
+
|
|
81
|
+
/* ── Sizing, Spacing & Layout Tokens ───────────────────────────────────── */
|
|
82
|
+
--control-height-xs: 1.75rem;
|
|
83
|
+
--control-height-sm: 2rem;
|
|
84
|
+
--control-height-md: 2.375rem;
|
|
85
|
+
--control-height-lg: 2.75rem;
|
|
86
|
+
--control-height-xl: 3.25rem;
|
|
87
|
+
|
|
88
|
+
--icon-xs: 0.75rem;
|
|
89
|
+
--icon-sm: 0.875rem;
|
|
90
|
+
--icon-md: 1rem;
|
|
91
|
+
--icon-lg: 1.25rem;
|
|
92
|
+
--icon-xl: 1.5rem;
|
|
93
|
+
|
|
94
|
+
--space-1: 0.25rem;
|
|
95
|
+
--space-2: 0.5rem;
|
|
96
|
+
--space-3: 0.75rem;
|
|
97
|
+
--space-4: 1rem;
|
|
98
|
+
--space-5: 1.25rem;
|
|
99
|
+
--space-6: 1.5rem;
|
|
100
|
+
--space-8: 2rem;
|
|
101
|
+
--space-10: 2.5rem;
|
|
102
|
+
|
|
103
|
+
--card-padding: var(--space-5);
|
|
104
|
+
--dialog-padding: var(--space-6);
|
|
105
|
+
--form-field-gap: var(--space-4);
|
|
106
|
+
--section-gap: var(--space-6);
|
|
107
|
+
--table-row-padding-x: var(--space-6);
|
|
108
|
+
--table-row-padding-y: var(--space-4);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* ── FinAI Theme — Dark Mode ──────────────────────────────────────────── */
|
|
112
|
+
[data-theme="finai-dark"],
|
|
113
|
+
[data-brand="finai"][data-theme="dark"],
|
|
114
|
+
[data-brand="finai"][data-theme="finai-dark"],
|
|
115
|
+
[data-brand="finai"].dark,
|
|
116
|
+
[data-brand="finai"] .dark,
|
|
117
|
+
[data-theme="finai"] .dark,
|
|
118
|
+
.dark [data-brand="finai"],
|
|
119
|
+
.dark [data-theme="finai"],
|
|
120
|
+
:root[data-theme="finai-dark"],
|
|
121
|
+
:root[data-brand="finai"].dark,
|
|
122
|
+
:root[data-brand="finai"][data-theme="dark"],
|
|
123
|
+
:root[data-brand="finai"][data-theme="finai-dark"],
|
|
124
|
+
:root.dark[data-brand="finai"],
|
|
125
|
+
:root.dark[data-theme="finai"] {
|
|
126
|
+
--radius: 0.75rem;
|
|
127
|
+
|
|
128
|
+
/* Surfaces */
|
|
129
|
+
--background: oklch(0.16 0.015 260);
|
|
130
|
+
--foreground: oklch(0.97 0.003 260);
|
|
131
|
+
--card: oklch(0.2 0.015 260);
|
|
132
|
+
--card-foreground: oklch(0.97 0.003 260);
|
|
133
|
+
--popover: oklch(0.2 0.015 260);
|
|
134
|
+
--popover-foreground: oklch(0.97 0.003 260);
|
|
135
|
+
|
|
136
|
+
/* Brand */
|
|
137
|
+
--primary: oklch(0.7 0.15 156);
|
|
138
|
+
--primary-foreground: oklch(0.15 0.02 260);
|
|
139
|
+
--secondary: oklch(0.25 0.015 260);
|
|
140
|
+
--secondary-foreground: oklch(0.97 0.003 260);
|
|
141
|
+
|
|
142
|
+
/* Muted / Accent */
|
|
143
|
+
--muted: oklch(0.25 0.015 260);
|
|
144
|
+
--muted-foreground: oklch(0.7 0.01 260);
|
|
145
|
+
--accent: oklch(0.3 0.05 156);
|
|
146
|
+
--accent-foreground: oklch(0.9 0.08 156);
|
|
147
|
+
|
|
148
|
+
/* Status */
|
|
149
|
+
--destructive: oklch(0.65 0.2 25);
|
|
150
|
+
--destructive-foreground: oklch(0.97 0.003 0);
|
|
151
|
+
--warning: oklch(0.75 0.14 80);
|
|
152
|
+
--warning-foreground: oklch(0.15 0.02 80);
|
|
153
|
+
--success: oklch(0.7 0.15 156);
|
|
154
|
+
--success-foreground: oklch(0.15 0.02 260);
|
|
155
|
+
--info: oklch(0.72 0.12 245);
|
|
156
|
+
--info-foreground: oklch(0.15 0.02 260);
|
|
157
|
+
|
|
158
|
+
/* Form / Ring */
|
|
159
|
+
--border: oklch(1 0 0 / 8%);
|
|
160
|
+
--input: oklch(1 0 0 / 12%);
|
|
161
|
+
--ring: oklch(0.7 0.15 156);
|
|
162
|
+
|
|
163
|
+
/* Glass / Surface Tokens */
|
|
164
|
+
--surface: oklch(0.2 0.015 260 / 70%);
|
|
165
|
+
--surface-2: oklch(0.235 0.015 260);
|
|
166
|
+
--overlay: oklch(0.12 0.015 260 / 80%);
|
|
167
|
+
|
|
168
|
+
/* Navigation & Sidebar */
|
|
169
|
+
--sidebar: oklch(0.18 0.015 260);
|
|
170
|
+
--sidebar-foreground: oklch(0.97 0.003 260);
|
|
171
|
+
--sidebar-primary: oklch(0.7 0.15 156);
|
|
172
|
+
--sidebar-primary-foreground: oklch(0.15 0.02 260);
|
|
173
|
+
--sidebar-accent: oklch(0.26 0.03 156);
|
|
174
|
+
--sidebar-accent-foreground: oklch(0.97 0.003 260);
|
|
175
|
+
--sidebar-border: oklch(1 0 0 / 8%);
|
|
176
|
+
--sidebar-ring: oklch(0.7 0.15 156);
|
|
177
|
+
|
|
178
|
+
/* Visual Data Telemetry (Charts) */
|
|
179
|
+
--chart-1: oklch(0.7 0.15 156);
|
|
180
|
+
--chart-2: oklch(0.6 0.02 260);
|
|
181
|
+
--chart-3: oklch(0.8 0.04 156);
|
|
182
|
+
--chart-4: oklch(0.75 0.15 60);
|
|
183
|
+
--chart-5: oklch(0.65 0.2 25);
|
|
184
|
+
|
|
185
|
+
/* ── Financial Flow Tokens (Income, Expense, Investment) ───────────────── */
|
|
186
|
+
--income: var(--primary);
|
|
187
|
+
--income-foreground: var(--primary-foreground);
|
|
188
|
+
--expense: var(--destructive);
|
|
189
|
+
--expense-foreground: var(--destructive-foreground);
|
|
190
|
+
--investment: oklch(0.68 0.19 260);
|
|
191
|
+
--investment-foreground: oklch(0.97 0.003 260);
|
|
192
|
+
}
|