@@ -790,76 +790,205 @@ li.lang:hover {
790790 }
791791}
792792
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 ;
846804}
847805
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 ;
853902 }
854- & :hover {
855- @include scale (1.05 );
903+ .footer-unit--social {
904+ width : auto ;
905+ flex-shrink : 0 ;
856906 }
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+ }
859991 }
860- .fa {
861- margin-right : 5px ;
862- }
863992}
864993
865994/* Related articles list */
0 commit comments