lumatoast 0.1.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.
@@ -0,0 +1,819 @@
1
+ /* src/styles/base.css */
2
+ :root {
3
+ --luma-width: 340px;
4
+ --luma-radius: 18px;
5
+ --luma-padding: 14px 16px 18px;
6
+ --luma-gap: 12px;
7
+ --luma-bg: rgba(17, 24, 39, 0.92);
8
+ --luma-border-color: rgba(255, 255, 255, .08);
9
+ --luma-border-width: 1px;
10
+ --luma-shadow: 0 8px 24px rgba(0, 0, 0, .22);
11
+ --luma-backdrop: blur(20px);
12
+ --luma-font: inherit;
13
+ --luma-title-size: 15px;
14
+ --luma-title-weight: 600;
15
+ --luma-title-color: #ffffff;
16
+ --luma-desc-size: 14px;
17
+ --luma-desc-color: rgba(255, 255, 255, .72);
18
+ --luma-line-height: 1.5;
19
+ --luma-letter-spacing: normal;
20
+ --luma-icon-size: 20px;
21
+ --luma-close-color: rgba(255, 255, 255, .65);
22
+ --luma-close-size: 18px;
23
+ --luma-action-bg: rgba(255, 255, 255, .08);
24
+ --luma-action-color: #ffffff;
25
+ --luma-action-hover-bg: rgba(255, 255, 255, .16);
26
+ --luma-action-radius: 10px;
27
+ --luma-action-padding: 8px 12px;
28
+ --luma-action-size: 14px;
29
+ --luma-action-weight: 500;
30
+ --luma-action-border: none;
31
+ --luma-action-hover-border: none;
32
+ --luma-progress-height: 3px;
33
+ --luma-progress-radius: 0px;
34
+ --luma-progress-success:
35
+ linear-gradient(
36
+ 90deg,
37
+ #22C55E,
38
+ #34D399);
39
+ --luma-progress-error:
40
+ linear-gradient(
41
+ 90deg,
42
+ #EF4444,
43
+ #F87171);
44
+ --luma-progress-warning:
45
+ linear-gradient(
46
+ 90deg,
47
+ #F59E0B,
48
+ #FCD34D);
49
+ --luma-progress-info:
50
+ linear-gradient(
51
+ 90deg,
52
+ #3B82F6,
53
+ #60A5FA);
54
+ --luma-progress-loading:
55
+ linear-gradient(
56
+ 90deg,
57
+ #6B7280,
58
+ #9CA3AF);
59
+ --luma-progress-custom:
60
+ linear-gradient(
61
+ 90deg,
62
+ #8B5CF6,
63
+ #A78BFA);
64
+ --luma-accent-success: #22C55E;
65
+ --luma-accent-error: #EF4444;
66
+ --luma-accent-warning: #F59E0B;
67
+ --luma-accent-info: #3B82F6;
68
+ --luma-duration-enter: 320ms;
69
+ --luma-duration-exit: 300ms;
70
+ --luma-duration-stack: 280ms;
71
+ }
72
+ .luma-toast-container {
73
+ position: fixed;
74
+ display: flex;
75
+ flex-direction: column;
76
+ z-index: 9999;
77
+ pointer-events: none;
78
+ padding: 16px;
79
+ }
80
+ .luma-top-left {
81
+ top: 0;
82
+ left: 0;
83
+ align-items: flex-start;
84
+ }
85
+ .luma-top-right {
86
+ top: 0;
87
+ right: 0;
88
+ align-items: flex-end;
89
+ }
90
+ .luma-bottom-left {
91
+ bottom: 0;
92
+ left: 0;
93
+ align-items: flex-start;
94
+ }
95
+ .luma-bottom-right {
96
+ bottom: 0;
97
+ right: 0;
98
+ align-items: flex-end;
99
+ }
100
+ .luma-top-center {
101
+ top: 0;
102
+ left: 50%;
103
+ transform: translateX(-50%);
104
+ align-items: center;
105
+ }
106
+ .luma-bottom-center {
107
+ bottom: 0;
108
+ left: 50%;
109
+ transform: translateX(-50%);
110
+ align-items: center;
111
+ }
112
+ .luma-toast {
113
+ pointer-events: auto;
114
+ position: relative;
115
+ margin-bottom: 12px;
116
+ max-height: 180px;
117
+ will-change: transform, opacity;
118
+ transform-origin: top center;
119
+ transition:
120
+ transform var(--luma-duration-stack) cubic-bezier(.2, .8, .2, 1),
121
+ opacity 220ms ease,
122
+ max-height var(--luma-duration-stack) cubic-bezier(.2, .8, .2, 1),
123
+ margin var(--luma-duration-stack) cubic-bezier(.2, .8, .2, 1),
124
+ padding var(--luma-duration-stack) cubic-bezier(.2, .8, .2, 1);
125
+ }
126
+ [data-enter=slide] {
127
+ animation: luma-kf-slide var(--luma-duration-enter) cubic-bezier(.2, .8, .2, 1);
128
+ }
129
+ [data-enter=fade] {
130
+ animation: luma-kf-fade var(--luma-duration-enter) ease;
131
+ }
132
+ [data-enter=scale] {
133
+ animation: luma-kf-scale var(--luma-duration-enter) cubic-bezier(.2, .8, .2, 1);
134
+ }
135
+ [data-enter=bounce] {
136
+ animation: luma-kf-bounce var(--luma-duration-enter) cubic-bezier(.34, 1.56, .64, 1);
137
+ }
138
+ [data-enter=none] {
139
+ animation: none;
140
+ }
141
+ @keyframes luma-kf-slide {
142
+ from {
143
+ opacity: 0;
144
+ transform: translateY(-12px) scale(.96);
145
+ }
146
+ to {
147
+ opacity: 1;
148
+ transform: translateY(0) scale(1);
149
+ }
150
+ }
151
+ @keyframes luma-kf-fade {
152
+ from {
153
+ opacity: 0;
154
+ }
155
+ to {
156
+ opacity: 1;
157
+ }
158
+ }
159
+ @keyframes luma-kf-scale {
160
+ from {
161
+ opacity: 0;
162
+ transform: scale(.85);
163
+ }
164
+ to {
165
+ opacity: 1;
166
+ transform: scale(1);
167
+ }
168
+ }
169
+ @keyframes luma-kf-bounce {
170
+ from {
171
+ opacity: 0;
172
+ transform: scale(.75);
173
+ }
174
+ to {
175
+ opacity: 1;
176
+ transform: scale(1);
177
+ }
178
+ }
179
+ .luma-toast-exit {
180
+ opacity: 0;
181
+ max-height: 0;
182
+ padding-top: 0;
183
+ padding-bottom: 0;
184
+ margin-top: 0;
185
+ margin-bottom: 0;
186
+ border-width: 0;
187
+ overflow: hidden;
188
+ }
189
+ [data-exit=slide].luma-toast-exit {
190
+ transform: translateX(32px) scale(.96);
191
+ }
192
+ [data-exit=fade].luma-toast-exit {
193
+ transform: none;
194
+ }
195
+ [data-exit=none].luma-toast-exit {
196
+ transition: none !important;
197
+ }
198
+ .luma-toast-card {
199
+ position: relative;
200
+ overflow: hidden;
201
+ display: flex;
202
+ align-items: flex-start;
203
+ gap: var(--luma-gap);
204
+ width: var(--luma-width);
205
+ padding: var(--luma-padding);
206
+ border-radius: var(--luma-radius);
207
+ background: var(--luma-bg);
208
+ border: var(--luma-border-width) solid var(--luma-border-color);
209
+ box-shadow: var(--luma-shadow);
210
+ backdrop-filter: var(--luma-backdrop);
211
+ font-family: var(--luma-font);
212
+ letter-spacing: var(--luma-letter-spacing);
213
+ cursor: grab;
214
+ user-select: none;
215
+ transition: transform 220ms cubic-bezier(.2, .8, .2, 1), box-shadow 220ms ease;
216
+ }
217
+ .luma-toast-icon {
218
+ font-size: var(--luma-icon-size);
219
+ line-height: 1.2;
220
+ flex-shrink: 0;
221
+ width: var(--luma-icon-size);
222
+ height: var(--luma-icon-size);
223
+ display: flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ }
227
+ .luma-toast-content {
228
+ flex: 1;
229
+ min-width: 0;
230
+ }
231
+ .luma-toast-title {
232
+ font-size: var(--luma-title-size);
233
+ font-weight: var(--luma-title-weight);
234
+ color: var(--luma-title-color);
235
+ margin-bottom: 4px;
236
+ }
237
+ .luma-toast-description {
238
+ font-size: var(--luma-desc-size);
239
+ color: var(--luma-desc-color);
240
+ line-height: var(--luma-line-height);
241
+ }
242
+ .luma-toast-close {
243
+ border: none;
244
+ background: transparent;
245
+ color: var(--luma-close-color);
246
+ font-size: var(--luma-close-size);
247
+ cursor: pointer;
248
+ flex-shrink: 0;
249
+ line-height: 1;
250
+ padding: 0 2px;
251
+ }
252
+ .luma-toast-action {
253
+ display: inline-block;
254
+ margin-top: 10px;
255
+ cursor: pointer;
256
+ font-size: var(--luma-action-size);
257
+ font-weight: var(--luma-action-weight);
258
+ padding: var(--luma-action-padding);
259
+ border-radius: var(--luma-action-radius);
260
+ color: var(--luma-action-color);
261
+ border: var(--luma-action-border);
262
+ transition:
263
+ background .2s,
264
+ box-shadow .2s,
265
+ border-color .2s;
266
+ }
267
+ .luma-action-solid {
268
+ background: var(--luma-action-bg);
269
+ }
270
+ .luma-action-solid:hover {
271
+ background: var(--luma-action-hover-bg);
272
+ }
273
+ .luma-action-outline {
274
+ background: transparent;
275
+ border: 1px solid var(--luma-border-color);
276
+ color: var(--luma-title-color);
277
+ }
278
+ .luma-action-outline:hover {
279
+ background: var(--luma-action-bg);
280
+ border-color: var(--luma-action-color);
281
+ }
282
+ .luma-action-ghost {
283
+ background: transparent;
284
+ border: none;
285
+ color: var(--luma-title-color);
286
+ padding-left: 0;
287
+ padding-right: 0;
288
+ opacity: .85;
289
+ }
290
+ .luma-action-ghost:hover {
291
+ opacity: 1;
292
+ }
293
+ .luma-toast-action:focus-visible,
294
+ .luma-toast-close:focus-visible {
295
+ outline: 2px solid #60A5FA;
296
+ outline-offset: 2px;
297
+ border-radius: 8px;
298
+ }
299
+ .luma-toast-action,
300
+ .luma-toast-close {
301
+ transition: outline-color .2s ease, background .2s ease;
302
+ }
303
+ .luma-progress {
304
+ position: absolute;
305
+ left: 0;
306
+ right: 0;
307
+ bottom: 0;
308
+ height: var(--luma-progress-height);
309
+ width: 100%;
310
+ border-radius: var(--luma-progress-radius);
311
+ transform-origin: left center;
312
+ animation-name: luma-progress;
313
+ animation-timing-function: linear;
314
+ animation-fill-mode: forwards;
315
+ }
316
+ .luma-progress-top {
317
+ top: 0;
318
+ bottom: auto;
319
+ }
320
+ .luma-success .luma-progress {
321
+ background: var(--luma-progress-success);
322
+ }
323
+ .luma-error .luma-progress {
324
+ background: var(--luma-progress-error);
325
+ }
326
+ .luma-warning .luma-progress {
327
+ background: var(--luma-progress-warning);
328
+ }
329
+ .luma-info .luma-progress {
330
+ background: var(--luma-progress-info);
331
+ }
332
+ .luma-loading .luma-progress {
333
+ background: var(--luma-progress-loading);
334
+ }
335
+ .luma-custom .luma-progress {
336
+ background: var(--luma-progress-custom);
337
+ }
338
+ @keyframes luma-progress {
339
+ from {
340
+ transform: scaleX(1);
341
+ }
342
+ to {
343
+ transform: scaleX(0);
344
+ }
345
+ }
346
+ @media (prefers-reduced-motion: reduce) {
347
+ .luma-toast,
348
+ .luma-toast-card,
349
+ .luma-toast-exit {
350
+ animation: none !important;
351
+ transition: none !important;
352
+ }
353
+ [data-enter] {
354
+ animation: none !important;
355
+ }
356
+ .luma-loading-icon {
357
+ animation: none !important;
358
+ }
359
+ .luma-toast-card:hover {
360
+ transform: none !important;
361
+ }
362
+ }
363
+
364
+ /* src/styles/themes/linear.css */
365
+ .luma-theme-linear {
366
+ --luma-bg:
367
+ linear-gradient(
368
+
369
+ 180deg,
370
+ rgba(31, 41, 55, .92),
371
+ rgba(17, 24, 39, .92) );
372
+ --luma-border-color: rgba(255, 255, 255, .08);
373
+ --luma-shadow: 0 8px 24px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255, 255, 255, .08);
374
+ --luma-backdrop: blur(20px);
375
+ --luma-radius: 18px;
376
+ --luma-title-color: #ffffff;
377
+ --luma-desc-color: rgba(255, 255, 255, .72);
378
+ --luma-action-bg: rgba(255, 255, 255, .08);
379
+ --luma-action-color: #ffffff;
380
+ --luma-action-hover-bg: rgba(255, 255, 255, .16);
381
+ --luma-action-radius: 10px;
382
+ --luma-close-color: rgba(255, 255, 255, .65);
383
+ --luma-accent-success: #22C55E;
384
+ --luma-accent-error: #EF4444;
385
+ --luma-accent-warning: #F59E0B;
386
+ --luma-accent-info: #3B82F6;
387
+ }
388
+ .luma-theme-linear.luma-success .luma-toast-card {
389
+ border-left: 4px solid var(--luma-accent-success);
390
+ }
391
+ .luma-theme-linear.luma-error .luma-toast-card {
392
+ border-left: 4px solid var(--luma-accent-error);
393
+ }
394
+ .luma-theme-linear.luma-warning .luma-toast-card {
395
+ border-left: 4px solid var(--luma-accent-warning);
396
+ }
397
+ .luma-theme-linear.luma-info .luma-toast-card {
398
+ border-left: 4px solid var(--luma-accent-info);
399
+ }
400
+ .luma-theme-linear .luma-toast-card:hover {
401
+ transform: translateY(-2px);
402
+ box-shadow: 0 14px 36px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .08);
403
+ }
404
+ .luma-theme-linear .luma-loading-icon {
405
+ display: block;
406
+ transform-origin: center;
407
+ transform-box: fill-box;
408
+ animation: luma-spin 1s linear infinite;
409
+ }
410
+ @keyframes luma-spin {
411
+ from {
412
+ transform: rotate(0deg);
413
+ }
414
+ to {
415
+ transform: rotate(360deg);
416
+ }
417
+ }
418
+
419
+ /* src/styles/themes/aurora.css */
420
+ .luma-theme-aurora {
421
+ --luma-bg:
422
+ radial-gradient(
423
+ circle at top left,
424
+ #9333EA55,
425
+ transparent 45%),
426
+ radial-gradient(
427
+ circle at bottom right,
428
+ #06B6D455,
429
+ transparent 45%),
430
+ linear-gradient(
431
+ 180deg,
432
+ #171B2E,
433
+ #0B1020);
434
+ --luma-border-color: rgba(147, 51, 234, .35);
435
+ --luma-shadow: 0 0 24px rgba(147, 51, 234, .22), 0 12px 30px rgba(0, 0, 0, .25);
436
+ --luma-backdrop: blur(22px);
437
+ --luma-title-color: #F9FAFB;
438
+ --luma-desc-color: rgba(255, 255, 255, .75);
439
+ --luma-progress-success:
440
+ linear-gradient(
441
+ 90deg,
442
+ #9333EA,
443
+ #3B82F6,
444
+ #14B8A6);
445
+ --luma-progress-error:
446
+ linear-gradient(
447
+ 90deg,
448
+ #9333EA,
449
+ #EF4444);
450
+ --luma-progress-warning:
451
+ linear-gradient(
452
+ 90deg,
453
+ #9333EA,
454
+ #F59E0B);
455
+ --luma-progress-info:
456
+ linear-gradient(
457
+ 90deg,
458
+ #9333EA,
459
+ #3B82F6,
460
+ #14B8A6);
461
+ }
462
+ .luma-theme-aurora .luma-loading-icon {
463
+ display: block;
464
+ transform-origin: center;
465
+ transform-box: fill-box;
466
+ animation: luma-spin 1s linear infinite;
467
+ }
468
+
469
+ /* src/styles/themes/minimal.css */
470
+ .luma-theme-minimal {
471
+ --luma-bg: #ffffff;
472
+ --luma-border-color: #E5E7EB;
473
+ --luma-border-width: 1px;
474
+ --luma-shadow: 0 8px 18px rgba(0, 0, 0, .08);
475
+ --luma-backdrop: none;
476
+ --luma-radius: 14px;
477
+ --luma-title-color: #111827;
478
+ --luma-desc-color: #4B5563;
479
+ --luma-close-color: #6B7280;
480
+ --luma-action-bg: #F3F4F6;
481
+ --luma-action-color: #111827;
482
+ --luma-action-hover-bg: #E5E7EB;
483
+ --luma-progress-success: #22C55E;
484
+ --luma-progress-error: #EF4444;
485
+ --luma-progress-warning: #F59E0B;
486
+ --luma-progress-info: #3B82F6;
487
+ --luma-progress-loading: #9CA3AF;
488
+ --luma-progress-custom: #8B5CF6;
489
+ --luma-accent-success: #22C55E;
490
+ --luma-accent-error: #EF4444;
491
+ --luma-accent-warning: #F59E0B;
492
+ --luma-accent-info: #3B82F6;
493
+ }
494
+ .luma-theme-minimal .luma-toast-description {
495
+ color: var(--luma-desc-color);
496
+ }
497
+ .luma-theme-minimal .luma-loading-icon {
498
+ display: block;
499
+ transform-origin: center;
500
+ transform-box: fill-box;
501
+ animation: luma-spin 1s linear infinite;
502
+ }
503
+
504
+ /* src/styles/themes/vision.css */
505
+ .luma-theme-vision {
506
+ --luma-bg:
507
+ linear-gradient(
508
+
509
+ 135deg,
510
+ rgba(12, 16, 32, .96),
511
+ rgba(18, 24, 45, .96) );
512
+ --luma-border-color: rgba(96, 165, 250, .25);
513
+ --luma-shadow: 0 0 18px rgba(59, 130, 246, .15), 0 12px 40px rgba(0, 0, 0, .28);
514
+ --luma-backdrop: blur(22px);
515
+ --luma-title-color: #E0F2FE;
516
+ --luma-desc-color: rgba(224, 242, 254, .72);
517
+ --luma-action-bg: rgba(96, 165, 250, .12);
518
+ --luma-action-color: #BAE6FD;
519
+ --luma-action-hover-bg: rgba(96, 165, 250, .22);
520
+ --luma-progress-success:
521
+ linear-gradient(
522
+ 90deg,
523
+ #2563EB,
524
+ #7C3AED);
525
+ --luma-progress-error:
526
+ linear-gradient(
527
+ 90deg,
528
+ #7C3AED,
529
+ #EF4444);
530
+ --luma-progress-warning:
531
+ linear-gradient(
532
+ 90deg,
533
+ #2563EB,
534
+ #F59E0B);
535
+ --luma-progress-info:
536
+ linear-gradient(
537
+ 90deg,
538
+ #2563EB,
539
+ #7C3AED);
540
+ }
541
+ .luma-theme-vision .luma-loading-icon {
542
+ display: block;
543
+ transform-origin: center;
544
+ transform-box: fill-box;
545
+ animation: luma-spin 1s linear infinite;
546
+ }
547
+
548
+ /* src/styles/themes/github.css */
549
+ .luma-theme-github {
550
+ --luma-bg: #161B22;
551
+ --luma-border-color: #30363D;
552
+ --luma-border-width: 1px;
553
+ --luma-shadow: none;
554
+ --luma-backdrop: none;
555
+ --luma-radius: 12px;
556
+ --luma-title-color: #F0F6FC;
557
+ --luma-desc-color: #8B949E;
558
+ --luma-close-color: #8B949E;
559
+ --luma-action-bg: rgba(177, 186, 196, .12);
560
+ --luma-action-color: #C9D1D9;
561
+ --luma-action-hover-bg: rgba(177, 186, 196, .2);
562
+ --luma-action-border: 1px solid #30363D;
563
+ --luma-action-radius: 6px;
564
+ --luma-progress-success: #2EA043;
565
+ --luma-progress-error: #DA3633;
566
+ --luma-progress-warning: #9E6A03;
567
+ --luma-progress-info: #388BFD;
568
+ --luma-progress-loading: #6E7681;
569
+ --luma-progress-custom: #8957E5;
570
+ }
571
+ .luma-theme-github .luma-loading-icon {
572
+ display: block;
573
+ transform-origin: center;
574
+ transform-box: fill-box;
575
+ animation: luma-spin 1s linear infinite;
576
+ }
577
+
578
+ /* src/styles/themes/cupertino.css */
579
+ .luma-theme-cupertino {
580
+ --luma-bg: rgba(255, 255, 255, 0.9);
581
+ --luma-border-color: rgba(255, 255, 255, 0.6);
582
+ --luma-shadow: 0 12px 32px rgba(0, 0, 0, .12);
583
+ --luma-backdrop: blur(34px);
584
+ --luma-radius: 24px;
585
+ --luma-title-color: #111827;
586
+ --luma-title-weight: 700;
587
+ --luma-desc-color: #374151;
588
+ --luma-close-color: #6B7280;
589
+ --luma-action-bg: #007AFF;
590
+ --luma-action-color: #ffffff;
591
+ --luma-action-hover-bg: #0062CC;
592
+ --luma-action-radius: 14px;
593
+ --luma-progress-success: #34C759;
594
+ --luma-progress-error: #FF3B30;
595
+ --luma-progress-warning: #FF9500;
596
+ --luma-progress-info: #007AFF;
597
+ --luma-progress-loading: #8E8E93;
598
+ --luma-progress-custom: #AF52DE;
599
+ }
600
+ .luma-theme-cupertino .luma-loading-icon {
601
+ display: block;
602
+ transform-origin: center;
603
+ transform-box: fill-box;
604
+ animation: luma-spin 1s linear infinite;
605
+ }
606
+
607
+ /* src/styles/themes/cyberpunk.css */
608
+ .luma-theme-cyberpunk {
609
+ --luma-bg:
610
+ linear-gradient(
611
+
612
+ 135deg,
613
+ rgba(12, 8, 28, 0.96),
614
+ rgba(24, 10, 40, 0.96) );
615
+ --luma-border-color: rgba(255, 0, 153, .45);
616
+ --luma-border-width: 1px;
617
+ --luma-shadow:
618
+ 0 0 12px rgba(255, 0, 153, .25),
619
+ 0 0 28px rgba(0, 229, 255, .12),
620
+ inset 0 0 12px rgba(255, 255, 255, .03);
621
+ --luma-backdrop: blur(18px);
622
+ --luma-radius: 16px;
623
+ --luma-letter-spacing: 0.3px;
624
+ --luma-title-color: #ffffff;
625
+ --luma-title-weight: 700;
626
+ --luma-desc-color: rgba(235, 235, 255, .82);
627
+ --luma-close-color: #00E5FF;
628
+ --luma-action-bg: rgba(255, 0, 153, .12);
629
+ --luma-action-color: #ff4dc4;
630
+ --luma-action-hover-bg: rgba(255, 0, 153, .22);
631
+ --luma-action-border: 1px solid rgba(255, 0, 153, .35);
632
+ --luma-action-hover-border: 1px solid rgba(255, 0, 153, .55);
633
+ --luma-action-radius: 10px;
634
+ --luma-progress-success:
635
+ linear-gradient(
636
+ 90deg,
637
+ #00ff85,
638
+ #00E5FF);
639
+ --luma-progress-error:
640
+ linear-gradient(
641
+ 90deg,
642
+ #ff3b5c,
643
+ #ff0080);
644
+ --luma-progress-warning:
645
+ linear-gradient(
646
+ 90deg,
647
+ #ffd500,
648
+ #ff9500);
649
+ --luma-progress-info:
650
+ linear-gradient(
651
+ 90deg,
652
+ #00e5ff,
653
+ #8b5cf6);
654
+ --luma-progress-loading:
655
+ linear-gradient(
656
+ 90deg,
657
+ #ff0080,
658
+ #8b5cf6,
659
+ #00e5ff);
660
+ --luma-progress-custom:
661
+ linear-gradient(
662
+ 90deg,
663
+ #ff0080,
664
+ #8b5cf6,
665
+ #00e5ff);
666
+ }
667
+ .luma-theme-cyberpunk .luma-toast-card::before {
668
+ content: "";
669
+ position: absolute;
670
+ top: 0;
671
+ left: 0;
672
+ width: 100%;
673
+ height: 2px;
674
+ background:
675
+ linear-gradient(
676
+ 90deg,
677
+ #ff0080,
678
+ #8b5cf6,
679
+ #00e5ff);
680
+ box-shadow: 0 0 10px #ff0080;
681
+ }
682
+ .luma-theme-cyberpunk .luma-toast-card {
683
+ animation: cyberpunk-pulse 3s ease-in-out infinite;
684
+ }
685
+ @keyframes cyberpunk-pulse {
686
+ 0%, 100% {
687
+ box-shadow:
688
+ 0 0 12px rgba(255, 0, 153, .25),
689
+ 0 0 28px rgba(0, 229, 255, .12),
690
+ inset 0 0 12px rgba(255, 255, 255, .03);
691
+ }
692
+ 50% {
693
+ box-shadow:
694
+ 0 0 22px rgba(255, 0, 153, .40),
695
+ 0 0 40px rgba(0, 229, 255, .25),
696
+ inset 0 0 14px rgba(255, 255, 255, .05);
697
+ }
698
+ }
699
+ .luma-theme-cyberpunk .luma-toast-card:hover {
700
+ transform: translateY(-2px);
701
+ box-shadow: 0 0 24px rgba(255, 0, 153, .45), 0 0 44px rgba(0, 229, 255, .32);
702
+ }
703
+ .luma-theme-cyberpunk .luma-progress {
704
+ background:
705
+ linear-gradient(
706
+ 90deg,
707
+ #ff0080,
708
+ #8b5cf6,
709
+ #00e5ff,
710
+ #ff0080);
711
+ background-size: 250% 100%;
712
+ animation: luma-progress linear forwards, cyberpunk-gradient 2s linear infinite;
713
+ }
714
+ @keyframes cyberpunk-gradient {
715
+ from {
716
+ background-position: 0% 0;
717
+ }
718
+ to {
719
+ background-position: 250% 0;
720
+ }
721
+ }
722
+ .luma-theme-cyberpunk .luma-loading-icon {
723
+ display: block;
724
+ transform-origin: center;
725
+ transform-box: fill-box;
726
+ filter: drop-shadow(0 0 4px #00E5FF) drop-shadow(0 0 10px #00E5FF);
727
+ animation: luma-spin 1s linear infinite, cyberpunk-spinner-glow 1.5s ease-in-out infinite;
728
+ }
729
+ @keyframes cyberpunk-spinner-glow {
730
+ 0%, 100% {
731
+ filter: drop-shadow(0 0 4px #00E5FF) drop-shadow(0 0 10px #00E5FF);
732
+ }
733
+ 50% {
734
+ filter: drop-shadow(0 0 8px #FF0080) drop-shadow(0 0 18px #FF0080);
735
+ }
736
+ }
737
+ .luma-theme-cyberpunk.luma-success .luma-toast-card {
738
+ border-left: 4px solid #00ff85;
739
+ box-shadow: 0 0 18px rgba(34, 197, 94, .35), 0 0 30px rgba(34, 197, 94, .18);
740
+ }
741
+ .luma-theme-cyberpunk.luma-error .luma-toast-card {
742
+ border-left: 4px solid #ff3b5c;
743
+ box-shadow: 0 0 18px rgba(239, 68, 68, .35), 0 0 30px rgba(239, 68, 68, .18);
744
+ }
745
+ .luma-theme-cyberpunk.luma-warning .luma-toast-card {
746
+ border-left: 4px solid #ffd500;
747
+ box-shadow: 0 0 18px rgba(245, 158, 11, .35), 0 0 30px rgba(245, 158, 11, .18);
748
+ }
749
+ .luma-theme-cyberpunk.luma-info .luma-toast-card {
750
+ border-left: 4px solid #00e5ff;
751
+ box-shadow: 0 0 18px rgba(59, 130, 246, .35), 0 0 30px rgba(59, 130, 246, .18);
752
+ }
753
+
754
+ /* src/styles/themes/material.css */
755
+ .luma-theme-material {
756
+ --luma-bg: #202124;
757
+ --luma-border-color: transparent;
758
+ --luma-border-width: 0px;
759
+ --luma-shadow: 0 4px 12px rgba(0, 0, 0, .35);
760
+ --luma-backdrop: none;
761
+ --luma-radius: 14px;
762
+ --luma-title-color: #FFFFFF;
763
+ --luma-title-weight: 500;
764
+ --luma-desc-color: #BDC1C6;
765
+ --luma-action-bg: transparent;
766
+ --luma-action-color: #8AB4F8;
767
+ --luma-action-hover-bg: rgba(138, 180, 248, .08);
768
+ --luma-action-weight: 600;
769
+ --luma-progress-success: #81C995;
770
+ --luma-progress-error: #F28B82;
771
+ --luma-progress-warning: #FDD663;
772
+ --luma-progress-info: #8AB4F8;
773
+ --luma-progress-loading: #9AA0A6;
774
+ --luma-progress-custom: #C58AF9;
775
+ }
776
+ .luma-theme-material .luma-loading-icon {
777
+ display: block;
778
+ transform-origin: center;
779
+ transform-box: fill-box;
780
+ animation: luma-spin 1s linear infinite;
781
+ }
782
+
783
+ /* src/styles/themes/terminal.css */
784
+ .luma-theme-terminal {
785
+ --luma-bg: #0B0F0C;
786
+ --luma-border-color: #16A34A;
787
+ --luma-border-width: 1px;
788
+ --luma-shadow: 0 4px 16px rgba(22, 163, 74, .15);
789
+ --luma-backdrop: none;
790
+ --luma-radius: 8px;
791
+ --luma-font:
792
+ "JetBrains Mono",
793
+ "Fira Code",
794
+ monospace;
795
+ --luma-title-color: #22C55E;
796
+ --luma-title-weight: 700;
797
+ --luma-desc-color: #A7F3D0;
798
+ --luma-close-color: #4ADE80;
799
+ --luma-action-bg: rgba(34, 197, 94, .12);
800
+ --luma-action-color: #22C55E;
801
+ --luma-action-hover-bg: rgba(34, 197, 94, .22);
802
+ --luma-action-border: 1px solid rgba(34, 197, 94, .35);
803
+ --luma-action-radius: 4px;
804
+ --luma-progress-success: #22C55E;
805
+ --luma-progress-error: #F87171;
806
+ --luma-progress-warning: #FCD34D;
807
+ --luma-progress-info: #22C55E;
808
+ --luma-progress-loading: #4ADE80;
809
+ --luma-progress-custom: #22C55E;
810
+ }
811
+ .luma-theme-terminal .luma-loading-icon {
812
+ display: block;
813
+ transform-origin: center;
814
+ transform-box: fill-box;
815
+ animation: luma-spin 1s linear infinite;
816
+ }
817
+
818
+ /* src/styles/index.css */
819
+ /*# sourceMappingURL=styles.css.map */