drupal/core/themes/olivero/css/components/header-navigation.pcss.css

142 lines
3.7 KiB
CSS
Raw Normal View History

/**
* @file
* Navigation in header.
*/
@import "../base/variables.pcss.css";
.header-nav {
position: fixed;
z-index: 105; /* appear above overlay */
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: 0;
flex-grow: 1; /* Necessary for IE11. */
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);
border-block-start: solid var(--color--white) var(--sp3); /* Create room for the "close" button. */
background-color: var(--color--white);
box-shadow: 0 0 72px rgba(0, 0, 0, 0.1);
&.is-active {
visibility: visible;
transform: translateX(-100%); /* LTR */
}
@supports (flex-basis: max-content) {
flex-basis: max-content;
}
@media (--sm) {
border-top-width: var(--sp5);
}
@media (--md) {
padding-block-end: var(--sp3);
padding-inline-start: var(--sp3);
border-top-width: var(--sp7);
}
@media (--lg) {
grid-column: 5 / 14;
}
}
/*
* 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;
}
/* Toolbar is fixed, and tray is vertical. */
body.toolbar-vertical .header-nav {
border-top-width: calc(var(--toolbar-height) + var(--sp3));
@media (--sm) {
border-top-width: calc(var(--toolbar-height) + var(--sp5));
}
}
/* Toolbar is fixed, and tray is vertical or toolbar is horizontal and tray is closed. */
body.toolbar-vertical .header-nav,
body.toolbar-horizontal.toolbar-fixed .header-nav {
@media (--md) {
border-top-width: calc(var(--toolbar-height) + var(--sp7));
}
}
/* Toolbar is horizontal fixed, and tray is open. */
body.toolbar-horizontal.toolbar-fixed.toolbar-tray-open .header-nav {
@media (--md) {
border-top-width: calc(var(--toolbar-height) + var(--toolbar-tray-height) + var(--sp7));
}
}
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 {
/* Toolbar is fixed, and tray is vertical or toolbar is horizontal and tray is closed. */
&.toolbar-vertical .header-nav,
&.toolbar-horizontal.toolbar-fixed .header-nav {
@media (--nav) {
border-top-width: calc(var(--toolbar-height) + var(--sp11));
}
}
/* Toolbar is horizontal fixed, and tray is open. */
&.toolbar-horizontal.toolbar-fixed.toolbar-tray-open .header-nav {
@media (--nav) {
border-top-width: calc(var(--toolbar-height) + var(--toolbar-tray-height) + var(--sp11));
}
}
& .header-nav {
@media (--nav) {
overflow: auto;
max-width: calc((7 * (var(--grid-col-width--nav) + var(--grid-gap--nav))));
padding-inline-end: var(--sp);
transition: transform 0.2s, visibility 0.2s;
border-top-width: var(--sp11);
}
@media (--grid-max) {
max-width: calc(100vw - (var(--max-width) + var(--content-left)) + ((7 * (var(--grid-col-width--max) + var(--grid-gap--max)))));
padding-inline-end: calc(100vw - (var(--max-width) + var(--content-left) - var(--sp)));
}
}
}
[dir="rtl"] .header-nav.is-active {
transform: translateX(100%);
}