@telekom/scale-components
Version:
Scale is the digital design system for Telekom products and experiences.
163 lines (144 loc) • 4.48 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 {
--width: 100%;
--width-toast: 25rem;
--radius: var(--telekom-radius-standard);
--spacing-y: var(--telekom-spacing-composition-space-06);
--spacing-y-inner: var(--telekom-spacing-composition-space-04);
--spacing-x-aside: var(--telekom-spacing-composition-space-14);
--duration-in: var(--telekom-motion-duration-transition);
--duration-out: var(--telekom-motion-duration-transition);
--easing-in: var(--telekom-motion-easing-enter);
--easing-out: var(--telekom-motion-easing-exit);
--translate-x: 0;
--translate-y: 0;
--translate-z: 0;
display: contents;
}
[part~='base'] {
position: relative;
display: none;
box-sizing: border-box;
border-radius: var(--radius);
padding-right: var(--spacing-x-aside);
width: var(--width);
background: var(--_background-subtle);
box-shadow: var(--_shadow);
animation-duration: var(--duration);
}
[part~='base'][part~='open'] {
display: flex;
}
@keyframes toggle {
from {
opacity: 0;
transform: translate3d(
var(--translate-x),
var(--translate-y),
var(--translate-z)
);
}
}
[part~='in'] {
animation-name: toggle;
animation-duration: var(--duration-in);
animation-timing-function: var(--easing-in);
}
[part~='out'] {
animation-name: toggle;
animation-direction: reverse;
animation-duration: var(--duration-out);
animation-timing-function: var(--easing-out);
}
[part~='variant-informational'] {
--_background-subtle: var(--telekom-color-functional-informational-subtle);
--_background-accent: var(--telekom-color-functional-informational-standard);
--_color-accent: var(--telekom-color-text-and-icon-functional-informational);
}
[part~='variant-warning'] {
--_background-subtle: var(--telekom-color-functional-warning-subtle);
--_background-accent: var(--telekom-color-functional-warning-standard);
--_color-accent: var(--telekom-color-text-and-icon-functional-warning);
}
[part~='variant-success'] {
--_background-subtle: var(--telekom-color-functional-success-subtle);
--_background-accent: var(--telekom-color-functional-success-standard);
--_color-accent: var(--telekom-color-text-and-icon-functional-success);
}
[part~='variant-danger'] {
--_background-subtle: var(--telekom-color-functional-danger-subtle);
--_background-accent: var(--telekom-color-functional-danger-standard);
--_color-accent: var(--telekom-color-text-and-icon-functional-danger);
}
[part~='type-banner'] {
--_shadow: var(--telekom-shadow-floating-standard);
}
[part~='type-toast'] {
--translate-x: var(--telekom-spacing-composition-space-05);
--_shadow: var(--telekom-shadow-top);
width: var(--width-toast);
}
[part='icon'] {
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: flex-start;
width: var(--spacing-x-aside);
padding-top: var(--spacing-y);
padding-bottom: var(--spacing-y);
border-top-left-radius: var(--radius);
border-bottom-left-radius: var(--radius);
color: var(--_color-accent);
}
[part~='type-toast'] [part='icon'] {
background: var(--_background-accent);
color: var(--telekom-color-text-and-icon-white-standard);
align-items: center;
}
[part~='type-toast'][part~='variant-warning'] [part='icon'] {
color: var(--telekom-color-text-and-icon-black-standard);
}
[part='body'] {
margin-top: var(--spacing-y);
margin-bottom: var(--spacing-y);
}
[part~='type-toast'] [part='body'] {
padding-left: var(--spacing-y);
}
[part='heading'] {
font: var(--telekom-text-style-heading-6);
line-height: var(--telekom-typography-line-spacing-tight);
}
[part='text'] {
margin-top: var(--spacing-y-inner);
}
::slotted(*) {
font: var(--telekom-text-style-body);
}
::slotted(p) {
margin: 0;
margin-top: var(--spacing-y-inner);
}
[part='close-button'] {
--color-ghost: var(--telekom-text-and-icon-standard);
position: absolute;
right: var(--telekom-spacing-composition-space-03);
top: var(--telekom-spacing-composition-space-03);
}
@media screen and (forced-colors: active), (-ms-high-contrast: active) {
[part~='base'] {
border: 1px solid white;
}
[part='close-button'] {
--color-ghost: white;
}
}