@telekom/scale-components
Version:
Scale is the digital design system for Telekom products and experiences.
154 lines (131 loc) • 3.89 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/.
*/
:host {
--focus-outline: var(--telekom-line-weight-highlight) solid
var(--telekom-color-functional-focus-standard);
display: block;
position: relative;
outline-color: transparent;
/* So outline is visible on the sides */
padding-left: var(--telekom-spacing-composition-space-02);
padding-right: var(--telekom-spacing-composition-space-02);
--_min-width: fit-content;
--_min-width-moz: -moz-fit-content;
}
* {
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
.menu-flyout-item {
position: relative;
display: flex;
align-items: stretch;
text-align: left;
font-size: var(--telekom-typography-font-size-body);
line-height: 2.635em;
/* calc here to account for the extra padding for the outline */
padding: 0
calc(
var(--telekom-spacing-composition-space-08) -
var(--telekom-spacing-composition-space-02)
);
user-select: none;
white-space: nowrap;
border-radius: 0;
cursor: pointer;
color: var(--telekom-color-text-and-icon-standard);
/* 10px relates to the PAD value in Menu component */
max-width: calc(
100vw - 2 * var(--telekom-spacing-composition-space-08) - 2 * 10px
);
overflow: hidden;
min-width: var(--_min-width-moz);
min-width: var(--_min-width);
}
.menu-flyout-item:focus:not(.menu-flyout-item--disabled),
.menu-flyout-item:hover:not(.menu-flyout-item--disabled) {
color: var(--telekom-color-text-and-icon-primary-hovered);
}
:host(:focus) .menu-flyout-item:not(.menu-flyout-item--disabled) {
color: var(--telekom-color-text-and-icon-standard);
}
:host(:focus) .menu-flyout-item:hover:not(.menu-flyout-item--disabled) {
color: var(--telekom-color-text-and-icon-primary-hovered);
}
:host(:focus) {
outline: none;
}
:host(:focus) .menu-flyout-item {
outline: var(--focus-outline);
border-radius: var(--telekom-radius-small);
}
:host(:active) .menu-flyout-item:not(.menu-flyout-item--disabled) {
color: var(--telekom-color-text-and-icon-primary-pressed);
}
:host([aria-expanded='true']) .menu-flyout-item {
color: var(--telekom-color-text-and-icon-primary-standard);
}
.menu-flyout-item--disabled {
outline: none;
color: var(--telekom-color-text-and-icon-disabled);
cursor: not-allowed;
}
:host([active])::before {
content: '';
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 0;
background-color: var(--telekom-color-primary-standard);
/* a11y: HCM */
border-left: var(--telekom-spacing-composition-space-02) solid transparent;
}
.menu-flyout-item--active {
color: var(--telekom-color-text-and-icon-primary-standard);
}
/* a11y: HCM */
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
.menu-flyout-item--disabled:not(.menu-flyout-item--disabled),
.menu-flyout-item--active:not(.menu-flyout-item--disabled) {
color: white;
stroke: white;
}
}
.menu-flyout-item__label {
flex: 1 1 0;
overflow: hidden;
text-overflow: ellipsis;
}
.menu-flyout-item__prefix {
flex: 0 0 auto;
display: flex;
align-items: center;
}
.menu-flyout-item__check,
slot[name='prefix']::slotted(:last-of-type) {
margin-right: var(--telekom-spacing-composition-space-04);
}
.menu-flyout-item__check {
visibility: hidden;
}
:host([aria-checked='true']) .menu-flyout-item__check {
visibility: visible;
}
.menu-flyout-item__suffix {
flex: 0 0 auto;
display: flex;
align-items: center;
}
.menu-flyout-item__cascade,
slot[name='suffix']::slotted(:first-of-type) {
margin-left: var(--telekom-spacing-composition-space-06);
}