@howssatoshi/quantumcss 1.4.1 → 1.4.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.
@@ -158,12 +158,18 @@ body.light-mode .btn-secondary {
158
158
  /* Card Component */
159
159
  .card {
160
160
  background-color: white;
161
+ color: #1e293b;
161
162
  border-radius: var(--radius-lg);
162
163
  box-shadow: var(--shadow-md);
163
164
  overflow: hidden;
164
165
  transition: all var(--duration-200) var(--ease-in-out);
165
166
  }
166
167
 
168
+ body.light-mode .card {
169
+ background-color: white;
170
+ color: #1e293b;
171
+ }
172
+
167
173
  .card:hover {
168
174
  box-shadow: var(--shadow-lg);
169
175
  transform: translateY(-2px);
@@ -182,6 +188,12 @@ body.light-mode .btn-secondary {
182
188
  padding: var(--space-6);
183
189
  border-top: 1px solid #e5e7eb;
184
190
  background-color: #f9fafb;
191
+ color: #1e293b;
192
+ }
193
+
194
+ body.light-mode .card-footer {
195
+ background-color: #f9fafb;
196
+ color: #1e293b;
185
197
  }
186
198
 
187
199
  /* Input Component */
@@ -192,10 +204,16 @@ body.light-mode .btn-secondary {
192
204
  border: 1px solid #d1d5db;
193
205
  border-radius: var(--radius-md);
194
206
  background-color: white;
207
+ color: #1e293b;
195
208
  font-size: 1rem;
196
209
  transition: all var(--duration-150) var(--ease-in-out);
197
210
  }
198
211
 
212
+ body.light-mode .input {
213
+ background-color: white;
214
+ color: #1e293b;
215
+ }
216
+
199
217
  textarea.input {
200
218
  min-height: 100px;
201
219
  }
@@ -237,6 +255,11 @@ input[type="date"]::-webkit-calendar-picker-indicator {
237
255
  cursor: not-allowed;
238
256
  }
239
257
 
258
+ body.light-mode .input:disabled {
259
+ background-color: #f3f4f6;
260
+ color: #6b7280;
261
+ }
262
+
240
263
  .input-error {
241
264
  border-color: var(--color-error);
242
265
  }
@@ -366,6 +389,7 @@ body.light-mode .badge-error {
366
389
 
367
390
  .modal-content {
368
391
  background-color: white;
392
+ color: #1e293b;
369
393
  border-radius: var(--radius-lg);
370
394
  box-shadow: var(--shadow-2xl);
371
395
  max-width: 90vw;
@@ -373,6 +397,11 @@ body.light-mode .badge-error {
373
397
  overflow-y: auto;
374
398
  }
375
399
 
400
+ body.light-mode .modal-content {
401
+ background-color: white;
402
+ color: #1e293b;
403
+ }
404
+
376
405
  /* Loading Spinner */
377
406
  .spinner {
378
407
  display: inline-block;
@@ -445,6 +474,7 @@ body.light-mode .skeleton {
445
474
  top: 100%;
446
475
  left: 0;
447
476
  background-color: white;
477
+ color: #1e293b;
448
478
  border: 1px solid #e5e7eb;
449
479
  border-radius: var(--radius-md);
450
480
  box-shadow: var(--shadow-lg);
@@ -456,6 +486,11 @@ body.light-mode .skeleton {
456
486
  transition: all var(--duration-150) var(--ease-in-out);
457
487
  }
458
488
 
489
+ body.light-mode .dropdown-content {
490
+ background-color: white;
491
+ color: #1e293b;
492
+ }
493
+
459
494
  .dropdown.active .dropdown-content {
460
495
  opacity: 1;
461
496
  visibility: visible;
@@ -470,11 +505,22 @@ body.light-mode .skeleton {
470
505
  background: none;
471
506
  border: none;
472
507
  cursor: pointer;
508
+ color: #1e293b;
473
509
  transition: background-color var(--duration-150) var(--ease-in-out);
474
510
  }
475
511
 
476
512
  .dropdown-item:hover {
477
513
  background-color: #f3f4f6;
514
+ color: #1e293b;
515
+ }
516
+
517
+ body.light-mode .dropdown-item {
518
+ color: #1e293b;
519
+ }
520
+
521
+ body.light-mode .dropdown-item:hover {
522
+ background-color: #f3f4f6;
523
+ color: #1e293b;
478
524
  }
479
525
 
480
526
  /* Accordion Component */
@@ -488,6 +534,7 @@ body.light-mode .skeleton {
488
534
  .accordion-header {
489
535
  padding: var(--space-4);
490
536
  background-color: #f9fafb;
537
+ color: #1e293b;
491
538
  cursor: pointer;
492
539
  display: flex;
493
540
  justify-content: space-between;
@@ -497,16 +544,33 @@ body.light-mode .skeleton {
497
544
 
498
545
  .accordion-header:hover {
499
546
  background-color: #f3f4f6;
547
+ color: #1e293b;
500
548
  }
501
549
 
502
550
  .accordion-content {
503
551
  padding: var(--space-4);
504
552
  background-color: white;
553
+ color: #1e293b;
505
554
  max-height: 0;
506
555
  overflow: hidden;
507
556
  transition: max-height var(--duration-300) var(--ease-in-out);
508
557
  }
509
558
 
559
+ body.light-mode .accordion-header {
560
+ background-color: #f9fafb;
561
+ color: #1e293b;
562
+ }
563
+
564
+ body.light-mode .accordion-header:hover {
565
+ background-color: #f3f4f6;
566
+ color: #1e293b;
567
+ }
568
+
569
+ body.light-mode .accordion-content {
570
+ background-color: white;
571
+ color: #1e293b;
572
+ }
573
+
510
574
  .accordion-item.active .accordion-content {
511
575
  max-height: 500px;
512
576
  }
@@ -522,23 +586,44 @@ body.light-mode .skeleton {
522
586
  /* Tab Component */
523
587
  .tab-list {
524
588
  display: flex;
525
- border-bottom: 1px solid #e5e7eb;
589
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
526
590
  }
527
591
 
528
592
  .tab-button {
529
- padding: var(--space-2) var(--space-4);
593
+ padding: var(--space-3) var(--space-4);
530
594
  background: none;
531
595
  border: none;
532
596
  cursor: pointer;
533
597
  border-bottom: 2px solid transparent;
598
+ color: var(--text-secondary);
599
+ font-weight: 500;
534
600
  transition: all var(--duration-150) var(--ease-in-out);
535
601
  }
536
602
 
537
603
  .tab-button:hover {
538
- background-color: #f3f4f6;
604
+ background-color: rgba(255, 255, 255, 0.05);
605
+ color: var(--text-primary);
539
606
  }
540
607
 
541
608
  .tab-button.active {
609
+ border-bottom-color: var(--color-starlight-blue);
610
+ color: var(--color-starlight-blue);
611
+ }
612
+
613
+ body.light-mode .tab-list {
614
+ border-bottom-color: #e2e8f0;
615
+ }
616
+
617
+ body.light-mode .tab-button {
618
+ color: #64748b;
619
+ }
620
+
621
+ body.light-mode .tab-button:hover {
622
+ background-color: #f1f5f9;
623
+ color: #0f172a;
624
+ }
625
+
626
+ body.light-mode .tab-button.active {
542
627
  border-bottom-color: var(--color-primary);
543
628
  color: var(--color-primary);
544
629
  }
@@ -657,4 +742,80 @@ body.light-mode .skeleton {
657
742
  @keyframes slideDown {
658
743
  from { transform: translateY(-20px); opacity: 0; }
659
744
  to { transform: translateY(0); opacity: 1; }
745
+ }
746
+
747
+ /* Table Component */
748
+ .table-wrapper {
749
+ width: 100%;
750
+ overflow-x: auto;
751
+ -webkit-overflow-scrolling: touch;
752
+ }
753
+
754
+ .table-wrapper::-webkit-scrollbar {
755
+ height: 8px;
756
+ }
757
+
758
+ .table-wrapper::-webkit-scrollbar-track {
759
+ background: rgba(255, 255, 255, 0.05);
760
+ border-radius: 4px;
761
+ }
762
+
763
+ .table-wrapper::-webkit-scrollbar-thumb {
764
+ background: var(--color-starlight-blue, #3b82f6);
765
+ border-radius: 4px;
766
+ }
767
+
768
+ body.light-mode .table-wrapper::-webkit-scrollbar-track {
769
+ background: rgba(0, 0, 0, 0.05);
770
+ }
771
+
772
+ .table {
773
+ width: 100%;
774
+ border-collapse: collapse;
775
+ font-size: 0.875rem;
776
+ text-align: left;
777
+ color: var(--text-primary);
778
+ }
779
+
780
+ .table th {
781
+ padding: var(--space-3) var(--space-4);
782
+ font-weight: 600;
783
+ background-color: rgba(255, 255, 255, 0.05);
784
+ border-bottom: 2px solid rgba(255, 255, 255, 0.1);
785
+ color: var(--text-primary);
786
+ }
787
+
788
+ .table td {
789
+ padding: var(--space-3) var(--space-4);
790
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
791
+ color: var(--text-secondary);
792
+ }
793
+
794
+ .table tbody tr:hover {
795
+ background-color: rgba(255, 255, 255, 0.03);
796
+ }
797
+
798
+ /* Light Mode Table Styles */
799
+ body.light-mode .table th {
800
+ background-color: #f8fafc;
801
+ border-bottom-color: #e2e8f0;
802
+ color: #0f172a;
803
+ }
804
+
805
+ body.light-mode .table td {
806
+ border-bottom-color: #e2e8f0;
807
+ color: #334155;
808
+ }
809
+
810
+ body.light-mode .table tbody tr:hover {
811
+ background-color: #f1f5f9;
812
+ }
813
+
814
+ /* Overflow Utility */
815
+ .overflow-x-auto {
816
+ overflow-x: auto;
817
+ }
818
+
819
+ .overflow-y-auto {
820
+ overflow-y: auto;
660
821
  }
@@ -167,6 +167,8 @@ body.light-mode .star {
167
167
  padding: 2.5rem;
168
168
  max-width: 90%;
169
169
  width: 600px;
170
+ max-height: 85vh;
171
+ overflow-y: auto;
170
172
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
171
173
  position: relative;
172
174
  }
@@ -180,11 +182,36 @@ body.light-mode .star {
180
182
  padding: 3rem;
181
183
  width: 100%;
182
184
  max-width: 600px;
185
+ max-height: 85vh;
186
+ overflow-y: auto;
183
187
  margin: auto;
184
188
  position: relative;
185
189
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);
186
190
  }
187
191
 
192
+ /* Custom scrollbar for dialogs */
193
+ .dialog-content::-webkit-scrollbar,
194
+ .starlight-dialog::-webkit-scrollbar {
195
+ width: 8px;
196
+ }
197
+
198
+ .dialog-content::-webkit-scrollbar-track,
199
+ .starlight-dialog::-webkit-scrollbar-track {
200
+ background: rgba(255, 255, 255, 0.05);
201
+ border-radius: 4px;
202
+ }
203
+
204
+ .dialog-content::-webkit-scrollbar-thumb,
205
+ .starlight-dialog::-webkit-scrollbar-thumb {
206
+ background: var(--color-starlight-blue, #3b82f6);
207
+ border-radius: 4px;
208
+ }
209
+
210
+ body.light-mode .dialog-content::-webkit-scrollbar-track,
211
+ body.light-mode .starlight-dialog::-webkit-scrollbar-track {
212
+ background: rgba(0, 0, 0, 0.05);
213
+ }
214
+
188
215
  body.light-mode .starlight-dialog {
189
216
  background-color: rgba(255, 255, 255, 0.98);
190
217
  border-color: rgba(0, 0, 0, 0.1);
@@ -245,7 +272,7 @@ body.light-mode .dialog-content {
245
272
  position: absolute;
246
273
  top: 100%;
247
274
  left: 0;
248
- background-color: var(--color-starlight-deep);;
275
+ background-color: var(--color-starlight-deep);
249
276
  backdrop-filter: blur(20px);
250
277
  border: 1px solid rgba(255, 255, 255, 0.1);
251
278
  border-radius: 0.75rem;
@@ -254,6 +281,19 @@ body.light-mode .dialog-content {
254
281
  min-width: 200px;
255
282
  z-index: 600;
256
283
  box-shadow: 0 20px 40px rgba(0,0,0,0.4);
284
+ opacity: 0;
285
+ visibility: hidden;
286
+ transform: translateY(10px);
287
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
288
+ pointer-events: none;
289
+ }
290
+
291
+ .dropdown:hover .dropdown-menu,
292
+ .dropdown.active .dropdown-menu {
293
+ opacity: 1;
294
+ visibility: visible;
295
+ transform: translateY(0);
296
+ pointer-events: auto;
257
297
  }
258
298
 
259
299
  .dropdown-item {
@@ -584,30 +624,42 @@ body.light-mode .stat-value {
584
624
 
585
625
  /* 14. Hamburger Menu Glass */
586
626
  .nav-glass {
587
- background: rgba(255, 255, 255, 0.03);
588
- backdrop-filter: blur(20px);
589
- -webkit-backdrop-filter: blur(20px);
590
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
591
- padding: 1rem 2rem;
627
+ background: rgba(255, 255, 255, 0.05);
628
+ backdrop-filter: blur(24px);
629
+ -webkit-backdrop-filter: blur(24px);
630
+ border-bottom: 1px solid rgba(255, 255, 255, 0.1);
592
631
  display: flex;
593
- justify-content: space-between;
594
- align-items: center;
632
+ flex-direction: column;
595
633
  position: sticky;
596
634
  top: 0;
597
635
  z-index: 1000;
636
+ padding: 0;
598
637
  }
599
638
 
600
639
  body.light-mode .nav-glass {
601
- background: rgba(255, 255, 255, 0.8);
602
- border-bottom-color: rgba(0, 0, 0, 0.1);
640
+ background: rgba(255, 255, 255, 0.95);
641
+ border-bottom-color: rgba(0, 0, 0, 0.08);
642
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
603
643
  }
604
644
 
605
645
  .nav-desktop {
606
646
  display: none;
607
- gap: 2rem;
608
647
  align-items: center;
609
648
  }
610
649
 
650
+ .nav-list {
651
+ display: flex;
652
+ list-style: none;
653
+ gap: 2rem;
654
+ margin: 0;
655
+ padding: 0;
656
+ }
657
+
658
+ .nav-list.vertical {
659
+ flex-direction: column;
660
+ gap: 0.5rem;
661
+ }
662
+
611
663
  .nav-link {
612
664
  font-size: 0.875rem;
613
665
  font-weight: 500;
@@ -615,28 +667,44 @@ body.light-mode .nav-glass {
615
667
  transition: all 0.3s;
616
668
  position: relative;
617
669
  padding: 0.5rem 0;
670
+ display: inline-flex;
671
+ align-items: center;
672
+ }
673
+
674
+ .nav-list.vertical .nav-link {
675
+ width: 100%;
676
+ padding: 0.75rem 1rem;
677
+ border-radius: 0.5rem;
678
+ }
679
+
680
+ .nav-list.vertical .dropdown {
681
+ width: 100%;
682
+ display: block;
683
+ }
684
+
685
+ .nav-list.vertical .nav-link:hover {
686
+ background: rgba(255, 255, 255, 0.05);
687
+ color: var(--color-starlight-blue);
618
688
  }
619
689
 
620
690
  .nav-link::after {
621
691
  content: '';
622
692
  position: absolute;
623
693
  bottom: 0;
624
- left: 0;
694
+ left: 50%;
625
695
  width: 0;
626
696
  height: 2px;
627
697
  background: var(--color-starlight-blue);
628
- transition: width 0.3s;
698
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
629
699
  box-shadow: 0 0 10px var(--color-starlight-glow);
630
- }
631
-
632
- .nav-link:hover {
633
- color: white;
700
+ transform: translateX(-50%);
634
701
  }
635
702
 
636
703
  .nav-link:hover::after {
637
- width: 100%;
704
+ width: 80%;
638
705
  }
639
706
 
707
+
640
708
  body.light-mode .nav-link {
641
709
  color: #475569;
642
710
  }
@@ -689,44 +757,66 @@ body.light-mode .hamburger span {
689
757
  background: #1e293b;
690
758
  }
691
759
 
692
- .hamburger.active span:nth-child(1) {
693
- transform: translateY(6px) rotate(45deg);
760
+ .hamburger.active span {
761
+ background-color: var(--color-starlight-blue);
762
+ box-shadow: 0 0 10px var(--color-starlight-glow);
694
763
  }
695
764
 
696
- .hamburger.active span:nth-child(2) {
765
+ .nav-menu-mobile {
766
+ width: 100%;
767
+ background: rgba(0, 0, 0, 0.2);
768
+ backdrop-filter: blur(10px);
769
+ -webkit-backdrop-filter: blur(10px);
770
+ border-top: 1px solid rgba(255, 255, 255, 0.05);
771
+ padding: 0;
772
+ max-height: 0;
773
+ overflow: hidden;
774
+ transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
697
775
  opacity: 0;
698
776
  }
699
777
 
700
- .hamburger.active span:nth-child(3) {
701
- transform: translateY(-6px) rotate(-45deg);
778
+ .nav-menu-mobile.active {
779
+ display: block;
780
+ max-height: 500px;
781
+ padding: 1.5rem 2rem;
782
+ opacity: 1;
702
783
  }
703
784
 
704
- .nav-menu-mobile {
705
- position: absolute;
706
- top: 100%;
707
- right: 2rem;
708
- width: 250px;
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);
713
- border-radius: 1rem;
714
- padding: 1rem;
715
- margin-top: 0.5rem;
716
- box-shadow: 0 20px 40px rgba(0,0,0,0.5);
717
- display: none;
718
- animation: slideInDown 0.3s ease forwards;
719
- z-index: 1001;
785
+ body.light-mode .nav-menu-mobile {
786
+ background: #ffffff;
787
+ border-top-color: rgba(0, 0, 0, 0.08);
788
+ box-shadow: 0 15px 30px rgba(0, 0, 0, 0.05);
720
789
  }
721
790
 
722
- body.light-mode .nav-menu-mobile {
723
- background: rgba(255, 255, 255, 0.95);
724
- border-color: rgba(0, 0, 0, 0.1);
725
- box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
791
+ /* Vertical Accordion Dropdowns */
792
+ .nav-list.vertical .dropdown-menu {
793
+ position: static;
794
+ opacity: 1;
795
+ visibility: visible;
796
+ transform: none;
797
+ box-shadow: none;
798
+ border: none;
799
+ padding: 0 0 0 1.5rem;
800
+ margin: 0;
801
+ max-height: 0;
802
+ overflow: hidden;
803
+ transition: all 0.3s ease;
804
+ background: transparent;
805
+ pointer-events: none;
726
806
  }
727
807
 
728
- .nav-menu-mobile.active {
729
- display: block;
808
+ .nav-list.vertical .dropdown.active .dropdown-menu {
809
+ max-height: 300px;
810
+ padding-top: 0.5rem;
811
+ padding-bottom: 0.5rem;
812
+ pointer-events: auto;
813
+ }
814
+
815
+ .nav-list.vertical .dropdown-item {
816
+ padding: 0.5rem 1rem;
817
+ font-size: 0.825rem;
818
+ border-left: 1px solid rgba(255, 255, 255, 0.1);
819
+ border-radius: 0;
730
820
  }
731
821
 
732
822
  @media (min-width: 768px) {
@@ -748,6 +838,23 @@ body.light-mode .nav-menu-mobile {
748
838
  to { opacity: 1; transform: translateY(0); }
749
839
  }
750
840
 
841
+ .starlight-nav.vertical {
842
+ flex-direction: column;
843
+ height: 100%;
844
+ width: 280px !important;
845
+ min-width: 280px !important;
846
+ border-bottom: none;
847
+ border-right: 1px solid rgba(255, 255, 255, 0.1);
848
+ padding: 2.5rem 1.5rem;
849
+ align-items: flex-start;
850
+ justify-content: flex-start;
851
+ }
852
+
853
+ body.light-mode .starlight-nav.vertical {
854
+ background: rgba(255, 255, 255, 0.98);
855
+ border-right-color: rgba(0, 0, 0, 0.08);
856
+ }
857
+
751
858
  /* 15. More Form Controls */
752
859
  .select-starlight {
753
860
  appearance: none;
@@ -796,6 +903,17 @@ body.light-mode .range-starlight {
796
903
  height: 1.75rem;
797
904
  }
798
905
 
906
+ .toggle-starlight .toggle-slider:before {
907
+ height: 1.25rem;
908
+ width: 1.25rem;
909
+ top: 0.25rem;
910
+ left: 0.25rem;
911
+ }
912
+
913
+ .toggle-starlight input:checked + .toggle-slider:before {
914
+ transform: translateX(1.75rem);
915
+ }
916
+
799
917
  .toggle-starlight .toggle-slider {
800
918
  background: rgba(255,255,255,0.1);
801
919
  border: 1px solid rgba(255,255,255,0.1);