/** * @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%); }