media/css/firefox/welcome.scss (380 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/. $font-path: '/media/protocol/fonts'; $image-path: '/media/protocol/img'; @import '~@mozilla-protocol/core/protocol/css/includes/lib'; @import '~@mozilla-protocol/core/protocol/css/components/modal'; @import '~@mozilla-protocol/core/protocol/css/components/inline-list'; // * -------------------------------------------------------------------------- */ // Smooth Scroll html { scroll-behavior: smooth; @media (prefers-reduced-motion: reduce) { scroll-behavior: auto; } } // * -------------------------------------------------------------------------- */ // Page header .c-page-header { background: $color-white; .mzp-l-content { padding-top: $spacing-md; padding-bottom: $spacing-md; } } .c-header-logo { display: block; margin: 0 auto; @media #{$mq-md} { display: inline; margin: 0; } } .c-shoulder-cta { margin: $spacing-md 0 0; text-align: center; @media #{$mq-md} { @include bidi(( (float, right, left), (text-align, left, right), )); margin: 0; } } // * -------------------------------------------------------------------------- */ // Page callout .mzp-c-callout { &.mzp-t-dark.mzp-t-hero { background-color: $color-marketing-gray-99; } .welcome-page4 & { background: $color-orange-70 radial-gradient(circle at 60% 100%, $color-yellow-50 5%, $color-orange-70 94%); } .welcome-page9 & { background-color: $color-white; .mzp-l-content { max-width: $content-lg; padding-bottom: 0; padding-top: 0; } } } .mzp-c-call-out-body { @include border-box; margin: 0 auto; max-width: $content-md; padding: $layout-xs 0; text-align: center; .welcome-page4 & { max-width: $content-md - ($layout-md * 2); } .welcome-page10 & { padding-top: 0; } @media #{$mq-md} { padding: $layout-md $layout-xl; .welcome-page4 & { padding: $layout-lg 0; p { margin: 0 $layout-xl; } } } .primary-cta { margin: 0 auto; h2 { @include text-display-xs; } .mzp-c-button { min-width: 180px; } } } .mzp-c-callout.mzp-t-hero .mzp-c-callout-title { @include text-title-lg; margin-bottom: $layout-sm; .welcome-page1 &, .welcome-page3 &, .welcome-page6 &, .welcome-page7 &, .welcome-page8 &, .welcome-page9 &, .welcome-page10 & { @include text-title-md; } .welcome-page8 & { strong { @include zap('/media/protocol/img/zaps/zap-10.svg'); } } .welcome-page9 &, .welcome-page10 & { strong { color: $color-violet-50; } } } .mzp-c-callout.mzp-t-hero .mzp-c-callout-desc { @include text-body-lg; margin-bottom: $layout-sm; .welcome-page9 & { margin: 0 auto $layout-sm; max-width: $content-sm; } } // * -------------------------------------------------------------------------- */ // Primary content .body-primary { @include text-body-lg; margin: $layout-md auto $layout-lg; text-align: center; .welcome-page9 &, .welcome-page10 & { margin-bottom: 0; } .primary-image { margin: $layout-sm auto 0; } .primary-image-desc { @include text-title-2xs; font-style: italic; margin: $layout-sm 0 $layout-xl 0; } .primary-cta { margin: $layout-md auto 0; } } .welcome-page9 { .product-logo { display: block; margin: $spacing-2xl auto; } } .welcome-page10 { .hero-image { display: block; margin: 0 auto; width: 120px; } } // * -------------------------------------------------------------------------- */ // Secondary content // To be replaced by revamped picto card. See https://github.com/mozilla/protocol/issues/382 .c-picto-block { @include border-box; margin: 0 auto $spacing-2xl; max-width: $content-md - ($layout-md * 2); padding: 0 $layout-md; .c-picto-block-title { @include text-title-xs; } .c-picto-block-image { align-items: center; display: flex; margin-bottom: $spacing-md; min-height: $layout-md; } &.t-adjacent-image { @include bidi(( (padding-left, $layout-xl, 0), (padding-right, 0, $layout-xl), (text-align, left, right), )); position: relative; & + & { border-top: 1px solid $color-marketing-gray-30; padding-top: $layout-md; } .c-picto-block-image { @include bidi(( (left, 0, auto), (right, auto, 0) )); display: block; margin: 0; max-width: $layout-md; min-height: 0; position: absolute; } } } @media #{$mq-md} { .l-columns-two { display: flex; margin: 0 auto; max-width: $content-lg; padding: 0 $layout-md; flex-wrap: wrap; .c-picto-block { flex: 1 1 50%; padding: 0 $layout-lg; } } } // * -------------------------------------------------------------------------- */ // Secondary CTA .secondary-cta { @include text-body-lg; margin: $layout-lg auto $layout-sm; text-align: center; h2 { @include text-display-xs; } p { margin: 0 auto; } .mzp-c-button { min-width: 180px; } } .c-utilities { @include text-body-sm; max-width: $content-md; text-align: center; .c-survey-link { font-weight: bold; } } // * -------------------------------------------------------------------------- */ // Dark theme .mzp-c-callout.mzp-t-dark { @include light-links; background-color: $color-ink-80; color: $color-white; .mzp-c-button.mzp-t-product { color: $color-white; } } // * -------------------------------------------------------------------------- */ // Modal .no-js { .js-modal-link { display: none; } .mzp-u-modal-content { margin: 0 auto; text-align: center; } .modal-title { @include text-title-sm; margin-top: $spacing-xl; } } .modal-title { padding-top: $layout-xl; position: relative; &::before { @include image-replaced; background-position: center; background-repeat: no-repeat; content: ''; height: $layout-lg; left: 50%; margin-left: -($layout-lg * 0.5); position: absolute; top: 0; width: $layout-lg; .welcome-page6 & { @include background-size(64px, 64px); background-image: url('/media/protocol/img/logos/firefox/browser/logo.svg'); } } } .mzp-c-modal-window { padding: $spacing-sm; } .mzp-c-modal-inner { background-color: transparent; padding: 0; .modal-title { @include text-title-md; color: $color-ink-80; margin-bottom: 0; + p { margin-bottom: $layout-md; } } .mzp-c-modal-overlay-contents { background: $color-white; color: $color-black; padding: $layout-xs; text-align: center; a { color: $color-link; } } } .qr-code-wrapper { margin: 0 auto; width: $content-xs; } .c-store-badges { text-align: center; margin-top: $layout-sm; li { display: inline-block; margin: 0 $spacing-sm $spacing-lg; } } @media #{$mq-sm} { .mzp-c-modal-window { padding: $layout-xs; } } @media #{$mq-md} { .mzp-c-modal-inner { margin: 0 auto; max-width: 800px; padding: $layout-md; .mzp-c-modal-overlay-contents { padding: $layout-md; } } } // * -------------------------------------------------------------------------- */ // Send to Device overrides #send-to-device { margin: 0 auto; text-align: center; footer { display: none; } // send to device is inline on this page. .welcome-page4 & { color: $color-ink-80; margin-top: $spacing-md; .mzp-c-button-info { width: unset; } } } // * -------------------------------------------------------------------------- */ // Set as default conditionals .state-is-default { display: none; } .is-firefox-default { .state-is-default { display: inline-block; } .state-not-default { display: none; } } .image-container { margin: 35px 0 70px; .image-wrapper { display: inline-block; vertical-align: top; margin: 0 50px; position: relative; // This test is not being performed in any RTL locales &:first-of-type { margin: 0 50px 0 0; } &:last-child { margin: 0 0 0 50px; } p { @include font-size(17px); max-width: 250px; margin: 0 auto; } img { vertical-align: top; height: 290px; width: auto; } video { vertical-align: top; pointer-events: none; } } #arrow-right, #arrow-down { position: absolute; } #arrow-right { top: 110px; right: -90px; height: 85px; } #arrow-down { display: none; } }