UNPKG

@telekom/scale-components

Version:

Scale is the digital design system for Telekom products and experiences.

366 lines (345 loc) 9.91 kB
/** * @license * Scale https://github.com/telekom/scale * * Copyright (c) 2021 Egor Kirpichev and contributors, Deutsche Telekom AG * * 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/. */ scale-app-header { --header-nav-height: var(--telekom-spacing-composition-space-16); --header-brand-height: var(--telekom-spacing-composition-space-18); --header-border-radius: var(--telekom-radius-large); --header-transition-speed: var(--telekom-motion-duration-transition); --header-brand-collapsed-height: var(--telekom-spacing-composition-space-03); --header-max-width: inherit; --background: var(--telekom-color-primary-standard); --font-weight: var(--telekom-typography-font-weight-regular); --border: 1px solid var(--telekom-color-ui-faint); --color-brand: var(--telekom-color-text-and-icon-inverted-standard); --background-brand: var(--telekom-color-primary-standard); --color-nav: var(--telekom-color-text-and-icon-standard); --background-nav: var(--telekom-color-background-canvas); --background-nav-sticky: var(--telekom-color-background-surface); --background-header-sticky: var(--telekom-color-background-canvas); --spacing-nav: 0 var(--telekom-spacing-composition-space-06); } @keyframes keyframes-slideUp { from { top: 0; } to { top: -56px; } } .header__container { background: var(--background-header-sticky); width: 100%; height: 128px; } .header__user-menu--desktop { display: block; } .header__user-menu--mobile { display: none; } @media (max-width: 1039px) { .header__container { width: 100%; height: 66px; } .header__user-menu--desktop { display: none; } .header__user-menu--mobile { display: block; } } .header { width: 100%; z-index: 99; position: fixed; background: var(--background); font-weight: var(--font-weight); } .header .header__brand { color: var(--color-brand); background: var(--background-brand); display: flex; align-items: center; } .header .header__nav { box-sizing: border-box; color: var(--color-nav); background: var(--background-nav); display: flex; align-items: center; border-top-left-radius: var(--header-border-radius); border-top-right-radius: var(--header-border-radius); border-bottom: 1px solid transparent; } .header__nav, .header.header--sticky .header__nav { border-bottom: var(--border); background: var(--background-nav-sticky); } .header .header__nav-content { width: 100%; display: flex; align-items: center; } .header .header__nav-menu-wrapper { width: 100%; display: flex; align-items: center; justify-content: space-between; } .header.header--sticky .header__nav-before, .header.header--sticky .header__nav-after { width: var(--header-border-radius); bottom: calc(-2 * var(--header-border-radius)); height: calc(2 * var(--header-border-radius)); position: absolute; border-top: var(--border); box-shadow: 0 calc(-1 * var(--header-border-radius)) 0 0 var(--telekom-color-background-surface); background-color: transparent; } .header.header--sticky.menu--open .header__nav-before, .header.header--sticky .header__nav-before { left: -1px; z-index: 97; border-left: var(--border); border-top-left-radius: var(--header-border-radius); } .header.header--sticky.menu--open .header__nav-after, .header.header--sticky .header__nav-after { right: -1px; z-index: 98; border-right: var(--border); border-top-right-radius: var(--header-border-radius); } .header *[slot='menu-icon'], .header .meta-navigation { display: flex; padding: 0; list-style: none; align-items: center; margin-block-start: 0; margin-block-end: 0; } @media (max-width: 1039px) { .header { height: var(--header-nav-height); } .header.menu--open .header__nav-before, .header.header--sticky .header__nav-before, .header.header--sticky .header__nav-after, .header.menu--open .header__nav-after { top: 51px; } .header .sector-navigation, .header .addon-navigation, .header *[slot='menu-main'], .header .main-navigation { display: none !important; } .header .header__brand { width: 100%; height: var(--header-nav-height); display: flex; padding: var(--spacing-nav); z-index: 96; position: absolute; transition: height var(--header-transition-speed) ease-in-out; align-items: center; animation-name: keyframes-slideUp; animation-delay: 0.5s; justify-content: space-between; animation-duration: 0.75s; animation-fill-mode: forwards; animation-timing-function: cubic-bezier(0.42, 0, 0.1, 1); } .header .header__nav { top: 4px; width: 100%; height: calc(var(--header-nav-height) - 4px); padding: var(--spacing-nav); z-index: 95; position: absolute; } .header.menu--open .header__nav { background-color: var(--telekom-color-background-surface); } .header .header__nav__mobile-menu { top: var(--header-nav-height); width: 100%; display: none; position: relative; } .header .header__nav__mobile-menu--opened { height: calc(100vh - var(--header-nav-height)); display: block; overflow-y: auto; background: var(--telekom-color-background-surface); } .header .header__brand .header__brand-before, .header .header__brand .header__brand-after { width: var(--header-border-radius); bottom: calc(-2 * var(--header-border-radius)); height: calc(2 * var(--header-border-radius)); position: absolute; border-top: transparent; box-shadow: 0 calc(-1 * var(--header-border-radius)) 0 0 var(--telekom-color-primary-standard); background-color: transparent; } .header .header__brand .header__brand-before { left: -1px; z-index: 97; border-left: transparent; border-top-left-radius: var(--header-border-radius); } .header .header__brand .header__brand-after { right: -1px; z-index: 98; border-right: transparent; border-top-right-radius: var(--header-border-radius); } .header .header__brand .logo svg { width: auto; height: 26px; } } .header .header__nav .header__nav-logo svg path { fill: var(--telekom-color-text-and-icon-primary-standard) !important; } @media (min-width: 1040px) { .header .header__nav-before { top: 55px; } .header .header__nav-after { top: 55px; } .header .mobile-menu, .header .header__nav__mobile-menu { display: none; } .header .header__brand { height: var(--header-brand-height); padding: 0 var(--telekom-spacing-composition-space-08); transition: height var(--header-transition-speed) ease-in-out; justify-content: space-between; } .header .header__brand-content { top: 0; width: 100%; display: flex; opacity: 1; position: relative; transition: opacity var(--header-transition-speed) ease-in-out, top var(--header-transition-speed) ease-in-out; align-items: center; } .header .header__nav { height: var(--header-nav-height); padding: 0 var(--telekom-spacing-composition-space-08); position: relative; } .header .header__nav-logo { width: 50px; opacity: 0; transition: none; font-weight: var(--telekom-typography-font-weight-bold); margin-right: var(--telekom-spacing-composition-space-06); pointer-events: none; } .header.header--sticky .header__nav-logo { pointer-events: all; margin-right: var(--telekom-spacing-composition-space-10); } .header scale-nav-main:first-child li { margin-left: 0; } .header *[slot='menu-main'], .header .main-navigation { height: var(--header-nav-height); margin: 0; display: flex; padding: 0; list-style: none; transition: margin-left var(--header-transition-speed) ease-in-out; align-items: center; margin-left: calc(-50px - var(--telekom-spacing-composition-space-06)); } .header *[slot='menu-sector'], .header *[slot='menu-addon'], .header .sector-navigation { display: flex; padding: 0; } .header .addon-navigation { display: flex; list-style: none; } .header .sector-navigation .segment-navigation__item-link { margin: 0 7px; } .header .addon-navigation .segment-navigation__item-link { margin: 0 0 0 14px; } .header.header--sticky { --header-brand-height: 4px; } .header.header--sticky .header__nav-logo { opacity: 1; transition: opacity var(--header-transition-speed) ease-in-out; } .header.header--sticky .header__brand-content { opacity: 0; transition: opacity var(--header-transition-speed) ease-in-out, top var(--header-transition-speed) ease-in-out; } .header *[slot='menu-main'], .header.header--sticky .main-navigation { transition: margin-left var(--header-transition-speed) ease-in-out; margin-left: 0; } .header .sector-navigation .sector-navigation__portal-name { font-weight: var(--telekom-typography-font-weight-extra-bold); font-size: var(--telekom-typography-font-size-callout); list-style-type: none; } .header *[slot='menu-main'], scale-nav-main { height: 100%; } .header *[slot='logo'], .header .header__brand-content .header__brand-branding { width: 100%; display: flex; align-items: center; justify-content: flex-start; } .header .header__brand-content .header__brand-sector { width: 100%; display: flex; align-items: center; justify-content: center; } .header .header__brand-content .header__brand-meta { width: 100%; display: flex; align-items: center; justify-content: flex-end; } } @media (min-width: 1552px) { .header .header__nav-content, .header .header__brand-content { margin: 0 auto; max-width: var(--header-max-width); } }