media/css/m24/components/footer-refresh.scss (418 lines of code) (raw):

// This Source Code Form is subject to the terms of the Mozilla Public // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. @use '../vars/lib' as *; $max-footer-content-width: $content-max; @mixin divider-line { border-bottom: $border-width solid $m24-color-light-gray; } // whole footer .moz24-footer { @include invert-colors; background-color: $m24-color-alt-white; color: $m24-color-black; padding-top: $spacer-xl; *:focus, *:focus-visible { outline-offset: $spacer-2xs; } } // main content .moz24-footer-content { @include container; margin: 0 auto; padding-bottom: $container-padding } // primary nav .moz24-footer-primary { margin: $spacer-lg 0; display: flex; flex-direction: column; @media #{$mq-lg} { flex-direction: row; justify-content: space-between; align-items: flex-start; } } .moz24-footer-sections-container { display: flex; flex-direction: column; gap: $spacer-lg; width: 100%; @media #{$mq-lg} { flex-direction: row; justify-content: space-between; align-items: flex-start; gap: $grid-gutter; } @media #{$mq-xl} { gap: grid(1); } } .moz24-footer-advertising { @include divider-line; padding-bottom: $spacer-lg; width: 100%; @media #{$mq-lg} { max-width: 343px; border-bottom: transparent; } h2 { color: $m24-color-black; } } .moz24-footer-advertising-wrapper { width: 100%; } .moz24-footer-advertising-link { font-weight: 600; background-color: $m24-color-alt-white; padding: 8px 24px; border: $border-width solid $m24-color-black; text-align: center; margin-top: $spacer-lg; display: block; @media #{$mq-sm} { width: fit-content; } &:link, &:visited { color: $m24-color-black; text-decoration: none; } &:active, &:hover, &:focus, &:focus-visible { background-color: $m24-color-alt-black; color: $m24-color-white; .mzp-c-button-icon-end path { fill: $m24-color-white; } .mzp-c-button-icon-text { color: $m24-color-white; } } .mzp-c-button-icon-text span { @include visually-hidden; } } .moz24-footer-links { @include divider-line; @media #{$mq-xs} { display: grid; grid-template-rows: 1fr 1fr; grid-template-columns: 1fr 1fr; column-gap: $grid-gutter; place-items: stretch start; } @media #{$mq-sm} { display: flex; flex-direction: row; justify-content: flex-start; align-items: start; gap: grid(1); } @media #{$mq-lg} { justify-content: flex-end; border-bottom: transparent; width: 100%; gap: $grid-gutter; section { width: calc((100% - 3 * $grid-gutter) / 3); } } } .moz24-footer-socials { @include divider-line; @media #{$mq-lg} { border-bottom: transparent; } } .moz24-footer-refresh-social-wrapper { display: flex; align-items: center; margin-bottom: 32px; @media #{$mq-md} { flex-direction: column; justify-content: center; align-items: flex-start; } @media #{$mq-lg} { align-items: flex-end; } } .moz24-footer-heading-social { padding: 0; font-family: var(--body-font-family); color: $m24-color-black; margin: 0; font-size: $text-body-sm; font-weight: 400; @media #{$mq-md} { margin-bottom: $spacer-sm; } } .moz24-footer-social-links { margin: 0 0 0 $spacer-lg; display: flex; background-color: #161616; // hard-coded value as a fallback for readability on older browsers @media #{$mq-md} { margin: 0; } li { margin-right: $spacer-2xs; display: inline-block; &:last-of-type { @include bidi(((margin-right, 0, 0), (margin-left, 0, 0))); } a { @include bidi(((margin-right, 8px, 0), (margin-left, 0, 8px))); @include image-replaced; background-repeat: no-repeat; background-size: 16px 16px; background-position: center center; opacity: .45; border-bottom: 1px solid rgba(0,0,0,0); display: block; height: 24px; width: 24px; &:last-of-type { @include bidi(((margin-right, 0, 0), (margin-left, 0, 0))); } &:hover, &:focus { opacity: 1; border-bottom-color: transparent; } &.linkedin { background-image: url('/media/protocol/img/icons/social/linkedin/white.svg'); } &.tiktok { background-image: url('/media/protocol/img/icons/social/tiktok/white.svg'); } &.spotify { background-image: url('/media/protocol/img/icons/social/spotify/white.svg'); } &.twitter { background-image: url('/media/protocol/img/icons/social/x/white.svg'); } &.bluesky { background-image: url('/media/img/icons/social/bluesky/white.svg'); } &.instagram { background-image: url('/media/protocol/img/icons/social/instagram/white.svg'); } &.youtube { background-image: url('/media/protocol/img/icons/social/youtube/white.svg'); } } } } .moz24-footer-label { color: $m24-color-mid-gray; font-size: $text-body-sm; font-weight: 600; @include bidi(((margin-right, 8px, 0), (margin-left, 0, 8px))); } .moz24-footer-primary-list { li { padding-bottom: $spacer-xs; } a, a:link, a:visited { text-decoration: none; position: relative; color: $m24-color-black; font-weight: 400; } a:hover, a:link:hover, a:visited:hover { color: $m24-color-black; &::after { display: block; content: ""; position: absolute; width: 100%; height: 1px; left: 0; bottom: 1px; background: $m24-color-black; } } a:focus-visible, a:link:focus-visible, a:active, a:link:active { color: $m24-color-black; &::after { display: none; } } } // actions section .moz24-footer-actions { @include divider-line; padding-bottom: $spacer-lg; margin-bottom: $spacer-lg; display: flex; flex-direction: column; position: relative; @media #{$mq-md} { flex-direction: row; justify-content: space-between; align-items: center; } @media #{$mq-lg} { justify-content: flex-end; gap: $grid-gutter; } } // donation link .moz24-footer-donate { position: relative; border-radius: 0; font-weight: 600; background-color: $m24-color-alt-white; padding: 9.6px 24px; border: $border-width solid $m24-color-black; text-align: center; max-width: 800px; margin-bottom: $spacer-lg; @media #{$mq-md} { margin-bottom: 0; } &:link, &:visited { color: $m24-color-black; text-decoration: none; } &:active, &:hover, &:focus, &:focus-visible { background-color: $m24-color-alt-black; color: $m24-color-white; .mzp-c-button-icon-start path { fill: $m24-color-white; } .mzp-c-button-icon-text { color: $m24-color-white; } } } // language form .moz24-c-language-switcher { position: relative; &:has(.mzp-js-language-switcher-select:hover)::before, &:has(.mzp-js-language-switcher-select:focus)::before, &:has(.mzp-js-language-switcher-select:focus-within)::before { background: $m24-color-alt-black url('/media/img/icons/m24-small/globe.svg') center center no-repeat; background-size: 18px 18px; } &::before { @include bidi(((left, 4px, auto), (right, auto, 4px))); background: transparent url('/media/img/icons/m24-small/globe-white.svg') center center no-repeat; background-size: 18px 18px; top: 50%; margin-top: -16px; content: ""; display: block; height: 32px; width: 32px; position: absolute; } label { @include visually-hidden; } .mzp-c-language-switcher-link { color: $m24-color-black; position: absolute; top: -1.5em; .js & { @include visually-hidden; } &:focus, &:focus-visible { clip: auto; height: auto; overflow: visible; text-indent: 0; width: auto; } } .mzp-js-language-switcher-select { @include bidi(((background-position, right 8px center, 8px center),)); background: $m24-color-alt-white url('/media/img/icons/m24-small/down-caret-white.svg') no-repeat; background-size: 16px 16px; border-radius: 0; border: $border-width solid $m24-color-alt-black; color: $m24-color-alt-black; font-weight: 600; padding-left: 36px; max-width: 100%; width: 100%; margin: 0; @media #{$mq-lg} { width: fit-content; } &:hover, &:focus, &:focus-visible, &:focus-within { color: $m24-color-white; background: $m24-color-alt-black url('/media/img/icons/m24-small/down-caret.svg') no-repeat; @include bidi(((background-position, right 8px center, 8px center),)); background-size: 16px 16px; } } } // secondary nav .moz24-footer-secondary { position: relative; margin: $spacer-lg 0; line-height: 1.5; } .moz24-footer-legal { display: flex; flex-direction: column; color: $m24-color-black; font-size: 12px; @media #{$mq-lg} { flex-direction: row; justify-content: space-between; font-size: 14px; } } .moz24-footer-license { @media #{$mq-md} { max-width: unset; @include bidi(((margin-right, 10%, 0), (margin-left, 0, 10%))); } @media #{$mq-lg} { margin-bottom: 0; } a { display: inline-block; } a, a:link, a:visited { color: $m24-color-black; font-weight: 600; } } .moz24-footer-terms { margin-bottom: 0; li { padding-inline-end: $spacer-md; margin-bottom: $spacer-xs; @media #{$mq-md} { display: inline-block; } &:last-of-type { margin-bottom: 0; } } a, a:link, a:visited { color: $m24-color-black; font-weight: 600; } } .moz24-footer-logo-image-bottom { width: 100%; }