media/css/mozorg/contribute.scss (356 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/includes/fonts/metropolis';
@import '~@mozilla-protocol/core/protocol/css/components/section-heading';
.contribute-intro {
overflow: hidden;
padding-bottom: 90%;
position: relative;
@media #{$mq-md} {
padding-bottom: 80%;
}
@media #{$mq-lg} {
padding-bottom: $layout-xl;
padding-top: 0;
}
@media #{$mq-xl} {
padding-bottom: $layout-xl + $layout-md;
}
.contribute-intro-content {
@media #{$mq-lg} {
margin-top: $layout-xl;
max-width: 40%;
}
}
.contribute-intro-heading {
@include text-title-lg;
padding-bottom: $spacing-md;
}
.contribute-intro-media-wrapper {
@include bidi(((left, -10px, auto),(right, auto, -10px),));
position: absolute;
width: 100%;
@media #{$mq-lg} {
@include bidi(((right, -25px, auto),(left, auto, -25px),));
left: auto;
top: $spacing-md;
width: 50%;
}
}
}
.contribute-section-subheading {
@include text-title-xs;
}
.contribute-hero {
background-color: $color-marketing-gray-20;
}
.contribute-card-container {
.contribute-card-wrapper {
@include transition(transform 150ms ease-in-out);
background: $color-white;
&:hover,
&:focus {
@include transform(translateZ(0) scale(1.02));
backface-visibility: hidden;
}
}
.contribute-card-content {
padding: $spacing-md;
}
.contribute-card-content-tags {
margin-bottom: $spacing-sm;
min-height: $layout-md;
}
.contribute-card-tag-bold {
font-weight: bold;
}
.mzp-c-card-media-wrapper {
background-color: $color-moz-neon-green;
}
}
@supports (display:flex) {
.contribute-card-container {
@media #{$mq-sm} {
display: flex;
flex-wrap: wrap;
}
// protocol override to avoid over-frequent word breaks
&.mzp-l-card-quarter .mzp-c-card {
@media #{$mq-lg} {
@include bidi((
(float, left, right),
(margin-left, 0, $spacing-xl),
(margin-right, $spacing-xl, 0),
));
width: calc(50% - (#{$spacing-xl} * 0.5));
&.mzp-c-card-extra-small,
&,
&.mzp-c-card-medium,
&.mzp-c-card-large {
max-width: 100%;
}
&:nth-child(even) {
margin-left: 0;
margin-right: 0;
}
}
@media (min-width: 1100px) {
@include bidi((
(margin-left, 0, $spacing-xl),
(margin-right, $spacing-xl, 0),
));
width: calc(25% - (#{$spacing-xl} - (#{$spacing-xl} * 0.25)));
&:nth-child(even) {
@include bidi((
(margin-left, 0, $spacing-xl),
(margin-right, $spacing-xl, 0),
));
}
&:nth-child(4n) {
@include bidi(((margin-right, 0, margin-left, 0),));
}
&:nth-child(4n+1) {
@include bidi(((clear, left, right),));
}
}
}
// end override
.contribute-card {
display: flex;
flex: 1 0 45%;
@media #{$mq-md} {
flex: auto;
}
}
.contribute-card-wrapper {
display: flex;
flex-direction: column;
max-width: 100%;
}
.contribute-card-content {
flex: 1;
// fallback when hyphens aren't supported
overflow-wrap: break-word;
word-wrap: break-word; // IE specific overflow-wrap fix
}
@supports (hyphens: auto) {
.contribute-card-content {
overflow-wrap: unset;
word-wrap: unset;
}
.mzp-c-card-title {
hyphens: auto;
}
}
}
}
.contribute-banner-wrapper {
@include border-box;
margin: 0 auto;
max-width: $content-max;
min-width: $content-xs;
@media #{$mq-md} {
padding: 0;
}
@media #{$mq-lg} {
margin-bottom: $layout-xl;
padding: $layout-xs $layout-xl 0;
}
}
.contribute-banner {
padding: $layout-xl $layout-md $layout-md;
@media #{$mq-lg} {
.contribute-banner-content {
@include bidi(((margin-left, 200px, auto),(margin-right, auto, 200px),));
width: 60%;
max-width: 495px;
}
.contribute-banner-cta {
@include bidi(((margin-left, 200px, auto),(margin-right, auto, 200px),));
}
}
}
@supports (display:flex) {
@media #{$mq-lg} {
.contribute-banner {
align-items: center;
display: flex;
justify-content: space-between;
min-height: 260px;
padding-bottom: 0;
padding-top: 0;
position: relative;
}
.contribute-banner-cta {
@include bidi(((margin-left, $layout-xl, auto),(margin-right, auto, $layout-xl),));
flex: 1 0 auto;
}
}
}
.contribute-banner-gethelp {
background: $color-ink-80 url('/media/img/contribute/contribute-gethelp-banner-bg.jpg') center top no-repeat;
background-size: cover;
color: $body-text-color-inverse;
@supports (--css: variables) {
color: var(--body-text-color-inverse);
}
@media #{$mq-lg} {
margin-bottom: $layout-lg;
}
.contribute-banner-gethelp-title {
@include font-size(24px);
color: $title-text-color-inverse;
position: relative;
@supports (--css: variables) {
color: var(--title-text-color-inverse);
}
@media #{$mq-lg} {
@include font-size(40px);
}
&::before {
@include bidi(((left, 0, auto),(right, auto, 0),));
background-image: url('/media/img/contribute/contribute-banner-gethelp-icon.svg');
content: '';
display: block;
height: 40px;
position: absolute;
top: -65px;
width: 40px;
@media #{$mq-lg} {
@include bidi(((left, -80px, auto),(right, auto, -80px),));
top: auto;
}
}
}
}
.contribute-banner-problems {
@include bidi(((background-position, 15% -10px, 94% -10px),));
background-image: url('/media/img/contribute/contribute-problems-bulb.svg');
background-repeat: no-repeat;
background-size: 60px 150px;
@media #{$mq-sm} {
@include bidi(((background-position, 8% -10px, 94% -10px),));
background-position: 8% -10px;
background-size: 50px 150px;
}
@media #{$mq-lg} {
@include bidi(((background-position, (10% -45px, 96% 88%), (90% -45px, 13% 88%)),));
background-image:
url('/media/img/contribute/contribute-problems-bulb.svg'),
url('/media/img/contribute/contribute-problems-fly.svg');
background-repeat: no-repeat;
background-size: 86px 241px, 33%;
border: 4px solid $color-moz-light-gray;
}
.contribute-banner-problems-title {
@include font-size(24px);
@include bidi(((margin-left, $layout-xl, auto),(margin-right, auto, $layout-xl),));
span {
display: inline;
background-color: #ffc900;
box-shadow: 10px 0 0 #ffc900, -10px 0 0 #ffc900;
@include box-decoration-break(clone);
}
@media #{$mq-lg} {
@include font-size(40px);
margin-left: 0;
}
.contribute-banner-problems-wrapper {
margin-bottom: $spacing-md;
}
}
}
.contribute-mission {
margin-bottom: $layout-xl;
.contribute-mission-intro {
text-align: center;
margin-bottom: $layout-md;
@media #{$mq-lg} {
padding-left: $layout-2xl;
padding-right: $layout-2xl;
}
}
.contribute-mission-title {
background-color: $color-black;
color: $color-white;
display: inline-block;
padding-left: $spacing-sm;
padding-right: $spacing-sm;
@media #{$mq-lg} {
@include font-size(48px);
}
}
.contribute-mission-cards {
list-style: none;
margin-bottom: $layout-xl;
}
.contribute-mission-card {
@include bidi(((float, left, right),));
width: 50%;
a {
@include bidi(((padding, $spacing-md $spacing-md $spacing-md $spacing-2xl, $spacing-md $spacing-2xl $spacing-md $spacing-md),));
border: 4px solid transparent;
color: $color-black;
display: block;
text-decoration: none;
transition: border-color 100ms ease-in-out;
&:hover,
&:focus {
border-color: $color-marketing-gray-20;
& > h3 {
text-decoration: underline;
}
}
}
h3 {
@include font-size(24px);
line-height: 1;
margin-bottom: $spacing-xs;
position: relative;
&::before {
@include bidi(((left, -34px, auto),(right, auto, -34px),));
background-repeat: no-repeat;
background-size: 24px 24px;
content: '';
height: 24px;
position: absolute;
width: 24px;
}
&.contribute-mission-learn-icon::before {
background-image: url('/media/img/logos/m24/symbol-black.svg');
}
&.contribute-mission-event-icon::before {
background-image: url('/media/img/contribute/icon/cal.svg');
}
&.contribute-mission-donate-icon::before {
background-image: url('/media/img/contribute/icon/heart.svg');
}
&.contribute-mission-follow-icon::before {
background-image: url('/media/img/icons/social/bluesky/black.svg');
}
}
p {
margin-bottom: 0;
}
}
}
@supports (display:grid) {
.contribute-mission {
.contribute-mission-cards {
display: grid;
grid-row-gap: $spacing-xl;
margin-bottom: 0;
@media #{$mq-md} {
grid-template-columns: 1fr 1fr;
grid-column-gap: $spacing-lg;
}
@media #{$mq-lg} {
padding-left: $layout-xl;
padding-right: $layout-xl;
grid-column-gap: $spacing-xl;
}
}
.contribute-mission-card {
float: none;
width: auto;
}
}
}