@@ -790,76 +790,205 @@ li.lang:hover {
790
790
}
791
791
}
792
792
793
- /* Footer wrapper */
794
- .footer-wrap {
795
- background-color : lighten ($black ,90 );
796
- border-top : 1px solid lighten ($black ,70 );
797
- color : lighten ($black ,60 );
798
- @include container ;
799
- @include clearfix ;
800
- clear : both ;
801
- padding-bottom : 1.5em ;
802
- a ,
803
- a :active ,
804
- a :visited ,
805
- p ,
806
- h4 ,
807
- h5 ,
808
- h6 ,
809
- span {
810
- @include font-rem (16 );
811
- }
812
- footer {
813
- padding-top : 0.5em ;
814
- @include grid (12 ,10 );
815
- @include prefix (12 ,1 );
816
- @include suffix (12 ,1 );
817
- @media #{$small } {
818
- @include grid (12 ,6 );
819
- @include prefix (12 ,3 );
820
- @include suffix (12 ,3 );
821
- }
822
- @media #{$x-large } {
823
- @include grid (12 ,4.5 );
824
- @include prefix (12 ,4 );
825
- @include suffix (12 ,3.5 );
826
- }
827
- }
828
- footer div {
829
- @include grid (12 ,6 );
830
- & :last-child {
831
- text-align : right ;
832
- }
833
- }
834
- a {
835
- color : lighten ($black ,60 );
836
- & :visited , & :focus , & :hover , & :active {
837
- color : lighten ($black ,60 );
838
- }
839
- & :hover {
840
- color : $black ;
841
- }
842
- }
843
- .copyright {
844
- @include font-rem (11 );
845
- }
793
+ /* Modern Flexbox Footer */
794
+ .site-footer {
795
+ display : flex ;
796
+ justify-content : center ;
797
+ align-items : center ;
798
+ gap : 2rem ;
799
+ background-color : #f5f5f5 ;
800
+ border-top : 1px solid #d9d9d9 ;
801
+ color : #666666 ;
802
+ font-size : 1rem ;
803
+ min-height : 120px ;
846
804
}
847
805
848
- .footer-link {
849
- display : block ;
850
- margin-bottom : 0.3em ;
851
- & :visited {
852
- color : $black ;
806
+ /* Footer Units */
807
+ .footer-unit {
808
+ display : flex ;
809
+ flex-direction : column ;
810
+ align-items : center ;
811
+ text-align : center ;
812
+ gap : 0.75rem ;
813
+ }
814
+
815
+ // These widths help shape proportional distances between container units and the page margins
816
+ .footer-unit--social {
817
+ width : 340px ;
818
+ }
819
+ .footer-unit--branding {
820
+ width : 320px ;
821
+ }
822
+
823
+ /* X Button */
824
+ .footer-button {
825
+ display : inline-flex ;
826
+ align-items : center ;
827
+ gap : 0.5rem ;
828
+ padding : 0.5rem 1rem ;
829
+ border-radius : 100px ;
830
+ background-color : #000000 ;
831
+ color : #d9d9d9 ;
832
+ text-decoration : none ;
833
+ font-size : 0.9rem ;
834
+ transition : transform 0.2s ease ;
835
+ font-weight : 800 ;
836
+ }
837
+ .footer-button :hover {
838
+ color : #ffffff ;
839
+ }
840
+ .footer-button .x-icon {
841
+ width : 20px ;
842
+ height : 20px ;
843
+ display : block ;
844
+ }
845
+ .footer-button span {
846
+ position : relative ;
847
+ top : -1px ;
848
+ }
849
+
850
+ /* Legal Links */
851
+ .footer-links {
852
+ display : flex ;
853
+ align-items : center ;
854
+ gap : 0.5rem ;
855
+ white-space : nowrap ;
856
+ flex-wrap : nowrap ;
857
+ }
858
+ .footer-links a {
859
+ color : #666666 ;
860
+ text-decoration : none ;
861
+ }
862
+ .footer-links a :hover {
863
+ color : #000000 ;
864
+ }
865
+ .footer-links .separator {
866
+ color : #999999 ;
867
+ user-select : none ;
868
+ }
869
+ .footer-links .rss-icon {
870
+ width : 14px ;
871
+ height : 14px ;
872
+ vertical-align : middle ;
873
+ margin-left : 2px ;
874
+ position : relative ;
875
+ top : -2px ;
876
+ }
877
+
878
+ /* Logo & Copyright */
879
+ .footer-logo-link {
880
+ display : block ;
881
+ transition : transform 0.2s ease ;
882
+ }
883
+ .footer-logo {
884
+ width : 160px ;
885
+ height : auto ;
886
+ display : block ;
887
+ }
888
+ .copyright {
889
+ font-size : 0.7rem ;
890
+ color : #999999 ;
891
+ white-space : nowrap ;
892
+ }
893
+
894
+ /* Mobile Responsive footer */
895
+ @media (max-width : 768px ) {
896
+ .site-footer {
897
+ flex-direction : row ;
898
+ flex-wrap : wrap ;
899
+ gap : 50px ;
900
+ justify-content : center ;
901
+ padding : 0px 20px ;
853
902
}
854
- & :hover {
855
- @include scale (1.05 );
903
+ .footer-unit--social {
904
+ width : auto ;
905
+ flex-shrink : 0 ;
856
906
}
857
- & :active {
858
- @include translate (0 , 2px );
907
+ .footer-unit--branding {
908
+ width : auto ;
909
+ flex-shrink : 0 ;
910
+ }
911
+ .footer-links {
912
+ font-size : 0.9rem ;
913
+ }
914
+ }
915
+
916
+ @media (max-width : 480px ) {
917
+ .footer-links {
918
+ font-size : 0.85rem ;
919
+ }
920
+ .footer-button {
921
+ font-size : 0.85rem ;
922
+ }
923
+ .site-footer {
924
+ padding : 1.5rem 0.3rem ;
925
+ }
926
+ .footer-unit--social {
927
+ width : 300px ;
928
+ }
929
+ }
930
+
931
+ /* keyboard-only focus behavior (keep visual focus for keyboard users) */
932
+ .site-footer {
933
+ .footer-button {
934
+ outline : none ;
935
+ box-shadow : none !important ;
936
+
937
+ & :focus ,
938
+ & :focus-visible {
939
+ outline : 2px solid #9e9e9e ;
940
+ outline-offset : 3px ;
941
+ color : #ffffff ;
942
+ }
943
+
944
+ > span {
945
+ color : inherit ;
946
+ }
947
+
948
+ & :focus:not (:focus-visible ) {
949
+ box-shadow : none !important ;
950
+ outline : none !important ;
951
+ }
952
+ }
953
+
954
+ .footer-logo-link {
955
+ outline : none ;
956
+ box-shadow : none !important ;
957
+
958
+ & :focus ,
959
+ & :focus-visible {
960
+ box-shadow : 0 0 0 3px #000 ;
961
+ border-radius : 3px ;
962
+ outline : 2px solid #000 ;
963
+ outline-offset : 4px ;
964
+ }
965
+
966
+ & :focus:not (:focus-visible ) {
967
+ box-shadow : none !important ;
968
+ outline : none !important ;
969
+ }
970
+ }
971
+
972
+ .footer-links {
973
+ a {
974
+ outline : none ;
975
+ box-shadow : none !important ;
976
+
977
+ & :focus ,
978
+ & :focus-visible {
979
+ box-shadow : 0 0 0 3px #000 ;
980
+ border-radius : 3px ;
981
+ outline : 2px solid #000 ;
982
+ outline-offset : 3px ;
983
+ transition : none ;
984
+ }
985
+
986
+ & :focus:not (:focus-visible ) {
987
+ box-shadow : none !important ;
988
+ outline : none !important ;
989
+ }
990
+ }
859
991
}
860
- .fa {
861
- margin-right : 5px ;
862
- }
863
992
}
864
993
865
994
/* Related articles list */
0 commit comments