media/css/privacy/privacy-protocol.scss (209 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 '~@mozilla-protocol/core/protocol/css/includes/lib' as *;
@use '~@mozilla-protocol/core/protocol/css/includes/mixins/details';
@use '~@mozilla-protocol/core/protocol/css/components/sidebar-menu';
@use '~@mozilla-protocol/core/protocol/css/templates/main-with-sidebar';
@use '../protocol/basic-article';
$border: 2px solid $color-marketing-gray-20;
.mzp-c-sidemenu .mzp-c-sidemenu-title {
font-family: var(--body-font-family);
}
@media #{$mq-md} {
.mzp-l-sidebar {
padding-top: 156px; // height of privacy-title
}
.mzp-c-sidemenu-main {
margin-left: -16px; // flush with left side of container
}
}
@media #{$mq-lg} {
.mzp-l-main {
> header,
> main,
> footer {
max-width: 640px; // narrow max-width for readability
}
}
}
// * -------------------------------------------------------------------------- */
// Policy header
.privacy-logo {
height: 40px;
margin-bottom: $spacing-sm;
width: auto;
@media #{$mq-sm} {
@include bidi((
(float, left, right),
(margin-right, $spacing-sm, margin-left, 0),
));
}
@media #{$mq-md} {
@include bidi((
(left, $layout-lg, right, auto),
));
position: absolute;
}
@media #{$mq-lg} {
@include bidi((
(left, $layout-xl, right, auto),
));
}
}
.privacy-title {
margin-bottom: $spacing-lg;
@media #{$mq-sm} {
margin-top: $layout-sm;
margin-bottom: $layout-md;
}
@media #{$mq-md} {
min-height: 56px; // keep consistant height of element even if time element is not present
margin-top: $layout-sm;
margin-bottom: $layout-lg;
}
h1 {
@include text-title-xs;
font-weight: bold;
}
a {
color: inherit;
text-decoration: none;
}
.archived {
background: $color-red-70;
color: $color-white;
display: inline-block;
margin-top: $spacing-sm;
padding: $spacing-sm;
}
}
// * -------------------------------------------------------------------------- */
// Policy header intro
.privacy-lead-in {
border-bottom: $border;
clear: both;
margin-bottom: $layout-sm;
padding-bottom: $layout-xs;
h2 {
@include text-title-md;
}
}
// * -------------------------------------------------------------------------- */
// Main policy content
.privacy-body {
> div > section > section {
border-bottom: $border;
}
h2 {
@include text-title-sm;
margin-bottom: $layout-sm;
}
h3 {
@include text-title-xs;
margin: $layout-sm 0;
}
h4 {
@include text-body-md;
margin: $layout-sm 0;
}
hr {
display: none;
}
}
.format-none {
.privacy-body h2 {
margin-top: $layout-md;
}
}
#optional-features {
margin-top: $layout-lg;
}
// * -------------------------------------------------------------------------- */
// Privacy choices widget
.data-choices {
@include clearfix;
background-color: $color-marketing-gray-20;
border-radius: $border-radius-md;
margin-top: $spacing-xl;
padding: $spacing-sm;
position: relative;
text-align: center;
p {
@include text-body-md;
display: inline-block;
margin: 0;
padding: $spacing-sm 0;
}
.mzp-c-button {
display: block;
margin: $spacing-md auto 0;
}
@media #{$mq-md} {
@include grid-column-gap($spacing-lg);
display: grid;
grid-template-columns: 4fr 1fr;
@include bidi(((text-align, left, right),));
.mzp-c-button {
margin: 0;
}
}
}
// * -------------------------------------------------------------------------- */
// Policy footer
.privacy-footnote {
@include text-body-md;
border-top: $border;
margin-top: $spacing-2xl;
padding: $spacing-2xl 0;
h2 {
@include text-title-sm;
}
h3 {
@include visually-hidden;
}
}
// * -------------------------------------------------------------------------- */
// Summary and details widget
.format-headings .privacy-body {
@include details;
.is-summary {
button {
@include summary;
@include bidi(((padding-left, 0, padding-right, 0),));
}
button[aria-expanded='true']::before {
@include summary-open;
}
+ div {
margin-top: $spacing-sm * -1;
margin-bottom: $spacing-xl;
}
}
}
.format-paragraphs .privacy-body {
@include details;
.is-summary {
button {
padding: 0;
&::after {
color: $color-link;
content: attr(data-open);
margin-left: 0.5ex;
text-decoration: underline;
}
}
button[aria-expanded='true']::after {
content: attr(data-close);
}
+ div {
margin-top: $spacing-sm * -1;
margin-bottom: $spacing-xl;
}
}
}
// * -------------------------------------------------------------------------- */
// Privacy Principles page
#privacy-principles,
#privacy-faq {
.mzp-l-sidebar {
padding-top: 0;
}
}
#privacy-principles {
ol {
@include text-title-md;
font-weight: bold;
margin-left: 1.15em;
h2 {
margin-bottom: $spacing-xs;
}
p {
@include text-body-md;
font-weight: normal;
}
}
}