@telekom/scale-components
Version:
Scale is the digital design system for Telekom products and experiences.
109 lines (94 loc) • 2.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 {
--top: var(--scl-telekom-header-height, 0);
--left: 0;
--width: 100vw;
--height: auto;
--position: fixed;
--background: var(--telekom-color-background-surface);
--background-variant-mobile: var(--telekom-color-background-canvas);
--background-backdrop: var(--telekom-color-background-canvas);
--shadow: none;
--z-index: 7;
--duration: 0;
--duration-backdrop-in: 0;
--duration-backdrop-out: 0;
--translate-x: 0;
--translate-y: 0;
--translate-z: 0;
display: contents;
}
[part~='variant-mobile'] {
--height: 100vh;
--top: 0;
--background: var(--background-variant-mobile);
}
:host([debug]) [part~='base'] {
outline: 1px dotted gold;
}
[part~='base'] {
display: none;
position: var(--position);
z-index: var(--z-index);
top: var(--top);
left: var(--left);
width: var(--width);
height: var(--height);
min-height: 25vh;
background: var(--background);
box-shadow: var(--shadow);
animation-duration: var(--duration);
border-top: 1px solid var(--telekom-color-ui-faint);
}
[part~='base'][part~='expanded'] {
display: block;
}
[part~='backdrop'] {
display: none;
position: var(--position);
background-color: var(--telekom-color-background-backdrop);
top: var(--top);
left: var(--left);
width: var(--width);
height: 100vh;
animation-duration: var(--duration);
}
/* no backdrop for "mobile" variant */
[part~='backdrop'][part~='expanded']:not([part~='variant-mobile']) {
display: block;
}
[part~='backdrop'][part~='expanded'][part~='in'] {
animation-duration: var(--duration-backdrop-in);
}
[part~='backdrop'][part~='expanded'][part~='out'] {
animation-duration: var(--duration-backdrop-out);
}
@keyframes toggle {
from {
opacity: 0;
transform: translate3d(
var(--translate-x),
var(--translate-y),
var(--translate-z)
);
}
}
[part~='in'] {
animation-name: toggle;
animation-timing-function: var(--telekom-motion-easing-enter);
}
[part~='out'] {
animation-name: toggle;
animation-fill-mode: forwards;
animation-direction: reverse;
animation-timing-function: var(--telekom-motion-easing-exit);
}