@melodicdev/components 1.0.1 → 1.0.3

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.
@@ -0,0 +1,671 @@
1
+ /* @melodicdev/components — melodic.css
2
+ * Includes: Phosphor icon fonts, design tokens, light theme, dark theme.
3
+ * Source: https://github.com/MelodicDevelopment/melodic
4
+ */
5
+
6
+ /* ─── Phosphor Icon Fonts ─────────────────────────────────────────────────── */
7
+
8
+ @font-face {
9
+ font-family: 'Phosphor-Bold';
10
+ src:
11
+ url('./fonts/phosphor/Phosphor-Bold.woff2') format('woff2'),
12
+ url('./fonts/phosphor/Phosphor-Bold.woff') format('woff'),
13
+ url('./fonts/phosphor/Phosphor-Bold.ttf') format('truetype'),
14
+ url('./fonts/phosphor/Phosphor-Bold.svg#Phosphor-Bold') format('svg');
15
+ font-weight: normal;
16
+ font-style: normal;
17
+ font-display: block;
18
+ }
19
+
20
+ @font-face {
21
+ font-family: 'Phosphor-Fill';
22
+ src:
23
+ url('./fonts/phosphor/Phosphor-Fill.woff2') format('woff2'),
24
+ url('./fonts/phosphor/Phosphor-Fill.woff') format('woff'),
25
+ url('./fonts/phosphor/Phosphor-Fill.ttf') format('truetype'),
26
+ url('./fonts/phosphor/Phosphor-Fill.svg#Phosphor-Fill') format('svg');
27
+ font-weight: normal;
28
+ font-style: normal;
29
+ font-display: block;
30
+ }
31
+
32
+ @font-face {
33
+ font-family: 'Phosphor-Light';
34
+ src:
35
+ url('./fonts/phosphor/Phosphor-Light.woff2') format('woff2'),
36
+ url('./fonts/phosphor/Phosphor-Light.woff') format('woff'),
37
+ url('./fonts/phosphor/Phosphor-Light.ttf') format('truetype'),
38
+ url('./fonts/phosphor/Phosphor-Light.svg#Phosphor-Light') format('svg');
39
+ font-weight: normal;
40
+ font-style: normal;
41
+ font-display: block;
42
+ }
43
+
44
+ @font-face {
45
+ font-family: 'Phosphor';
46
+ src:
47
+ url('./fonts/phosphor/Phosphor.woff2') format('woff2'),
48
+ url('./fonts/phosphor/Phosphor.woff') format('woff'),
49
+ url('./fonts/phosphor/Phosphor.ttf') format('truetype'),
50
+ url('./fonts/phosphor/Phosphor.svg#Phosphor') format('svg');
51
+ font-weight: normal;
52
+ font-style: normal;
53
+ font-display: block;
54
+ }
55
+
56
+ @font-face {
57
+ font-family: 'Phosphor-Thin';
58
+ src:
59
+ url('./fonts/phosphor/Phosphor-Thin.woff2') format('woff2'),
60
+ url('./fonts/phosphor/Phosphor-Thin.woff') format('woff'),
61
+ url('./fonts/phosphor/Phosphor-Thin.ttf') format('truetype'),
62
+ url('./fonts/phosphor/Phosphor-Thin.svg#Phosphor-Thin') format('svg');
63
+ font-weight: normal;
64
+ font-style: normal;
65
+ font-display: block;
66
+ }
67
+
68
+ .ph-bold {
69
+ /* use !important to prevent issues with browser extensions that change fonts */
70
+ font-family: 'Phosphor-Bold' !important;
71
+ speak: never;
72
+ font-style: normal;
73
+ font-weight: normal;
74
+ font-variant: normal;
75
+ text-transform: none;
76
+ line-height: 1;
77
+
78
+ /* Enable Ligatures ================ */
79
+ letter-spacing: 0;
80
+ -webkit-font-feature-settings: 'liga';
81
+ -moz-font-feature-settings: 'liga=1';
82
+ -moz-font-feature-settings: 'liga';
83
+ -ms-font-feature-settings: 'liga' 1;
84
+ font-feature-settings: 'liga';
85
+ -webkit-font-variant-ligatures: discretionary-ligatures;
86
+ font-variant-ligatures: discretionary-ligatures;
87
+
88
+ /* Better Font Rendering =========== */
89
+ -webkit-font-smoothing: antialiased;
90
+ -moz-osx-font-smoothing: grayscale;
91
+ }
92
+
93
+ .ph-fill {
94
+ /* use !important to prevent issues with browser extensions that change fonts */
95
+ font-family: 'Phosphor-Fill' !important;
96
+ speak: never;
97
+ font-style: normal;
98
+ font-weight: normal;
99
+ font-variant: normal;
100
+ text-transform: none;
101
+ line-height: 1;
102
+
103
+ /* Enable Ligatures ================ */
104
+ letter-spacing: 0;
105
+ -webkit-font-feature-settings: 'liga';
106
+ -moz-font-feature-settings: 'liga=1';
107
+ -moz-font-feature-settings: 'liga';
108
+ -ms-font-feature-settings: 'liga' 1;
109
+ font-feature-settings: 'liga';
110
+ -webkit-font-variant-ligatures: discretionary-ligatures;
111
+ font-variant-ligatures: discretionary-ligatures;
112
+
113
+ /* Better Font Rendering =========== */
114
+ -webkit-font-smoothing: antialiased;
115
+ -moz-osx-font-smoothing: grayscale;
116
+ }
117
+
118
+ .ph-light {
119
+ /* use !important to prevent issues with browser extensions that change fonts */
120
+ font-family: 'Phosphor-Light' !important;
121
+ speak: never;
122
+ font-style: normal;
123
+ font-weight: normal;
124
+ font-variant: normal;
125
+ text-transform: none;
126
+ line-height: 1;
127
+
128
+ /* Enable Ligatures ================ */
129
+ letter-spacing: 0;
130
+ -webkit-font-feature-settings: 'liga';
131
+ -moz-font-feature-settings: 'liga=1';
132
+ -moz-font-feature-settings: 'liga';
133
+ -ms-font-feature-settings: 'liga' 1;
134
+ font-feature-settings: 'liga';
135
+ -webkit-font-variant-ligatures: discretionary-ligatures;
136
+ font-variant-ligatures: discretionary-ligatures;
137
+
138
+ /* Better Font Rendering =========== */
139
+ -webkit-font-smoothing: antialiased;
140
+ -moz-osx-font-smoothing: grayscale;
141
+ }
142
+
143
+ .ph {
144
+ /* use !important to prevent issues with browser extensions that change fonts */
145
+ font-family: 'Phosphor' !important;
146
+ speak: never;
147
+ font-style: normal;
148
+ font-weight: normal;
149
+ font-variant: normal;
150
+ text-transform: none;
151
+ line-height: 1;
152
+
153
+ /* Enable Ligatures ================ */
154
+ letter-spacing: 0;
155
+ -webkit-font-feature-settings: 'liga';
156
+ -moz-font-feature-settings: 'liga=1';
157
+ -moz-font-feature-settings: 'liga';
158
+ -ms-font-feature-settings: 'liga' 1;
159
+ font-feature-settings: 'liga';
160
+ -webkit-font-variant-ligatures: discretionary-ligatures;
161
+ font-variant-ligatures: discretionary-ligatures;
162
+
163
+ /* Better Font Rendering =========== */
164
+ -webkit-font-smoothing: antialiased;
165
+ -moz-osx-font-smoothing: grayscale;
166
+ }
167
+
168
+ .ph-thin {
169
+ /* use !important to prevent issues with browser extensions that change fonts */
170
+ font-family: 'Phosphor-Thin' !important;
171
+ speak: never;
172
+ font-style: normal;
173
+ font-weight: normal;
174
+ font-variant: normal;
175
+ text-transform: none;
176
+ line-height: 1;
177
+
178
+ /* Enable Ligatures ================ */
179
+ letter-spacing: 0;
180
+ -webkit-font-feature-settings: 'liga';
181
+ -moz-font-feature-settings: 'liga=1';
182
+ -moz-font-feature-settings: 'liga';
183
+ -ms-font-feature-settings: 'liga' 1;
184
+ font-feature-settings: 'liga';
185
+ -webkit-font-variant-ligatures: discretionary-ligatures;
186
+ font-variant-ligatures: discretionary-ligatures;
187
+
188
+ /* Better Font Rendering =========== */
189
+ -webkit-font-smoothing: antialiased;
190
+ -moz-osx-font-smoothing: grayscale;
191
+ }
192
+
193
+ /* ─── Base Design Tokens ──────────────────────────────────────────────────── */
194
+
195
+ :root {
196
+ --ml-white: #ffffff;
197
+ --ml-black: #000000;
198
+ --ml-gray-25: #fcfcfd;
199
+ --ml-gray-50: #f9fafb;
200
+ --ml-gray-100: #f2f4f7;
201
+ --ml-gray-200: #eaecf0;
202
+ --ml-gray-300: #d0d5dd;
203
+ --ml-gray-400: #98a2b3;
204
+ --ml-gray-500: #667085;
205
+ --ml-gray-600: #475467;
206
+ --ml-gray-700: #344054;
207
+ --ml-gray-800: #182230;
208
+ --ml-gray-900: #101828;
209
+ --ml-gray-950: #0c111d;
210
+ --ml-blue-25: #f5f8ff;
211
+ --ml-blue-50: #eff4ff;
212
+ --ml-blue-100: #d1e0ff;
213
+ --ml-blue-200: #b2ccff;
214
+ --ml-blue-300: #84adff;
215
+ --ml-blue-400: #528bff;
216
+ --ml-blue-500: #2970ff;
217
+ --ml-blue-600: #155eef;
218
+ --ml-blue-700: #004eeb;
219
+ --ml-blue-800: #0040c1;
220
+ --ml-blue-900: #00359e;
221
+ --ml-blue-950: #002266;
222
+ --ml-green-25: #f6fef9;
223
+ --ml-green-50: #ecfdf3;
224
+ --ml-green-100: #dcfae6;
225
+ --ml-green-200: #abefc6;
226
+ --ml-green-300: #75e0a7;
227
+ --ml-green-400: #47cd89;
228
+ --ml-green-500: #17b26a;
229
+ --ml-green-600: #079455;
230
+ --ml-green-700: #067647;
231
+ --ml-green-800: #085d3a;
232
+ --ml-green-900: #074d31;
233
+ --ml-green-950: #053321;
234
+ --ml-red-25: #fffbfa;
235
+ --ml-red-50: #fef3f2;
236
+ --ml-red-100: #fee4e2;
237
+ --ml-red-200: #fecdca;
238
+ --ml-red-300: #fda29b;
239
+ --ml-red-400: #f97066;
240
+ --ml-red-500: #f04438;
241
+ --ml-red-600: #d92d20;
242
+ --ml-red-700: #b42318;
243
+ --ml-red-800: #912018;
244
+ --ml-red-900: #7a271a;
245
+ --ml-red-950: #55160c;
246
+ --ml-amber-25: #fffcf5;
247
+ --ml-amber-50: #fffaeb;
248
+ --ml-amber-100: #fef0c7;
249
+ --ml-amber-200: #fedf89;
250
+ --ml-amber-300: #fec84b;
251
+ --ml-amber-400: #fdb022;
252
+ --ml-amber-500: #f79009;
253
+ --ml-amber-600: #dc6803;
254
+ --ml-amber-700: #b54708;
255
+ --ml-amber-800: #93370d;
256
+ --ml-amber-900: #7a2e0e;
257
+ --ml-amber-950: #4e1d09;
258
+ --ml-cyan-25: #f5feff;
259
+ --ml-cyan-50: #ecfdff;
260
+ --ml-cyan-100: #cff9fe;
261
+ --ml-cyan-200: #a5f0fc;
262
+ --ml-cyan-300: #67e3f9;
263
+ --ml-cyan-400: #22ccee;
264
+ --ml-cyan-500: #06aed4;
265
+ --ml-cyan-600: #088ab2;
266
+ --ml-cyan-700: #0e7090;
267
+ --ml-cyan-800: #155b75;
268
+ --ml-cyan-900: #164c63;
269
+ --ml-cyan-950: #0d2d3a;
270
+ --ml-purple-25: #fcfaff;
271
+ --ml-purple-50: #f9f5ff;
272
+ --ml-purple-100: #f4ebff;
273
+ --ml-purple-200: #e9d7fe;
274
+ --ml-purple-300: #d6bbfb;
275
+ --ml-purple-400: #b692f6;
276
+ --ml-purple-500: #9e77ed;
277
+ --ml-purple-600: #7f56d9;
278
+ --ml-purple-700: #6941c6;
279
+ --ml-purple-800: #53389e;
280
+ --ml-purple-900: #42307d;
281
+ --ml-purple-950: #2c1c5f;
282
+ --ml-color-primary: var(--ml-blue-600);
283
+ --ml-color-primary-hover: var(--ml-blue-700);
284
+ --ml-color-primary-active: var(--ml-blue-800);
285
+ --ml-color-primary-subtle: var(--ml-blue-50);
286
+ --ml-color-secondary: var(--ml-gray-600);
287
+ --ml-color-secondary-hover: var(--ml-gray-700);
288
+ --ml-color-secondary-active: var(--ml-gray-800);
289
+ --ml-color-secondary-subtle: var(--ml-gray-100);
290
+ --ml-color-success: var(--ml-green-600);
291
+ --ml-color-success-hover: var(--ml-green-700);
292
+ --ml-color-success-subtle: var(--ml-green-50);
293
+ --ml-color-warning: var(--ml-amber-500);
294
+ --ml-color-warning-hover: var(--ml-amber-600);
295
+ --ml-color-warning-subtle: var(--ml-amber-50);
296
+ --ml-color-danger: var(--ml-red-600);
297
+ --ml-color-danger-hover: var(--ml-red-700);
298
+ --ml-color-danger-subtle: var(--ml-red-50);
299
+ --ml-color-info: var(--ml-cyan-600);
300
+ --ml-color-info-hover: var(--ml-cyan-700);
301
+ --ml-color-info-subtle: var(--ml-cyan-50);
302
+ --ml-color-background: var(--ml-white);
303
+ --ml-color-surface: var(--ml-white);
304
+ --ml-color-surface-raised: var(--ml-gray-50);
305
+ --ml-color-surface-overlay: var(--ml-white);
306
+ --ml-color-surface-sunken: var(--ml-gray-100);
307
+ --ml-color-text: var(--ml-gray-900);
308
+ --ml-color-text-secondary: var(--ml-gray-700);
309
+ --ml-color-text-muted: var(--ml-gray-500);
310
+ --ml-color-text-subtle: var(--ml-gray-400);
311
+ --ml-color-text-inverse: var(--ml-white);
312
+ --ml-color-text-link: var(--ml-blue-600);
313
+ --ml-color-text-link-hover: var(--ml-blue-700);
314
+ --ml-color-border: var(--ml-gray-200);
315
+ --ml-color-border-strong: var(--ml-gray-300);
316
+ --ml-color-border-muted: var(--ml-gray-100);
317
+ --ml-color-border-focus: var(--ml-blue-500);
318
+ --ml-color-focus-ring: var(--ml-blue-500);
319
+ --ml-focus-ring-width: 4px;
320
+ --ml-focus-ring-offset: 1px;
321
+ --ml-color-toggle-off: var(--ml-gray-200);
322
+ --ml-color-toggle-off-hover: var(--ml-gray-300);
323
+ --ml-color-input-bg: var(--ml-white);
324
+ --ml-color-input-disabled-bg: var(--ml-gray-50);
325
+ --ml-badge-default-bg: var(--ml-gray-100);
326
+ --ml-badge-default-border: var(--ml-gray-200);
327
+ --ml-badge-default-text: var(--ml-gray-700);
328
+ --ml-badge-primary-bg: var(--ml-blue-50);
329
+ --ml-badge-primary-border: var(--ml-blue-200);
330
+ --ml-badge-primary-text: var(--ml-blue-700);
331
+ --ml-badge-success-bg: var(--ml-green-50);
332
+ --ml-badge-success-border: var(--ml-green-200);
333
+ --ml-badge-success-text: var(--ml-green-700);
334
+ --ml-badge-warning-bg: var(--ml-amber-50);
335
+ --ml-badge-warning-border: var(--ml-amber-200);
336
+ --ml-badge-warning-text: var(--ml-amber-700);
337
+ --ml-badge-error-bg: var(--ml-red-50);
338
+ --ml-badge-error-border: var(--ml-red-200);
339
+ --ml-badge-error-text: var(--ml-red-700);
340
+ --ml-alert-info-bg: var(--ml-blue-50);
341
+ --ml-alert-info-border: var(--ml-blue-200);
342
+ --ml-alert-info-text: var(--ml-blue-700);
343
+ --ml-alert-info-icon: var(--ml-blue-600);
344
+ --ml-alert-success-bg: var(--ml-green-50);
345
+ --ml-alert-success-border: var(--ml-green-200);
346
+ --ml-alert-success-text: var(--ml-green-700);
347
+ --ml-alert-success-icon: var(--ml-green-600);
348
+ --ml-alert-warning-bg: var(--ml-amber-50);
349
+ --ml-alert-warning-border: var(--ml-amber-200);
350
+ --ml-alert-warning-text: var(--ml-amber-700);
351
+ --ml-alert-warning-icon: var(--ml-amber-600);
352
+ --ml-alert-error-bg: var(--ml-red-50);
353
+ --ml-alert-error-border: var(--ml-red-200);
354
+ --ml-alert-error-text: var(--ml-red-700);
355
+ --ml-alert-error-icon: var(--ml-red-600);
356
+ --ml-tooltip-bg: var(--ml-gray-900);
357
+ --ml-tooltip-text: var(--ml-white);
358
+ --ml-card-footer-bg: var(--ml-gray-50);
359
+ --ml-space-0: 0;
360
+ --ml-space-px: 1px;
361
+ --ml-space-0-5: 0.125rem;
362
+ --ml-space-1: 0.25rem;
363
+ --ml-space-1-5: 0.375rem;
364
+ --ml-space-2: 0.5rem;
365
+ --ml-space-2-5: 0.625rem;
366
+ --ml-space-3: 0.75rem;
367
+ --ml-space-3-5: 0.875rem;
368
+ --ml-space-4: 1rem;
369
+ --ml-space-5: 1.25rem;
370
+ --ml-space-6: 1.5rem;
371
+ --ml-space-7: 1.75rem;
372
+ --ml-space-8: 2rem;
373
+ --ml-space-9: 2.25rem;
374
+ --ml-space-10: 2.5rem;
375
+ --ml-space-11: 2.75rem;
376
+ --ml-space-12: 3rem;
377
+ --ml-space-14: 3.5rem;
378
+ --ml-space-16: 4rem;
379
+ --ml-space-20: 5rem;
380
+ --ml-space-24: 6rem;
381
+ --ml-space-28: 7rem;
382
+ --ml-space-32: 8rem;
383
+ --ml-space-36: 9rem;
384
+ --ml-space-40: 10rem;
385
+ --ml-space-44: 11rem;
386
+ --ml-space-48: 12rem;
387
+ --ml-space-52: 13rem;
388
+ --ml-space-56: 14rem;
389
+ --ml-space-60: 15rem;
390
+ --ml-space-64: 16rem;
391
+ --ml-space-72: 18rem;
392
+ --ml-space-80: 20rem;
393
+ --ml-space-96: 24rem;
394
+ --ml-font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
395
+ --ml-font-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
396
+ --ml-font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
397
+ --ml-text-xs: 0.75rem;
398
+ --ml-text-sm: 0.875rem;
399
+ --ml-text-base: 1rem;
400
+ --ml-text-lg: 1.125rem;
401
+ --ml-text-xl: 1.25rem;
402
+ --ml-text-2xl: 1.5rem;
403
+ --ml-text-3xl: 1.875rem;
404
+ --ml-text-4xl: 2.25rem;
405
+ --ml-text-5xl: 3rem;
406
+ --ml-text-6xl: 3.75rem;
407
+ --ml-text-7xl: 4.5rem;
408
+ --ml-text-8xl: 6rem;
409
+ --ml-text-9xl: 8rem;
410
+ --ml-font-thin: 100;
411
+ --ml-font-extralight: 200;
412
+ --ml-font-light: 300;
413
+ --ml-font-normal: 400;
414
+ --ml-font-medium: 500;
415
+ --ml-font-semibold: 600;
416
+ --ml-font-bold: 700;
417
+ --ml-font-extrabold: 800;
418
+ --ml-font-black: 900;
419
+ --ml-leading-none: 1;
420
+ --ml-leading-tight: 1.25;
421
+ --ml-leading-snug: 1.375;
422
+ --ml-leading-normal: 1.5;
423
+ --ml-leading-relaxed: 1.625;
424
+ --ml-leading-loose: 2;
425
+ --ml-tracking-tighter: -0.05em;
426
+ --ml-tracking-tight: -0.025em;
427
+ --ml-tracking-normal: 0em;
428
+ --ml-tracking-wide: 0.025em;
429
+ --ml-tracking-wider: 0.05em;
430
+ --ml-tracking-widest: 0.1em;
431
+ --ml-shadow-none: none;
432
+ --ml-shadow-xs: 0 1px 2px 0 rgb(16 24 40 / 0.05);
433
+ --ml-shadow-sm: 0 1px 2px 0 rgb(16 24 40 / 0.06), 0 1px 3px 0 rgb(16 24 40 / 0.1);
434
+ --ml-shadow: 0 1px 2px 0 rgb(16 24 40 / 0.06), 0 1px 3px 0 rgb(16 24 40 / 0.1);
435
+ --ml-shadow-md: 0 2px 4px -2px rgb(16 24 40 / 0.06), 0 4px 8px -2px rgb(16 24 40 / 0.1);
436
+ --ml-shadow-lg: 0 4px 6px -2px rgb(16 24 40 / 0.03), 0 12px 16px -4px rgb(16 24 40 / 0.08);
437
+ --ml-shadow-xl: 0 8px 8px -4px rgb(16 24 40 / 0.03), 0 20px 24px -4px rgb(16 24 40 / 0.08);
438
+ --ml-shadow-2xl: 0 24px 48px -12px rgb(16 24 40 / 0.18);
439
+ --ml-shadow-3xl: 0 32px 64px -12px rgb(16 24 40 / 0.14);
440
+ --ml-shadow-inner: inset 0 2px 4px 0 rgb(16 24 40 / 0.05);
441
+ --ml-shadow-ring-color: var(--ml-blue-100);
442
+ --ml-shadow-ring-error-color: var(--ml-red-100);
443
+ --ml-shadow-ring-success-color: var(--ml-green-100);
444
+ --ml-shadow-ring-warning-color: var(--ml-amber-100);
445
+ --ml-shadow-ring-gray-color: var(--ml-gray-100);
446
+ --ml-shadow-ring: 0 0 0 4px var(--ml-shadow-ring-color);
447
+ --ml-shadow-ring-error: 0 0 0 4px var(--ml-shadow-ring-error-color);
448
+ --ml-shadow-ring-success: 0 0 0 4px var(--ml-shadow-ring-success-color);
449
+ --ml-shadow-ring-warning: 0 0 0 4px var(--ml-shadow-ring-warning-color);
450
+ --ml-shadow-ring-gray: 0 0 0 4px var(--ml-shadow-ring-gray-color);
451
+ --ml-shadow-focus-ring: 0 1px 2px 0 rgb(16 24 40 / 0.05), 0 0 0 4px var(--ml-shadow-ring-color);
452
+ --ml-shadow-primary: 0 1px 2px 0 rgb(21 94 239 / 0.05);
453
+ --ml-shadow-success: 0 1px 2px 0 rgb(7 148 85 / 0.05);
454
+ --ml-shadow-danger: 0 1px 2px 0 rgb(217 45 32 / 0.05);
455
+ --ml-radius-none: 0;
456
+ --ml-radius-xxs: 0.125rem;
457
+ --ml-radius-xs: 0.25rem;
458
+ --ml-radius-sm: 0.375rem;
459
+ --ml-radius: 0.5rem;
460
+ --ml-radius-md: 0.5rem;
461
+ --ml-radius-lg: 0.75rem;
462
+ --ml-radius-xl: 1rem;
463
+ --ml-radius-2xl: 1.25rem;
464
+ --ml-radius-3xl: 1.5rem;
465
+ --ml-radius-4xl: 2rem;
466
+ --ml-radius-full: 9999px;
467
+ --ml-border-0: 0;
468
+ --ml-border: 1px;
469
+ --ml-border-2: 2px;
470
+ --ml-border-4: 4px;
471
+ --ml-border-8: 8px;
472
+ --ml-duration-0: 0ms;
473
+ --ml-duration-75: 75ms;
474
+ --ml-duration-100: 100ms;
475
+ --ml-duration-150: 150ms;
476
+ --ml-duration-200: 200ms;
477
+ --ml-duration-300: 300ms;
478
+ --ml-duration-500: 500ms;
479
+ --ml-duration-700: 700ms;
480
+ --ml-duration-1000: 1000ms;
481
+ --ml-ease-linear: linear;
482
+ --ml-ease-in: cubic-bezier(0.4, 0, 1, 1);
483
+ --ml-ease-out: cubic-bezier(0, 0, 0.2, 1);
484
+ --ml-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
485
+ --ml-ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
486
+ --ml-transition-none: none;
487
+ --ml-transition-all: all var(--ml-duration-150) var(--ml-ease-in-out);
488
+ --ml-transition-colors: color var(--ml-duration-150) var(--ml-ease-in-out), background-color var(--ml-duration-150) var(--ml-ease-in-out), border-color var(--ml-duration-150) var(--ml-ease-in-out);
489
+ --ml-transition-opacity: opacity var(--ml-duration-150) var(--ml-ease-in-out);
490
+ --ml-transition-shadow: box-shadow var(--ml-duration-150) var(--ml-ease-in-out);
491
+ --ml-transition-transform: transform var(--ml-duration-150) var(--ml-ease-in-out);
492
+ --ml-screen-xs: 320px;
493
+ --ml-screen-sm: 640px;
494
+ --ml-screen-md: 768px;
495
+ --ml-screen-lg: 1024px;
496
+ --ml-screen-xl: 1280px;
497
+ --ml-screen-2xl: 1536px;
498
+
499
+ /* Default to light color scheme */
500
+ color-scheme: light;
501
+ }
502
+
503
+ /* ─── Light Theme ─────────────────────────────────────────────────────────── */
504
+
505
+ :root, [data-theme="light"] {
506
+ --ml-color-background: var(--ml-white);
507
+ --ml-color-surface: var(--ml-white);
508
+ --ml-color-surface-raised: var(--ml-gray-50);
509
+ --ml-color-surface-overlay: var(--ml-white);
510
+ --ml-color-surface-sunken: var(--ml-gray-100);
511
+ --ml-color-text: var(--ml-gray-900);
512
+ --ml-color-text-secondary: var(--ml-gray-700);
513
+ --ml-color-text-muted: var(--ml-gray-500);
514
+ --ml-color-text-subtle: var(--ml-gray-400);
515
+ --ml-color-text-inverse: var(--ml-white);
516
+ --ml-color-border: var(--ml-gray-200);
517
+ --ml-color-border-strong: var(--ml-gray-300);
518
+ --ml-color-border-muted: var(--ml-gray-100);
519
+
520
+ color-scheme: light;
521
+ }
522
+
523
+ /* ─── Dark Theme ──────────────────────────────────────────────────────────── */
524
+
525
+ [data-theme="dark"] {
526
+ --ml-color-background: var(--ml-gray-950);
527
+ --ml-color-surface: var(--ml-gray-900);
528
+ --ml-color-surface-raised: var(--ml-gray-800);
529
+ --ml-color-surface-overlay: var(--ml-gray-800);
530
+ --ml-color-surface-sunken: var(--ml-gray-950);
531
+ --ml-color-text: var(--ml-gray-50);
532
+ --ml-color-text-secondary: var(--ml-gray-300);
533
+ --ml-color-text-muted: var(--ml-gray-400);
534
+ --ml-color-text-subtle: var(--ml-gray-500);
535
+ --ml-color-text-inverse: var(--ml-gray-900);
536
+ --ml-color-border: var(--ml-gray-700);
537
+ --ml-color-border-strong: var(--ml-gray-600);
538
+ --ml-color-border-muted: var(--ml-gray-800);
539
+ --ml-color-primary: var(--ml-blue-500);
540
+ --ml-color-primary-hover: var(--ml-blue-400);
541
+ --ml-color-primary-active: var(--ml-blue-300);
542
+ --ml-color-primary-subtle: var(--ml-blue-950);
543
+ --ml-color-success: var(--ml-green-500);
544
+ --ml-color-success-subtle: var(--ml-green-950);
545
+ --ml-color-warning: var(--ml-amber-400);
546
+ --ml-color-warning-subtle: var(--ml-amber-950);
547
+ --ml-color-danger: var(--ml-red-500);
548
+ --ml-color-danger-subtle: var(--ml-red-950);
549
+ --ml-color-info: var(--ml-cyan-400);
550
+ --ml-color-info-subtle: var(--ml-cyan-950);
551
+ --ml-color-input-bg: var(--ml-gray-900);
552
+ --ml-color-input-disabled-bg: var(--ml-gray-800);
553
+ --ml-color-toggle-off: var(--ml-gray-600);
554
+ --ml-color-toggle-off-hover: var(--ml-gray-500);
555
+ --ml-shadow-ring-color: rgb(59 130 246 / 0.25);
556
+ --ml-shadow-ring-error-color: rgb(239 68 68 / 0.25);
557
+ --ml-shadow-ring-success-color: rgb(34 197 94 / 0.25);
558
+ --ml-shadow-ring-warning-color: rgb(245 158 11 / 0.25);
559
+ --ml-shadow-ring-gray-color: rgb(107 114 128 / 0.25);
560
+ --ml-badge-default-bg: var(--ml-gray-800);
561
+ --ml-badge-default-border: var(--ml-gray-700);
562
+ --ml-badge-default-text: var(--ml-gray-300);
563
+ --ml-badge-primary-bg: rgb(59 130 246 / 0.15);
564
+ --ml-badge-primary-border: rgb(59 130 246 / 0.3);
565
+ --ml-badge-primary-text: var(--ml-blue-400);
566
+ --ml-badge-success-bg: rgb(34 197 94 / 0.15);
567
+ --ml-badge-success-border: rgb(34 197 94 / 0.3);
568
+ --ml-badge-success-text: var(--ml-green-400);
569
+ --ml-badge-warning-bg: rgb(245 158 11 / 0.15);
570
+ --ml-badge-warning-border: rgb(245 158 11 / 0.3);
571
+ --ml-badge-warning-text: var(--ml-amber-400);
572
+ --ml-badge-error-bg: rgb(239 68 68 / 0.15);
573
+ --ml-badge-error-border: rgb(239 68 68 / 0.3);
574
+ --ml-badge-error-text: var(--ml-red-400);
575
+ --ml-alert-info-bg: rgb(59 130 246 / 0.1);
576
+ --ml-alert-info-border: rgb(59 130 246 / 0.2);
577
+ --ml-alert-info-text: var(--ml-blue-300);
578
+ --ml-alert-info-icon: var(--ml-blue-400);
579
+ --ml-alert-success-bg: rgb(34 197 94 / 0.1);
580
+ --ml-alert-success-border: rgb(34 197 94 / 0.2);
581
+ --ml-alert-success-text: var(--ml-green-300);
582
+ --ml-alert-success-icon: var(--ml-green-400);
583
+ --ml-alert-warning-bg: rgb(245 158 11 / 0.1);
584
+ --ml-alert-warning-border: rgb(245 158 11 / 0.2);
585
+ --ml-alert-warning-text: var(--ml-amber-300);
586
+ --ml-alert-warning-icon: var(--ml-amber-400);
587
+ --ml-alert-error-bg: rgb(239 68 68 / 0.1);
588
+ --ml-alert-error-border: rgb(239 68 68 / 0.2);
589
+ --ml-alert-error-text: var(--ml-red-300);
590
+ --ml-alert-error-icon: var(--ml-red-400);
591
+ --ml-tooltip-bg: var(--ml-gray-100);
592
+ --ml-tooltip-text: var(--ml-gray-900);
593
+ --ml-card-footer-bg: var(--ml-gray-800);
594
+
595
+ color-scheme: dark;
596
+ }
597
+
598
+ @media (prefers-color-scheme: dark) {
599
+ :root:not([data-theme="light"]) {
600
+ --ml-color-background: var(--ml-gray-950);
601
+ --ml-color-surface: var(--ml-gray-900);
602
+ --ml-color-surface-raised: var(--ml-gray-800);
603
+ --ml-color-surface-overlay: var(--ml-gray-800);
604
+ --ml-color-surface-sunken: var(--ml-gray-950);
605
+ --ml-color-text: var(--ml-gray-50);
606
+ --ml-color-text-secondary: var(--ml-gray-300);
607
+ --ml-color-text-muted: var(--ml-gray-400);
608
+ --ml-color-text-subtle: var(--ml-gray-500);
609
+ --ml-color-text-inverse: var(--ml-gray-900);
610
+ --ml-color-border: var(--ml-gray-700);
611
+ --ml-color-border-strong: var(--ml-gray-600);
612
+ --ml-color-border-muted: var(--ml-gray-800);
613
+ --ml-color-primary: var(--ml-blue-500);
614
+ --ml-color-primary-hover: var(--ml-blue-400);
615
+ --ml-color-primary-active: var(--ml-blue-300);
616
+ --ml-color-primary-subtle: var(--ml-blue-950);
617
+ --ml-color-success: var(--ml-green-500);
618
+ --ml-color-success-subtle: var(--ml-green-950);
619
+ --ml-color-warning: var(--ml-amber-400);
620
+ --ml-color-warning-subtle: var(--ml-amber-950);
621
+ --ml-color-danger: var(--ml-red-500);
622
+ --ml-color-danger-subtle: var(--ml-red-950);
623
+ --ml-color-info: var(--ml-cyan-400);
624
+ --ml-color-info-subtle: var(--ml-cyan-950);
625
+ --ml-color-input-bg: var(--ml-gray-900);
626
+ --ml-color-input-disabled-bg: var(--ml-gray-800);
627
+ --ml-color-toggle-off: var(--ml-gray-600);
628
+ --ml-color-toggle-off-hover: var(--ml-gray-500);
629
+ --ml-shadow-ring-color: rgb(59 130 246 / 0.25);
630
+ --ml-shadow-ring-error-color: rgb(239 68 68 / 0.25);
631
+ --ml-shadow-ring-success-color: rgb(34 197 94 / 0.25);
632
+ --ml-shadow-ring-warning-color: rgb(245 158 11 / 0.25);
633
+ --ml-shadow-ring-gray-color: rgb(107 114 128 / 0.25);
634
+ --ml-badge-default-bg: var(--ml-gray-800);
635
+ --ml-badge-default-border: var(--ml-gray-700);
636
+ --ml-badge-default-text: var(--ml-gray-300);
637
+ --ml-badge-primary-bg: rgb(59 130 246 / 0.15);
638
+ --ml-badge-primary-border: rgb(59 130 246 / 0.3);
639
+ --ml-badge-primary-text: var(--ml-blue-400);
640
+ --ml-badge-success-bg: rgb(34 197 94 / 0.15);
641
+ --ml-badge-success-border: rgb(34 197 94 / 0.3);
642
+ --ml-badge-success-text: var(--ml-green-400);
643
+ --ml-badge-warning-bg: rgb(245 158 11 / 0.15);
644
+ --ml-badge-warning-border: rgb(245 158 11 / 0.3);
645
+ --ml-badge-warning-text: var(--ml-amber-400);
646
+ --ml-badge-error-bg: rgb(239 68 68 / 0.15);
647
+ --ml-badge-error-border: rgb(239 68 68 / 0.3);
648
+ --ml-badge-error-text: var(--ml-red-400);
649
+ --ml-alert-info-bg: rgb(59 130 246 / 0.1);
650
+ --ml-alert-info-border: rgb(59 130 246 / 0.2);
651
+ --ml-alert-info-text: var(--ml-blue-300);
652
+ --ml-alert-info-icon: var(--ml-blue-400);
653
+ --ml-alert-success-bg: rgb(34 197 94 / 0.1);
654
+ --ml-alert-success-border: rgb(34 197 94 / 0.2);
655
+ --ml-alert-success-text: var(--ml-green-300);
656
+ --ml-alert-success-icon: var(--ml-green-400);
657
+ --ml-alert-warning-bg: rgb(245 158 11 / 0.1);
658
+ --ml-alert-warning-border: rgb(245 158 11 / 0.2);
659
+ --ml-alert-warning-text: var(--ml-amber-300);
660
+ --ml-alert-warning-icon: var(--ml-amber-400);
661
+ --ml-alert-error-bg: rgb(239 68 68 / 0.1);
662
+ --ml-alert-error-border: rgb(239 68 68 / 0.2);
663
+ --ml-alert-error-text: var(--ml-red-300);
664
+ --ml-alert-error-icon: var(--ml-red-400);
665
+ --ml-tooltip-bg: var(--ml-gray-100);
666
+ --ml-tooltip-text: var(--ml-gray-900);
667
+ --ml-card-footer-bg: var(--ml-gray-800);
668
+
669
+ color-scheme: dark;
670
+ }
671
+ }