You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.4 KiB
129 lines
3.4 KiB
12 months ago
|
/**
|
||
|
* @file
|
||
|
* Navigation in header.
|
||
|
*/
|
||
|
|
||
|
@import "../base/media-queries.pcss.css";
|
||
|
|
||
|
.header-nav {
|
||
|
position: fixed;
|
||
|
z-index: 501; /* Appear above overlay and contextual links in header. */
|
||
|
inset-block-start: 0;
|
||
|
inset-inline-start: 100%;
|
||
|
visibility: hidden;
|
||
|
overflow: auto;
|
||
|
/* Ensure that header nav not use additional space and force system branding
|
||
|
* block text to unnecessarily wrap. */
|
||
|
flex-basis: max-content;
|
||
|
width: 100%;
|
||
|
max-width: var(--mobile-nav-width);
|
||
|
height: 100%;
|
||
|
padding-block: 0 var(--sp);
|
||
|
padding-inline-start: var(--sp);
|
||
|
padding-inline-end: var(--sp);
|
||
|
/* Create room for the "close" button. We cannot use margin because the
|
||
|
* mobile navigation needs to slide beneath the button, but we also cannot
|
||
|
* use padding because that would enable the button to scroll out of the
|
||
|
* viewport on short screens. */
|
||
|
border-block-start: solid var(--color--white) calc(var(--sp3) + var(--drupal-displace-offset-top, 0px));
|
||
|
background-color: var(--color--white);
|
||
|
box-shadow: 0 0 72px rgba(0, 0, 0, 0.1);
|
||
|
|
||
|
&.is-active {
|
||
|
visibility: visible;
|
||
|
transform: translateX(calc(-100% - var(--drupal-displace-offset-right, 0px))); /* LTR */
|
||
|
|
||
|
&:dir(rtl) {
|
||
|
transform: translateX(calc(100% + var(--drupal-displace-offset-left, 0px)));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@media (--sm) {
|
||
|
border-top-width: calc(var(--sp5) + var(--drupal-displace-offset-top, 0px));
|
||
|
}
|
||
|
|
||
|
@media (--md) {
|
||
|
padding-block-end: var(--sp3);
|
||
|
padding-inline-start: var(--sp3);
|
||
|
border-top-width: calc(var(--sp7) + var(--drupal-displace-offset-top, 0px));
|
||
|
}
|
||
|
|
||
|
@media (--lg) {
|
||
|
grid-column: 5 / 14;
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Ensure top border has the same color as the background when in forced colors.
|
||
|
*/
|
||
|
@media (forced-colors: active) {
|
||
|
border-top-color: canvas;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Only apply transition styles when JS is loaded. This
|
||
|
* works around https://bugs.chromium.org/p/chromium/issues/detail?id=332189
|
||
|
*/
|
||
|
html.js .header-nav {
|
||
|
transition: visibility 0.2s, transform 0.2s;
|
||
|
}
|
||
|
|
||
|
body:not(.is-always-mobile-nav) .header-nav {
|
||
|
@media (--nav) {
|
||
|
position: static;
|
||
|
display: flex;
|
||
|
visibility: visible;
|
||
|
overflow: visible;
|
||
|
grid-column: 5 / 15;
|
||
|
align-items: center;
|
||
|
justify-content: flex-end;
|
||
|
max-width: none;
|
||
|
height: var(--header-height-wide-when-fixed);
|
||
|
margin-block-start: auto;
|
||
|
padding-block: 0;
|
||
|
padding-inline-start: 0;
|
||
|
padding-inline-end: 0;
|
||
|
transition: transform 0.2s;
|
||
|
transform: none;
|
||
|
border-block-start: 0;
|
||
|
box-shadow: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
body.is-always-mobile-nav {
|
||
|
& .header-nav {
|
||
|
@media (--nav) {
|
||
|
overflow: auto;
|
||
|
max-width: calc((7 * (var(--grid-col-width) + var(--grid-gap))));
|
||
|
padding-inline-end: var(--sp);
|
||
|
transition: transform 0.2s, visibility 0.2s;
|
||
|
border-top-width: calc(var(--drupal-displace-offset-top, 0px) + var(--sp11));
|
||
|
}
|
||
|
|
||
|
@media (--grid-max) {
|
||
|
max-width: calc(100vw - (var(--max-width) + var(--content-left)) + ((7 * (var(--grid-col-width) + var(--grid-gap)))));
|
||
|
padding-inline-end: calc(100vw - (var(--max-width) + var(--content-left) - var(--sp)));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.header-nav-overlay {
|
||
|
position: fixed;
|
||
|
z-index: 101;
|
||
|
inset-block-start: 0;
|
||
|
inset-inline-start: 0;
|
||
|
display: none;
|
||
|
width: 100%;
|
||
|
height: 100vh;
|
||
|
opacity: 0.2;
|
||
|
background: var(--color--gray-5);
|
||
|
|
||
|
@media (forced-colors: active) {
|
||
|
background: canvastext;
|
||
|
}
|
||
|
|
||
|
@nest .is-overlay-active & {
|
||
|
display: block;
|
||
|
}
|
||
|
}
|