@howssatoshi/quantumcss 1.3.0 → 1.4.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.
@@ -1,18 +1,5 @@
1
1
  /* Starlight UI - Premium Components */
2
2
 
3
- /* 0. Layout Helpers */
4
- .container {
5
- max-width: 1100px;
6
- margin: 0 auto;
7
- padding: 0 var(--space-8);
8
- }
9
-
10
- .grid-3 {
11
- display: grid;
12
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
13
- gap: var(--space-8);
14
- }
15
-
16
3
  /* Links */
17
4
  a {
18
5
  color: var(--color-starlight-blue);
@@ -31,11 +18,11 @@ a:active {
31
18
  }
32
19
 
33
20
  body.light-mode a {
34
- color: #2563eb;
21
+ color: var(--color-starlight-blue);
35
22
  }
36
23
 
37
24
  body.light-mode a:hover {
38
- color: #1d4ed8;
25
+ color: var(--color-starlight-peach);
39
26
  }
40
27
 
41
28
  /* 1. Starlight Card */
@@ -79,6 +66,12 @@ body.light-mode .starlight-card {
79
66
 
80
67
  .radio-starlight { border-radius: 50%; }
81
68
 
69
+ body.light-mode .checkbox-starlight,
70
+ body.light-mode .radio-starlight {
71
+ border-color: rgba(0, 0, 0, 0.2);
72
+ background: rgba(0, 0, 0, 0.05);
73
+ }
74
+
82
75
  .checkbox-starlight:checked, .radio-starlight:checked {
83
76
  background: var(--color-starlight-blue);
84
77
  border-color: var(--color-starlight-blue);
@@ -129,12 +122,12 @@ body.light-mode .starlight-card {
129
122
  transform: translateX(-50%) translateY(0);
130
123
  }
131
124
 
132
- /* 4. Skeletons & Twinkle */
133
- .stars-container {
125
+ /* 4. Starlight Stars (Atmospheric Background) */
126
+ .starlight-stars {
134
127
  position: fixed;
135
128
  top: 0; left: 0; width: 100%; height: 100%;
136
129
  pointer-events: none;
137
- z-index: -1;
130
+ z-index: 0;
138
131
  overflow: hidden;
139
132
  }
140
133
 
@@ -143,12 +136,12 @@ body.light-mode .starlight-card {
143
136
  background: white;
144
137
  border-radius: 50%;
145
138
  opacity: 0.3;
146
- animation: twinkle var(--duration, 3s) infinite ease-in-out;
139
+ animation: star-twinkle var(--duration, 3s) infinite ease-in-out;
147
140
  }
148
141
 
149
- @keyframes twinkle {
150
- 0%, 100% { opacity: 0.3; transform: scale(1); }
151
- 50% { opacity: 1; transform: scale(1.2); }
142
+ body.light-mode .star {
143
+ background: var(--color-starlight-blue);
144
+ opacity: 0.15;
152
145
  }
153
146
 
154
147
  /* 5. Dialog & Overlays */
@@ -191,7 +184,7 @@ body.light-mode .dialog-content {
191
184
  position: absolute;
192
185
  top: 100%;
193
186
  left: 0;
194
- background-color: rgba(15, 15, 30, 0.98);
187
+ background-color: var(--color-starlight-deep);;
195
188
  backdrop-filter: blur(20px);
196
189
  border: 1px solid rgba(255, 255, 255, 0.1);
197
190
  border-radius: 0.75rem;
@@ -231,8 +224,8 @@ body.light-mode .dropdown-item {
231
224
  }
232
225
 
233
226
  body.light-mode .dropdown-item:hover {
234
- background-color: #f1f5f9;
235
- color: #1e293b;
227
+ background-color: var(--color-starlight-blue);
228
+ color: black;
236
229
  }
237
230
 
238
231
  /* 7. Input & Glass Fixes */
@@ -271,8 +264,8 @@ body.light-mode .glass {
271
264
 
272
265
  body.light-mode .input-starlight:focus,
273
266
  body.light-mode .textarea-starlight:focus {
274
- border-color: #93c5fd;
275
- box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.08);
267
+ border-color: var(--color-starlight-blue);
268
+ box-shadow: 0 0 0 4px rgba(0, 212, 255, 0.1);
276
269
  }
277
270
 
278
271
  /* 9. Code Interface Window */
@@ -391,7 +384,7 @@ body.light-mode .accordion-starlight.accordion-item {
391
384
  }
392
385
 
393
386
  body.light-mode .accordion-starlight.accordion-item.active {
394
- border-color: #3b82f6;
387
+ border-color: var(--color-starlight-blue);
395
388
  background: #f8fafc;
396
389
  }
397
390
 
@@ -404,6 +397,298 @@ body.light-mode .accordion-starlight .accordion-content {
404
397
  color: #475569 !important;
405
398
  }
406
399
 
400
+ /* 11. Search Input with Icon */
401
+ .search-container {
402
+ position: relative;
403
+ width: 100%;
404
+ max-width: 400px;
405
+ }
406
+
407
+ .search-input {
408
+ padding-left: 3rem !important;
409
+ }
410
+
411
+ .search-icon {
412
+ position: absolute;
413
+ left: 1rem;
414
+ top: 50%;
415
+ transform: translateY(-50%);
416
+ color: var(--text-muted);
417
+ pointer-events: none;
418
+ width: 1.5rem;
419
+ height: 1.5rem;
420
+ }
421
+
422
+ /* 12. Gallery Widget */
423
+ .starlight-gallery {
424
+ display: grid;
425
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
426
+ gap: var(--space-4);
427
+ }
428
+
429
+ .gallery-item {
430
+ position: relative;
431
+ aspect-ratio: 1;
432
+ border-radius: var(--radius-xl);
433
+ overflow: hidden;
434
+ background: var(--glass-bg);
435
+ border: 1px solid var(--glass-border);
436
+ cursor: pointer;
437
+ transition: all var(--transition-base);
438
+ }
439
+
440
+ .gallery-item img {
441
+ width: 100%;
442
+ height: 100%;
443
+ object-fit: cover;
444
+ transition: transform var(--transition-slow);
445
+ }
446
+
447
+ .gallery-item:hover img {
448
+ transform: scale(1.1);
449
+ }
450
+
451
+ .gallery-item:hover {
452
+ border-color: var(--color-starlight-blue);
453
+ box-shadow: 0 0 20px var(--color-starlight-glow);
454
+ }
455
+
456
+ .gallery-overlay {
457
+ position: absolute;
458
+ inset: 0;
459
+ background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
460
+ display: flex;
461
+ align-items: flex-end;
462
+ padding: 1rem;
463
+ opacity: 0;
464
+ transition: opacity 0.3s ease;
465
+ }
466
+
467
+ .gallery-item:hover .gallery-overlay {
468
+ opacity: 1;
469
+ }
470
+
471
+ /* 13. Dashboard Widget */
472
+ .dashboard-grid {
473
+ display: grid;
474
+ grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
475
+ gap: var(--space-6);
476
+ }
477
+
478
+ .stat-card {
479
+ padding: var(--space-6);
480
+ display: flex;
481
+ flex-direction: column;
482
+ gap: var(--space-2);
483
+ }
484
+
485
+ .stat-value {
486
+ font-size: 2.5rem;
487
+ font-weight: 800;
488
+ background: linear-gradient(135deg, #fff 0%, var(--color-starlight-blue) 100%);
489
+ -webkit-background-clip: text;
490
+ -webkit-text-fill-color: transparent;
491
+ }
492
+
493
+ body.light-mode .stat-value {
494
+ background: linear-gradient(135deg, #1e293b 0%, var(--color-starlight-blue) 100%);
495
+ -webkit-background-clip: text;
496
+ -webkit-text-fill-color: transparent;
497
+ }
498
+
499
+ .stat-label {
500
+ text-transform: uppercase;
501
+ letter-spacing: 0.1em;
502
+ font-size: 0.75rem;
503
+ color: var(--text-muted);
504
+ }
505
+
506
+ .stat-trend {
507
+ font-size: 0.875rem;
508
+ display: flex;
509
+ align-items: center;
510
+ gap: 0.25rem;
511
+ }
512
+
513
+ .stat-trend.up { color: var(--color-success); }
514
+ .stat-trend.down { color: var(--color-error); }
515
+
516
+ /* 14. Hamburger Menu Glass */
517
+ .nav-glass {
518
+ background: rgba(255, 255, 255, 0.03);
519
+ backdrop-filter: blur(20px);
520
+ -webkit-backdrop-filter: blur(20px);
521
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
522
+ padding: 1rem 2rem;
523
+ display: flex;
524
+ justify-content: space-between;
525
+ align-items: center;
526
+ position: sticky;
527
+ top: 0;
528
+ z-index: 1000;
529
+ }
530
+
531
+ body.light-mode .nav-glass {
532
+ background: rgba(255, 255, 255, 0.8);
533
+ border-bottom-color: rgba(0, 0, 0, 0.1);
534
+ }
535
+
536
+ .hamburger {
537
+ width: 2.5rem;
538
+ height: 2.5rem;
539
+ display: flex;
540
+ flex-direction: column;
541
+ justify-content: center;
542
+ gap: 0.4rem;
543
+ cursor: pointer;
544
+ background: rgba(255,255,255,0.05);
545
+ border: 1px solid rgba(255,255,255,0.1);
546
+ border-radius: 0.5rem;
547
+ padding: 0.5rem;
548
+ transition: all 0.3s;
549
+ }
550
+
551
+ body.light-mode .hamburger {
552
+ background: rgba(0,0,0,0.02);
553
+ border-color: rgba(0,0,0,0.1);
554
+ }
555
+
556
+ .hamburger:hover {
557
+ background: rgba(255,255,255,0.1);
558
+ border-color: var(--color-starlight-blue);
559
+ }
560
+
561
+ body.light-mode .hamburger:hover {
562
+ background: rgba(0,0,0,0.1);
563
+ }
564
+
565
+ .hamburger span {
566
+ width: 100%;
567
+ height: 2px;
568
+ background: white;
569
+ border-radius: 2px;
570
+ transition: all 0.3s;
571
+ }
572
+
573
+ body.light-mode .hamburger span {
574
+ background: #1e293b;
575
+ }
576
+
577
+ .nav-menu-mobile {
578
+ position: absolute;
579
+ top: 100%;
580
+ right: 2rem;
581
+ width: 250px;
582
+ background: rgba(255, 255, 255, 0.03);
583
+ backdrop-filter: blur(20px);
584
+ -webkit-backdrop-filter: blur(20px);
585
+ border: 1px solid rgba(255, 255, 255, 0.05);
586
+ border-radius: 1rem;
587
+ padding: 1rem;
588
+ margin-top: 0.5rem;
589
+ box-shadow: 0 20px 40px rgba(0,0,0,0.5);
590
+ display: none;
591
+ animation: slideInDown 0.3s ease forwards;
592
+ }
593
+
594
+ body.light-mode .nav-menu-mobile {
595
+ background: rgba(255, 255, 255, 0.8);
596
+ border-color: rgba(0, 0, 0, 0.1);
597
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
598
+ }
599
+
600
+ .nav-menu-mobile.active {
601
+ display: block;
602
+ }
603
+
604
+ @keyframes slideInDown {
605
+ from { opacity: 0; transform: translateY(-10px); }
606
+ to { opacity: 1; transform: translateY(0); }
607
+ }
608
+
609
+ /* 15. More Form Controls */
610
+ .select-starlight {
611
+ appearance: none;
612
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
613
+ background-repeat: no-repeat;
614
+ background-position: right 1rem center;
615
+ background-size: 1.25rem;
616
+ padding-right: 3rem !important;
617
+ }
618
+
619
+ body.light-mode .select-starlight {
620
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%231e293b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
621
+ }
622
+
623
+ .range-starlight {
624
+ appearance: none;
625
+ width: 100%;
626
+ height: 6px;
627
+ background: rgba(255,255,255,0.1);
628
+ border-radius: 3px;
629
+ outline: none;
630
+ }
631
+
632
+ body.light-mode .range-starlight {
633
+ background: rgba(0,0,0,0.1);
634
+ }
635
+
636
+ .range-starlight::-webkit-slider-thumb {
637
+ appearance: none;
638
+ width: 18px;
639
+ height: 18px;
640
+ background: var(--color-starlight-blue);
641
+ border-radius: 50%;
642
+ cursor: pointer;
643
+ box-shadow: 0 0 10px var(--color-starlight-glow);
644
+ transition: all 0.2s;
645
+ }
646
+
647
+ .range-starlight::-webkit-slider-thumb:hover {
648
+ transform: scale(1.2);
649
+ box-shadow: 0 0 20px var(--color-starlight-blue);
650
+ }
651
+
652
+ .toggle-starlight {
653
+ width: 3.5rem;
654
+ height: 1.75rem;
655
+ }
656
+
657
+ .toggle-starlight .toggle-slider {
658
+ background: rgba(255,255,255,0.1);
659
+ border: 1px solid rgba(255,255,255,0.1);
660
+ }
661
+
662
+ body.light-mode .toggle-starlight .toggle-slider {
663
+ background: rgba(0,0,0,0.1);
664
+ border-color: rgba(0,0,0,0.15);
665
+ }
666
+
667
+ body.light-mode .bg-starlight,
668
+ body.light-mode .bg-starlight:hover,
669
+ body.light-mode .hover\:bg-starlight:hover,
670
+ body.light-mode .btn-starlight,
671
+ body.light-mode .btn-starlight:hover,
672
+ body.light-mode .hover\:btn-starlight:hover,
673
+ body.light-mode .btn-primary,
674
+ body.light-mode .btn-primary:hover {
675
+ background: linear-gradient(135deg, #ffb38a 40%, #00d4ff 100%) !important;
676
+ }
677
+
678
+ body.light-mode .text-gradient-starlight {
679
+ background: linear-gradient(135deg, #ffb38a 40%, #00d4ff 100%) !important;
680
+ -webkit-background-clip: text !important;
681
+ -webkit-text-fill-color: transparent !important;
682
+ }
683
+
684
+ body.light-mode .text-success { color: #059669; }
685
+ body.light-mode .text-warning { color: #d97706; }
686
+
687
+ body.light-mode .dialog-content .bg-black\/40 {
688
+ background-color: rgba(0, 0, 0, 0.05);
689
+ border-color: rgba(0, 0, 0, 0.1);
690
+ }
691
+
407
692
  @media (forced-colors: active) {
408
693
  button:focus, input:focus, select:focus, textarea:focus {
409
694
  outline: 2px solid SelectedItem !important;