@howssatoshi/quantumcss 1.3.1 → 1.4.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.
@@ -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 */
@@ -51,7 +38,10 @@ body.light-mode a:hover {
51
38
  }
52
39
 
53
40
  .starlight-card:hover {
54
- border-color: rgba(0, 212, 255, 0.3);
41
+ border-color: rgba(0, 212, 255, 0.4);
42
+ transform: translateY(-4px);
43
+ box-shadow: 0 12px 40px rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 212, 255, 0.1);
44
+ background-color: rgba(255, 255, 255, 0.04);
55
45
  }
56
46
 
57
47
  body.light-mode .starlight-card {
@@ -79,6 +69,12 @@ body.light-mode .starlight-card {
79
69
 
80
70
  .radio-starlight { border-radius: 50%; }
81
71
 
72
+ body.light-mode .checkbox-starlight,
73
+ body.light-mode .radio-starlight {
74
+ border-color: rgba(0, 0, 0, 0.2);
75
+ background: rgba(0, 0, 0, 0.05);
76
+ }
77
+
82
78
  .checkbox-starlight:checked, .radio-starlight:checked {
83
79
  background: var(--color-starlight-blue);
84
80
  border-color: var(--color-starlight-blue);
@@ -129,12 +125,12 @@ body.light-mode .starlight-card {
129
125
  transform: translateX(-50%) translateY(0);
130
126
  }
131
127
 
132
- /* 4. Skeletons & Twinkle */
133
- .stars-container {
128
+ /* 4. Starlight Stars (Atmospheric Background) */
129
+ .starlight-stars {
134
130
  position: fixed;
135
131
  top: 0; left: 0; width: 100%; height: 100%;
136
132
  pointer-events: none;
137
- z-index: -1;
133
+ z-index: 0;
138
134
  overflow: hidden;
139
135
  }
140
136
 
@@ -143,12 +139,12 @@ body.light-mode .starlight-card {
143
139
  background: white;
144
140
  border-radius: 50%;
145
141
  opacity: 0.3;
146
- animation: twinkle var(--duration, 3s) infinite ease-in-out;
142
+ animation: star-twinkle var(--duration, 3s) infinite ease-in-out;
147
143
  }
148
144
 
149
- @keyframes twinkle {
150
- 0%, 100% { opacity: 0.3; transform: scale(1); }
151
- 50% { opacity: 1; transform: scale(1.2); }
145
+ body.light-mode .star {
146
+ background: var(--color-starlight-blue);
147
+ opacity: 0.15;
152
148
  }
153
149
 
154
150
  /* 5. Dialog & Overlays */
@@ -168,13 +164,71 @@ body.light-mode .starlight-card {
168
164
  backdrop-filter: blur(20px);
169
165
  border: 1px solid rgba(255, 255, 255, 0.1);
170
166
  border-radius: 1.5rem;
171
- padding: 2rem;
167
+ padding: 2.5rem;
172
168
  max-width: 90%;
173
169
  width: 600px;
174
170
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
175
171
  position: relative;
176
172
  }
177
173
 
174
+ .starlight-dialog {
175
+ background-color: rgba(10, 10, 20, 0.98);
176
+ backdrop-filter: blur(24px);
177
+ -webkit-backdrop-filter: blur(24px);
178
+ border: 1px solid rgba(255, 255, 255, 0.1);
179
+ border-radius: 1.5rem;
180
+ padding: 3rem;
181
+ width: 100%;
182
+ max-width: 600px;
183
+ margin: auto;
184
+ position: relative;
185
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
186
+ }
187
+
188
+ body.light-mode .starlight-dialog {
189
+ background-color: rgba(255, 255, 255, 0.98);
190
+ border-color: rgba(0, 0, 0, 0.1);
191
+ color: #1e293b;
192
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
193
+ }
194
+
195
+ .dialog-close {
196
+ position: absolute;
197
+ top: 1.5rem;
198
+ right: 1.5rem;
199
+ width: 2rem;
200
+ height: 2rem;
201
+ border-radius: 50%;
202
+ background: rgba(255, 255, 255, 0.05);
203
+ border: 1px solid rgba(255, 255, 255, 0.1);
204
+ color: white;
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ cursor: pointer;
209
+ transition: all 0.2s;
210
+ padding: 0;
211
+ }
212
+
213
+ body.light-mode .dialog-close {
214
+ background: rgba(0, 0, 0, 0.05);
215
+ border-color: rgba(0, 0, 0, 0.1);
216
+ color: #1e293b;
217
+ }
218
+
219
+ .dialog-close:hover {
220
+ background: rgba(255, 255, 255, 0.15);
221
+ border-color: var(--color-starlight-blue);
222
+ transform: rotate(90deg);
223
+ }
224
+
225
+ .form-row {
226
+ display: flex;
227
+ justify-content: space-between;
228
+ align-items: center;
229
+ gap: 1rem;
230
+ }
231
+
178
232
  body.light-mode .dialog-overlay {
179
233
  background: rgba(255, 255, 255, 0.4);
180
234
  }
@@ -191,7 +245,7 @@ body.light-mode .dialog-content {
191
245
  position: absolute;
192
246
  top: 100%;
193
247
  left: 0;
194
- background-color: rgba(15, 15, 30, 0.98);
248
+ background-color: var(--color-starlight-deep);;
195
249
  backdrop-filter: blur(20px);
196
250
  border: 1px solid rgba(255, 255, 255, 0.1);
197
251
  border-radius: 0.75rem;
@@ -231,8 +285,8 @@ body.light-mode .dropdown-item {
231
285
  }
232
286
 
233
287
  body.light-mode .dropdown-item:hover {
234
- background-color: #f1f5f9;
235
- color: #1e293b;
288
+ background-color: var(--color-starlight-blue);
289
+ color: black;
236
290
  }
237
291
 
238
292
  /* 7. Input & Glass Fixes */
@@ -266,13 +320,15 @@ body.light-mode .glass {
266
320
  .input-starlight:focus, .textarea-starlight:focus {
267
321
  outline: none;
268
322
  border-color: var(--color-starlight-blue);
269
- box-shadow: 0 0 0 4px rgba(0, 212, 255, 0.1);
323
+ box-shadow: 0 0 0 4px rgba(0, 212, 255, 0.1), 0 0 20px rgba(0, 212, 255, 0.1);
324
+ background-color: rgba(255, 255, 255, 0.06);
270
325
  }
271
326
 
272
327
  body.light-mode .input-starlight:focus,
273
328
  body.light-mode .textarea-starlight:focus {
274
- border-color: #93c5fd;
275
- box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.08);
329
+ border-color: var(--color-starlight-blue);
330
+ box-shadow: 0 0 0 4px rgba(0, 212, 255, 0.1), 0 4px 12px rgba(0, 0, 0, 0.05);
331
+ background-color: #ffffff;
276
332
  }
277
333
 
278
334
  /* 9. Code Interface Window */
@@ -391,7 +447,7 @@ body.light-mode .accordion-starlight.accordion-item {
391
447
  }
392
448
 
393
449
  body.light-mode .accordion-starlight.accordion-item.active {
394
- border-color: #3b82f6;
450
+ border-color: var(--color-starlight-blue);
395
451
  background: #f8fafc;
396
452
  }
397
453
 
@@ -407,23 +463,29 @@ body.light-mode .accordion-starlight .accordion-content {
407
463
  /* 11. Search Input with Icon */
408
464
  .search-container {
409
465
  position: relative;
466
+ display: block;
410
467
  width: 100%;
411
- max-width: 400px;
412
468
  }
413
469
 
414
470
  .search-input {
415
471
  padding-left: 3rem !important;
472
+ width: 100%;
416
473
  }
417
474
 
418
475
  .search-icon {
419
476
  position: absolute;
420
- left: 1rem;
477
+ left: 1.125rem;
421
478
  top: 50%;
422
479
  transform: translateY(-50%);
423
480
  color: var(--text-muted);
424
481
  pointer-events: none;
425
482
  width: 1.25rem;
426
483
  height: 1.25rem;
484
+ z-index: 10;
485
+ }
486
+
487
+ body.light-mode .search-icon {
488
+ color: #64748b;
427
489
  }
428
490
 
429
491
  /* 12. Gallery Widget */
@@ -498,7 +560,7 @@ body.light-mode .accordion-starlight .accordion-content {
498
560
  }
499
561
 
500
562
  body.light-mode .stat-value {
501
- background: linear-gradient(135deg, #1e293b 0%, var(--color-primary-600) 100%);
563
+ background: linear-gradient(135deg, #1e293b 0%, var(--color-starlight-blue) 100%);
502
564
  -webkit-background-clip: text;
503
565
  -webkit-text-fill-color: transparent;
504
566
  }
@@ -540,12 +602,56 @@ body.light-mode .nav-glass {
540
602
  border-bottom-color: rgba(0, 0, 0, 0.1);
541
603
  }
542
604
 
605
+ .nav-desktop {
606
+ display: none;
607
+ gap: 2rem;
608
+ align-items: center;
609
+ }
610
+
611
+ .nav-link {
612
+ font-size: 0.875rem;
613
+ font-weight: 500;
614
+ color: rgba(255, 255, 255, 0.7);
615
+ transition: all 0.3s;
616
+ position: relative;
617
+ padding: 0.5rem 0;
618
+ }
619
+
620
+ .nav-link::after {
621
+ content: '';
622
+ position: absolute;
623
+ bottom: 0;
624
+ left: 0;
625
+ width: 0;
626
+ height: 2px;
627
+ background: var(--color-starlight-blue);
628
+ transition: width 0.3s;
629
+ box-shadow: 0 0 10px var(--color-starlight-glow);
630
+ }
631
+
632
+ .nav-link:hover {
633
+ color: white;
634
+ }
635
+
636
+ .nav-link:hover::after {
637
+ width: 100%;
638
+ }
639
+
640
+ body.light-mode .nav-link {
641
+ color: #475569;
642
+ }
643
+
644
+ body.light-mode .nav-link:hover {
645
+ color: #1e293b;
646
+ }
647
+
543
648
  .hamburger {
544
649
  width: 2.5rem;
545
650
  height: 2.5rem;
546
651
  display: flex;
547
652
  flex-direction: column;
548
653
  justify-content: center;
654
+ align-items: center;
549
655
  gap: 0.4rem;
550
656
  cursor: pointer;
551
657
  background: rgba(255,255,255,0.05);
@@ -553,10 +659,11 @@ body.light-mode .nav-glass {
553
659
  border-radius: 0.5rem;
554
660
  padding: 0.5rem;
555
661
  transition: all 0.3s;
662
+ position: relative;
556
663
  }
557
664
 
558
665
  body.light-mode .hamburger {
559
- background: rgba(0,0,0,0.05);
666
+ background: rgba(0,0,0,0.02);
560
667
  border-color: rgba(0,0,0,0.1);
561
668
  }
562
669
 
@@ -570,35 +677,50 @@ body.light-mode .hamburger:hover {
570
677
  }
571
678
 
572
679
  .hamburger span {
573
- width: 100%;
680
+ width: 1.5rem;
574
681
  height: 2px;
575
682
  background: white;
576
683
  border-radius: 2px;
577
684
  transition: all 0.3s;
685
+ transform-origin: center;
578
686
  }
579
687
 
580
688
  body.light-mode .hamburger span {
581
689
  background: #1e293b;
582
690
  }
583
691
 
692
+ .hamburger.active span:nth-child(1) {
693
+ transform: translateY(6px) rotate(45deg);
694
+ }
695
+
696
+ .hamburger.active span:nth-child(2) {
697
+ opacity: 0;
698
+ }
699
+
700
+ .hamburger.active span:nth-child(3) {
701
+ transform: translateY(-6px) rotate(-45deg);
702
+ }
703
+
584
704
  .nav-menu-mobile {
585
705
  position: absolute;
586
706
  top: 100%;
587
707
  right: 2rem;
588
708
  width: 250px;
589
- background: rgba(10, 10, 25, 0.98);
590
- backdrop-filter: blur(25px);
591
- border: 1px solid rgba(255, 255, 255, 0.1);
709
+ background: var(--color-starlight-deep);
710
+ backdrop-filter: blur(20px);
711
+ -webkit-backdrop-filter: blur(20px);
712
+ border: 1px solid rgba(255, 255, 255, 0.05);
592
713
  border-radius: 1rem;
593
714
  padding: 1rem;
594
715
  margin-top: 0.5rem;
595
716
  box-shadow: 0 20px 40px rgba(0,0,0,0.5);
596
717
  display: none;
597
718
  animation: slideInDown 0.3s ease forwards;
719
+ z-index: 1001;
598
720
  }
599
721
 
600
722
  body.light-mode .nav-menu-mobile {
601
- background: rgba(255, 255, 255, 0.98);
723
+ background: rgba(255, 255, 255, 0.95);
602
724
  border-color: rgba(0, 0, 0, 0.1);
603
725
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
604
726
  }
@@ -607,6 +729,20 @@ body.light-mode .nav-menu-mobile {
607
729
  display: block;
608
730
  }
609
731
 
732
+ @media (min-width: 768px) {
733
+ .nav-desktop {
734
+ display: flex;
735
+ }
736
+
737
+ .hamburger {
738
+ display: none;
739
+ }
740
+
741
+ .nav-menu-mobile {
742
+ display: none !important;
743
+ }
744
+ }
745
+
610
746
  @keyframes slideInDown {
611
747
  from { opacity: 0; transform: translateY(-10px); }
612
748
  to { opacity: 1; transform: translateY(0); }
@@ -667,11 +803,24 @@ body.light-mode .range-starlight {
667
803
 
668
804
  body.light-mode .toggle-starlight .toggle-slider {
669
805
  background: rgba(0,0,0,0.1);
670
- border-color: rgba(0,0,0,0.1);
806
+ border-color: rgba(0,0,0,0.15);
671
807
  }
672
808
 
673
- .toggle-starlight .toggle-input:checked + .toggle-slider {
674
- background: var(--color-starlight-blue);
809
+ body.light-mode .bg-starlight,
810
+ body.light-mode .bg-starlight:hover,
811
+ body.light-mode .hover\:bg-starlight:hover,
812
+ body.light-mode .btn-starlight,
813
+ body.light-mode .btn-starlight:hover,
814
+ body.light-mode .hover\:btn-starlight:hover,
815
+ body.light-mode .btn-primary,
816
+ body.light-mode .btn-primary:hover {
817
+ background: linear-gradient(135deg, #ffb38a 40%, #00d4ff 100%) !important;
818
+ }
819
+
820
+ body.light-mode .text-gradient-starlight {
821
+ background: linear-gradient(135deg, #ffb38a 40%, #00d4ff 100%) !important;
822
+ -webkit-background-clip: text !important;
823
+ -webkit-text-fill-color: transparent !important;
675
824
  }
676
825
 
677
826
  body.light-mode .text-success { color: #059669; }
@@ -682,6 +831,100 @@ body.light-mode .dialog-content .bg-black\/40 {
682
831
  border-color: rgba(0, 0, 0, 0.1);
683
832
  }
684
833
 
834
+ /* 18. Semantic Typography Utilities */
835
+ .text-glow {
836
+ text-shadow: 0 0 10px rgba(0, 212, 255, 0.5), 0 0 20px rgba(0, 212, 255, 0.2);
837
+ }
838
+
839
+ .text-glass {
840
+ color: rgba(255, 255, 255, 0.6);
841
+ backdrop-filter: blur(4px);
842
+ -webkit-backdrop-filter: blur(4px);
843
+ }
844
+
845
+ body.light-mode .text-glow {
846
+ text-shadow: 0 0 8px rgba(0, 212, 255, 0.3);
847
+ }
848
+
849
+ body.light-mode .text-glass {
850
+ color: rgba(0, 0, 0, 0.5);
851
+ }
852
+
853
+ /* 17. Skeleton Loading (Starlight Variant) */
854
+ .starlight-loading {
855
+ background: linear-gradient(
856
+ 90deg,
857
+ rgba(255, 255, 255, 0.03) 25%,
858
+ rgba(255, 255, 255, 0.08) 50%,
859
+ rgba(255, 255, 255, 0.03) 75%
860
+ );
861
+ background-size: 200% 100%;
862
+ animation: starlight-shimmer 2s infinite linear;
863
+ border-radius: var(--radius-md);
864
+ min-height: 1rem;
865
+ }
866
+
867
+ @keyframes starlight-shimmer {
868
+ 0% { background-position: 200% 0; }
869
+ 100% { background-position: -200% 0; }
870
+ }
871
+
872
+ body.light-mode .starlight-loading {
873
+ background: linear-gradient(
874
+ 90deg,
875
+ rgba(0, 0, 0, 0.03) 25%,
876
+ rgba(0, 0, 0, 0.06) 50%,
877
+ rgba(0, 0, 0, 0.03) 75%
878
+ );
879
+ background-size: 200% 100%;
880
+ }
881
+
882
+ /* 16. Themed Scrollbars */
883
+ ::-webkit-scrollbar {
884
+ width: 10px;
885
+ height: 10px;
886
+ }
887
+
888
+ ::-webkit-scrollbar-track {
889
+ background: rgba(255, 255, 255, 0.02);
890
+ backdrop-filter: blur(10px);
891
+ }
892
+
893
+ ::-webkit-scrollbar-thumb {
894
+ background: rgba(255, 255, 255, 0.1);
895
+ border: 1px solid rgba(255, 255, 255, 0.05);
896
+ border-radius: 10px;
897
+ transition: all 0.3s;
898
+ }
899
+
900
+ ::-webkit-scrollbar-thumb:hover {
901
+ background: rgba(0, 212, 255, 0.3);
902
+ box-shadow: 0 0 10px rgba(0, 212, 255, 0.2);
903
+ }
904
+
905
+ body.light-mode ::-webkit-scrollbar-track {
906
+ background: rgba(0, 0, 0, 0.03);
907
+ }
908
+
909
+ body.light-mode ::-webkit-scrollbar-thumb {
910
+ background: rgba(0, 0, 0, 0.1);
911
+ border-color: rgba(0, 0, 0, 0.05);
912
+ }
913
+
914
+ body.light-mode ::-webkit-scrollbar-thumb:hover {
915
+ background: var(--color-starlight-blue);
916
+ }
917
+
918
+ /* Firefox Support */
919
+ * {
920
+ scrollbar-width: thin;
921
+ scrollbar-color: rgba(255, 255, 255, 0.1) transparent;
922
+ }
923
+
924
+ body.light-mode * {
925
+ scrollbar-color: rgba(0, 0, 0, 0.1) transparent;
926
+ }
927
+
685
928
  @media (forced-colors: active) {
686
929
  button:focus, input:focus, select:focus, textarea:focus {
687
930
  outline: 2px solid SelectedItem !important;
@@ -700,6 +943,40 @@ body.light-mode .dialog-content .bg-black\/40 {
700
943
  }
701
944
 
702
945
  .btn-starlight {
703
- border: 2px solid ButtonText !important;
946
+ background: linear-gradient(135deg, var(--color-starlight-peach) 0%, var(--color-starlight-blue) 100%);
947
+ color: #000;
948
+ font-weight: 700;
949
+ border: none;
950
+ border-radius: 0.5rem;
951
+ padding: 0 1.5rem;
952
+ height: 3rem;
953
+ display: inline-flex;
954
+ align-items: center;
955
+ justify-content: center;
956
+ cursor: pointer;
957
+ transition: all 0.2s ease;
958
+ box-shadow: 0 0 20px rgba(0, 212, 255, 0.3);
959
+ text-decoration: none;
704
960
  }
705
- }
961
+
962
+ .btn-starlight:hover {
963
+ transform: translateY(-2px);
964
+ box-shadow: 0 5px 25px rgba(0, 212, 255, 0.4);
965
+ filter: brightness(1.1);
966
+ }
967
+
968
+ .btn-starlight:active {
969
+ transform: translateY(0) scale(0.95);
970
+ box-shadow: 0 2px 10px rgba(0, 212, 255, 0.2);
971
+ filter: brightness(0.9);
972
+ }
973
+
974
+ .btn-starlight:focus-visible {
975
+ outline: 2px solid white;
976
+ outline-offset: 2px;
977
+ box-shadow: 0 0 0 4px rgba(0, 212, 255, 0.3);
978
+ }
979
+
980
+ body.light-mode .btn-starlight:focus-visible {
981
+ outline-color: var(--color-starlight-blue);
982
+ }}