@telekom/scale-components
Version:
Scale is the digital design system for Telekom products and experiences.
153 lines (137 loc) • 4.46 kB
CSS
/**
* @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/.
*/
/*
TODO
- [ ] do something about that hard-coded 20px
*/
:host {
box-sizing: content-box;
position: fixed;
/* z-index over 99 to flow over app-header
TODO: (a solid system for z-index values would be nicer) */
z-index: 100;
pointer-events: none;
}
.menu-flyout-list {
display: none;
position: absolute;
pointer-events: initial;
z-index: var(--scl-z-index-20);
background: var(--telekom-color-background-surface);
border-radius: var(--telekom-radius-standard);
box-shadow: var(--telekom-shadow-overlay);
overflow-y: hidden;
margin-top: var(--spacing-y-list, 0);
margin-bottom: var(--spacing-y-list, 0);
margin-left: var(--spacing-x-list, 0);
margin-right: var(--spacing-x-list, 0);
}
/* a11y: HCM */
.menu-flyout-list::after {
content: '';
display: block;
position: absolute;
width: calc(100% - 2px);
height: calc(100% - 2px);
inset: 0;
border-radius: var(--telekom-radius-standard);
border: 1px solid transparent;
pointer-events: none;
}
.menu-flyout-list--opened {
display: flex;
}
.menu-flyout-list__list {
padding: 20px 0;
overflow-y: auto;
overflow-y: overlay;
overscroll-behavior: contain;
width: 100%;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-bottom-left,
.menu-flyout-list--flip-vertical.menu-flyout-list--direction-top-right,
.menu-flyout-list--flip-horizontal.menu-flyout-list--flip-vertical.menu-flyout-list--direction-top-left,
.menu-flyout-list--direction-bottom-right {
top: calc(100% + var(--telekom-spacing-composition-space-03));
left: 0;
right: auto;
bottom: auto;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-bottom-right,
.menu-flyout-list--flip-vertical.menu-flyout-list--direction-top-left,
.menu-flyout-list--flip-horizontal.menu-flyout-list--flip-vertical.menu-flyout-list--direction-top-right,
.menu-flyout-list--direction-bottom-left {
top: calc(100% + var(--telekom-spacing-composition-space-03));
right: 0;
left: auto;
bottom: auto;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-top-left,
.menu-flyout-list--flip-vertical.menu-flyout-list--direction-bottom-right,
.menu-flyout-list--flip-horizontal.menu-flyout-list--flip-vertical.menu-flyout-list--direction-bottom-left,
.menu-flyout-list--direction-top-right {
bottom: calc(100% + var(--telekom-spacing-composition-space-03));
left: 0;
right: auto;
top: auto;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-top-right,
.menu-flyout-list--flip-vertical.menu-flyout-list--direction-bottom-left,
.menu-flyout-list--flip-horizontal.menu-flyout-list--flip-vertical.menu-flyout-list--direction-bottom-right,
.menu-flyout-list--direction-top-left {
bottom: calc(100% + var(--telekom-spacing-composition-space-03));
right: 0;
left: auto;
top: auto;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-left,
.menu-flyout-list--direction-right {
left: calc(100% - var(--telekom-spacing-composition-space-03));
top: -20px;
right: auto;
bottom: auto;
}
.menu-flyout-list--flip-horizontal.menu-flyout-list--direction-right,
.menu-flyout-list--direction-left {
right: calc(100% - var(--telekom-spacing-composition-space-03));
top: -20px;
left: auto;
bottom: auto;
}
.menu-flyout-list__scroll-up-indicator,
.menu-flyout-list__scroll-down-indicator {
position: absolute;
width: 0;
border: 5px solid transparent;
pointer-events: none;
opacity: 0;
left: 50%;
}
.menu-flyout-list__scroll-up-indicator {
top: var(--telekom-spacing-composition-space-04);
border-bottom: 5px solid var(--telekom-color-ui-faint);
border-top: 0;
}
.menu-flyout-list__scroll-down-indicator {
bottom: var(--telekom-spacing-composition-space-04);
border-top: 5px solid var(--telekom-color-ui-faint);
border-bottom: 0;
}
.menu-flyout-list--can-scroll-up .menu-flyout-list__scroll-up-indicator {
opacity: 1;
}
.menu-flyout-list--can-scroll-down .menu-flyout-list__scroll-down-indicator {
opacity: 1;
}
.menu-flyout-list--brand-header-dropdown ::slotted(scale-menu-flyout-item) {
--_min-width-moz: 0;
--_min-width: 0;
}