frontend/src/pages/index.module.scss (265 lines of code) (raw):
@use "~@mozilla-protocol/core/protocol/css/includes/lib" as *;
@use "../styles/color";
@use "../styles/text";
.hero {
display: flex;
flex-direction: column;
gap: $spacing-2xl;
width: $content-max;
max-width: 100%;
margin: 0 auto;
padding: $spacing-2xl $spacing-lg;
@media screen and #{$mq-md} {
flex-direction: row;
align-items: center;
}
.lead,
.demo-phone {
flex: 1 0 0;
}
.lead {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: $spacing-lg;
}
h2 {
@include text.title-md {
font-family: $font-stack-firefox;
}
}
p {
max-width: calc($content-sm + $layout-xl);
}
.cta {
margin: $spacing-xl 0;
min-width: $content-xs;
}
.social-proof {
padding: $spacing-lg 0;
width: 100%;
max-width: 55%;
@media screen and #{$mq-md} {
width: auto;
}
}
.end-of-intro-pricing-hero {
display: flex;
gap: $spacing-lg;
flex-wrap: wrap;
& > div {
flex: 1 1 $content-xs;
}
}
}
.how-it-works-wrapper {
background-color: $color-white;
// Magic number: 64px allows us to have an even spacing between sections on pages
padding: calc($spacing-xl * 2) $spacing-md;
}
.how-it-works {
width: $content-max;
max-width: 100%;
margin: 0 auto;
padding: $spacing-lg;
h2 {
@include text.title-sm {
font-family: $font-stack-firefox;
text-align: center;
margin-bottom: $layout-sm;
}
}
h2,
.lead {
padding: $spacing-sm 0;
}
a {
color: $color-blue-50;
text-decoration: underline;
font-weight: 700;
&:hover {
color: $color-blue-60;
text-decoration: none;
}
}
.steps {
display: flex;
flex-direction: column;
gap: $layout-lg;
list-style-type: none;
padding: $spacing-2xl 0;
text-align: start;
margin: 0;
@media screen and #{$mq-md} {
gap: $layout-xl;
margin: $spacing-2xl $layout-2xl 0 $layout-2xl;
}
@media screen and #{$mq-lg} {
flex-direction: row;
margin: 0;
}
h3 {
@include text-title-3xs;
font-family: $font-stack-base;
font-weight: 600;
padding-top: $spacing-md;
line-height: 1.5;
}
p {
padding: $spacing-md 0;
}
.step {
flex: 1;
}
img {
width: 100%;
display: inline-block;
}
}
}
.use-cases-wrapper {
background-color: $color-white;
}
.use-cases {
width: $content-max;
max-width: 100%;
margin: 0 auto;
padding: $spacing-lg;
}
// Creates a page break effect
.page-break {
background: linear-gradient(
180deg,
$color-light-gray-20 0%,
$color-light-gray-10 45%
);
height: $layout-md;
}
.features {
padding: $layout-xs;
width: $content-xl;
max-width: 100%;
margin: 0 auto;
@media screen and #{$mq-md} {
padding: $layout-sm $layout-xs;
}
}
.plans {
width: $content-max;
max-width: 100%;
margin: 0 auto;
display: flex;
gap: $spacing-2xl;
flex-direction: column-reverse;
align-items: center;
padding: 0 $spacing-md $spacing-md $spacing-md;
margin-top: $layout-xl;
&.non-premium-country {
display: flex;
align-items: center;
justify-content: center;
}
.callout {
display: flex;
flex-direction: column;
align-items: flex-start;
text-align: center;
max-width: $content-md;
gap: $spacing-lg;
margin-top: $layout-xl;
h2 {
@include text.title-sm {
font-family: $font-stack-firefox;
font-weight: 500;
}
}
.end-of-intro-pricing-countdown-and-warning {
display: flex;
flex-direction: column;
gap: $spacing-sm;
}
}
@media screen and #{$mq-xl} {
flex-direction: row;
padding: 0 $spacing-2xl $spacing-2xl $spacing-2xl;
.plan-comparison {
padding: $spacing-2xl;
}
.callout {
padding: $spacing-2xl;
text-align: start;
}
}
}
.faq-wrapper {
background-color: $color-white;
// Magic number: 64px allows us to have an even spacing between sections on pages
padding: calc($spacing-xl * 2) $spacing-md;
}
.faq {
width: $content-max;
max-width: 100%;
margin: 0 auto;
padding: $spacing-lg;
display: flex;
flex-direction: column;
.lead {
flex: 1 0 0;
@media screen and #{$mq-md} {
padding: 0 $spacing-2xl;
}
.headline {
@include text.title-sm {
font-family: $font-stack-firefox;
font-weight: 500;
padding: $spacing-md 0;
}
}
.read-more {
color: $color-blue-50;
font-weight: 700;
text-decoration: underline;
&:hover {
text-decoration: none;
}
}
}
.entries {
flex: 1 0 0;
padding-top: $spacing-lg;
@media screen and #{$mq-md} {
padding: 0 $spacing-2xl;
}
}
@media screen and #{$mq-md} {
flex-direction: row;
gap: $spacing-md;
}
}
.bundle-banner-section {
width: 100%;
margin: 0 auto;
// Magic number: 64px allows us to have an even spacing between sections on pages
padding: calc($spacing-xl * 2) $spacing-md;
@media screen and #{$mq-md} {
width: $content-max;
margin-top: 0;
max-width: 100%;
}
}
.gray-bg {
background-color: $color-light-gray-10;
}
.reviews-container {
// Magic number: 64px allows us to have an even spacing between sections on pages
padding: calc($spacing-xl * 2) $spacing-md;
}
.testimonials-wrapper {
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
gap: $spacing-md;
border: 0 solid $color-light-gray-20;
border-top-width: 1px;
border-bottom-width: 1px;
p {
@include text-body-lg;
font-family: $font-stack-base;
}
}