@@ -608,81 +608,111 @@ footer {
608
608
border-top : 1px solid var (--border-color );
609
609
}
610
610
611
- /* Dark mode toggle button */
612
- .theme-toggle-single {
613
- background-color : rgba ( 0 , 47 , 108 , 0.1 ) ;
611
+ /* Dark mode toggle button with dual icons */
612
+ .theme-toggle-dual {
613
+ background : none ;
614
614
border : none;
615
- color : # 002F6C ;
616
615
cursor : pointer;
617
- font-size : 1rem ;
618
- padding : 0.5rem 0.75rem ;
619
- transition : all 0.3s ease;
620
- border-radius : 20px ;
616
+ padding : 0 ;
621
617
-webkit-tap-highlight-color : transparent;
622
618
touch-action : manipulation;
623
619
position : relative;
624
620
z-index : 1000 ;
625
621
}
626
622
627
- /* Icon animation */
628
- .theme-toggle-single i {
629
- transition : transform 0.3s ease;
623
+ .toggle-track {
624
+ display : inline-flex;
625
+ align-items : center;
626
+ background-color : rgba (0 , 47 , 108 , 0.15 );
627
+ border-radius : 20px ;
628
+ padding : 4px ;
629
+ position : relative;
630
+ transition : background-color 0.3s ease;
631
+ gap : 6px ;
630
632
}
631
633
632
- .theme-toggle-single : active i {
633
- transform : rotate (180deg ) scale (0.9 );
634
+ .toggle-track i {
635
+ font-size : 0.9rem ;
636
+ padding : 4px 6px ;
637
+ position : relative;
638
+ z-index : 2 ;
639
+ transition : color 0.3s ease;
634
640
}
635
641
636
- /* In light navbar */
637
- .navbar-light .theme-toggle-single {
638
- background-color : rgba (0 , 47 , 108 , 0.1 );
642
+ .toggle-track .fa-sun {
639
643
color : # 002F6C ;
640
644
}
641
645
642
- .theme-toggle-single : hover {
643
- background-color : rgba (0 , 47 , 108 , 0.2 );
644
- transform : scale (1.05 );
646
+ .toggle-track .fa-moon {
647
+ color : rgba (0 , 47 , 108 , 0.4 );
645
648
}
646
649
647
- .theme-toggle-single : active {
648
- transform : scale (0.95 );
650
+ .toggle-thumb {
651
+ position : absolute;
652
+ left : 4px ;
653
+ top : 4px ;
654
+ width : calc (50% - 4px );
655
+ height : calc (100% - 8px );
656
+ background-color : white;
657
+ border-radius : 16px ;
658
+ box-shadow : 0 2px 4px rgba (0 , 0 , 0 , 0.2 );
659
+ transition : transform 0.3s ease;
649
660
}
650
661
651
- .theme-toggle-single : focus {
662
+ .theme-toggle-dual : hover .toggle-track {
663
+ background-color : rgba (0 , 47 , 108 , 0.25 );
664
+ }
665
+
666
+ .theme-toggle-dual : focus {
652
667
outline : none;
668
+ }
669
+
670
+ .theme-toggle-dual : focus .toggle-track {
653
671
box-shadow : 0 0 0 3px rgba (0 , 47 , 108 , 0.3 );
654
672
}
655
673
656
- /* Dark theme adjustments */
657
- [data-theme = "dark" ] .theme-toggle-single {
658
- background-color : rgba (255 , 255 , 255 , 0.1 );
659
- color : # e8e8e8 ;
674
+ /* Dark theme state */
675
+ [data-theme = "dark" ] .toggle-track {
676
+ background-color : rgba (255 , 255 , 255 , 0.15 );
660
677
}
661
678
662
- [data-theme = "dark" ] .navbar-light .theme-toggle-single {
663
- background-color : rgba (255 , 255 , 255 , 0.1 );
679
+ [data-theme = "dark" ] .toggle-track .fa-sun {
680
+ color : rgba (255 , 255 , 255 , 0.4 );
681
+ }
682
+
683
+ [data-theme = "dark" ] .toggle-track .fa-moon {
664
684
color : # e8e8e8 ;
665
685
}
666
686
667
- [data-theme = "dark" ] .theme-toggle-single : hover {
668
- background-color : rgba (255 , 255 , 255 , 0.2 );
687
+ [data-theme = "dark" ] .toggle-thumb {
688
+ transform : translateX (100% );
689
+ background-color : rgba (255 , 255 , 255 , 0.9 );
669
690
}
670
691
671
- [data-theme = "dark" ] .theme-toggle-single : focus {
692
+ [data-theme = "dark" ] .theme-toggle-dual : hover .toggle-track {
693
+ background-color : rgba (255 , 255 , 255 , 0.25 );
694
+ }
695
+
696
+ [data-theme = "dark" ] .theme-toggle-dual : focus .toggle-track {
672
697
box-shadow : 0 0 0 3px rgba (255 , 255 , 255 , 0.3 );
673
698
}
674
699
675
700
/* Mobile styling */
676
701
@media (max-width : 767px ) {
677
- .theme-toggle-single {
678
- padding : 0.4rem 0.6rem ;
679
- font-size : 0.9rem ;
702
+ .toggle-track {
703
+ padding : 3px ;
704
+ gap : 4px ;
705
+ }
706
+
707
+ .toggle-track i {
708
+ font-size : 0.8rem ;
709
+ padding : 3px 5px ;
680
710
}
681
711
}
682
712
683
713
/* Align with nav items on desktop */
684
714
@media (min-width : 768px ) {
685
- .navbar-nav .theme-toggle-single {
715
+ .navbar-nav .theme-toggle-dual {
686
716
margin-top : 0.5rem ;
687
717
margin-bottom : 0.5rem ;
688
718
}
0 commit comments