media/css/mozorg/leadership.scss (347 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 'sass:color'; $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/sidebar-menu'; @import '~@mozilla-protocol/core/protocol/css/includes/mixins/details'; @import '~@mozilla-protocol/core/protocol/css/templates/main-with-sidebar'; @import '../cms/rich-text'; @font-face { font-family: FA-Icons-Contact; src: url('/media/fonts/icons-contact.woff2?20-12-2016') format('woff2'), url('/media/fonts/icons-contact.woff?20-12-2016') format('woff'); font-weight: normal; font-style: normal; } .visually-hidden { @include visually-hidden; } // Navigation #page-nav { margin: $spacing-md auto; ul { margin: 0; } @media #{$mq-md} { li { display: inline-block; border-bottom: 0; padding-right: $layout-sm; } } } // Headings .section-title { @include text-title-md; margin: 0.5em 0; } .section-intro { @include clearfix; margin: 0 0 2em; } .group-title { @include text-title-sm; margin: 1em 0; padding-top: 0.75em; border-top: 2px solid $color-marketing-gray-30; a { text-decoration: none; color: $color-black; &:hover, &:focus { text-decoration: underline; color: $color-link; } } } .leadership-title { @include text-title-lg; border-bottom: 2px solid $color-marketing-gray-30; margin: 1em 0; padding-bottom: 0.75em; &.compact { border-bottom: 0; padding-bottom: 0; margin-bottom: 0; } } main .leadership-section:first-of-type .leadership-title:first-of-type { margin-top: 0; } // Headshot galleries .gallery { @include clearfix; margin: 0 auto; } .vcard { width: 160px; padding: 0 $spacing-lg 0.25em; margin: 0 auto $spacing-lg; position: relative; .headshot { @include transition(transform 200ms ease, box-shadow 200ms ease); background: $color-white; box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.1); border: 2px solid $color-marketing-gray-20; color: $color-black; display: block; margin: 0 -20px 10px; padding: $spacing-md $spacing-md $spacing-sm; text-align: center; text-decoration: none; } &:focus { outline: 0; } .fn { @include text-body-md; font-weight: bold; } .photo { margin: 0 0 5px; width: 160px; height: 160px; outline: 1px solid rgba(0, 0, 0, 0.05); } .title, .note, .elsewhere, .utility { @include text-body-sm; } .title { font-weight: bold; margin-bottom: 0; br { display: none; } } .note { color: $color-marketing-gray-90; } .elsewhere, .utility { margin-top: 1em; a { padding-left: 20px; position: relative; &::before { background-position: center top; background-repeat: no-repeat; background-size: contain; color: $color-link; content: ''; height: 1em; left: 0; position: absolute; top: 0.125em; width: 1em; } } a.website::before { background-image: url('/media/protocol/img/icons/globe.svg'); } a.twitter::before { background-image: url('/media/protocol/img/icons/social/x/black.svg'); } a.mastodon::before { background-image: url('/media/protocol/img/icons/social/mastodon/black.svg'); } a.profile::before { background-image: url('/media/protocol/img/icons/accounts.svg'); } a.file::before { background-image: url('/media/protocol/img/icons/file-image.svg'); } a.link::before { background-image: url('/media/protocol/img/icons/link.svg'); } } .callout { padding: $spacing-md $spacing-md $spacing-xs; background: $color-light-gray-20; font-style: italic; } .elsewhere, .utility, .person-bio { @include hidden; } .elsewhere { .elsewhere-website { @include visually-hidden; } } a { color: $color-black; text-decoration: none; &:hover .fn, &:focus .fn, &:active .fn { color: $color-link; text-decoration: underline; } } &.has-bio:hover, &.has-bio:focus { cursor: pointer; .headshot { transform: translate(0, -3px); box-shadow: 2px 6px 5px rgba(0, 0, 0, 0.1); } .photo { outline: 2px solid color.adjust($color-link, $alpha: 0.5); } .fn { color: $color-link; text-decoration: underline; } } @media #{$mq-sm} { @include bidi(((float, left, right),)); margin: 0 $spacing-sm $spacing-lg; &:nth-child(odd) { @include bidi(((clear, left, right),)); } } } @supports (display: grid) { @media #{$mq-sm} { .gallery { display: grid; grid-gap: $spacing-md $spacing-lg; grid-template-columns: repeat(auto-fit, minmax(180px, 200px)); } .vcard { float: none; clear: none; } } } // Show the bios when JS fails. // Not every person has a bio, so these get some special treatment. .no-js .vcard.has-bio { border-bottom: 1px solid $color-marketing-gray-60; cursor: auto; float: none; margin: 0 0 40px; padding: 0 10px 40px; width: auto; .elsewhere, .utility, .person-bio { display: block; } .headshot { background: transparent; border: 0; box-shadow: none; cursor: auto; margin: 0; padding: 0; } &:hover .headshot { box-shadow: none; transform: none; .photo { outline: 0; } .fn { color: inherit; } } .photo { background: #fff; box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.1); float: right; margin: 0 0 30px 30px; padding: 10px; outline: 0; } .fn { @include text-title-md; text-align: left; } .person-bio { margin: 1em 0; p { margin: 0 0 1em; } } a { color: $color-link; text-decoration: underline; } } .mzp-c-modal .mzp-c-modal-overlay-contents { padding: 0; .vcard { background: $color-white; color: $color-black; cursor: auto; float: none; min-height: 250px; padding: 0; padding: $spacing-md; width: auto; &:hover, &:focus { cursor: auto; .headshot { transform: none; .photo { outline: 1px solid rgba(0, 0, 0, 0.05); } } } a { color: $color-link; &:hover, &:focus, &:active { color: color.adjust($color-link, $lightness: 10%); text-decoration: underline; } } @media #{$mq-md} { padding: $spacing-xl; } } .headshot { background: transparent; border: 0; box-shadow: none; margin: 0; padding: 0; :hover &, :focus & { box-shadow: none; } .photo { box-shadow: 2px 3px 3px rgba(0, 0, 0, 0.1); float: none; height: 160px; margin: 0 auto $spacing-lg; width: 160px; @media #{$mq-sm} { float: right; margin: 0 0 2em $layout-md; } @media #{$mq-md} { float: right; height: 250px; margin: 0 0 2em $layout-md; width: 250px; } } .fn { @include bidi(((text-align, left, right),)); @include text-title-md; color: $color-black; text-decoration: none; } } .person-info { margin: 0 0 2em; } .title { @include text-body-lg; line-height: 1.3; br { display: block; } } .note { color: $color-marketing-gray-90; } .elsewhere, .utility, .person-bio { display: block; } }