react-toolbox/components/drawer/style.scss

83 lines
1.6 KiB
SCSS

@import "../variables";
@import "../mixins";
//-- Variables
$drawer-width: 24 * $unit;
$drawer-bg-color: unquote("rgb(#{$palette-grey-50})") !default;
$drawer-text-color: unquote("rgb(#{$palette-grey-800})") !default;
$drawer-border-color: unquote("rgb(#{$palette-grey-300})") !default;
//-- Local styles
.drawer {
position: fixed;
top: 0;
right: 0;
left: 0;
z-index: 2;
width: 100vw;
height: 100vh;
pointer-events: none;
}
.active {
pointer-events: all;
> .content {
transition-delay: $animation-delay;
transform: translateX(0);
}
> .overlay {
opacity: $color-overlay-opacity;
}
}
.left {
> .content {
left: 0;
border-right: 1px solid $drawer-border-color;
}
&:not(.active) > .content {
transform: translateX(- $drawer-width);
}
}
.right {
> .content {
right: 0;
border-left: 1px solid $drawer-border-color;
}
&:not(.active) > .content {
transform: translateX($drawer-width);
}
}
.overlay {
width: 100%;
height: 100%;
background-color: $color-overlay;
opacity: 0;
transition-timing-function: $animation-curve-default;
transition-duration: $animation-duration;
transition-property: opacity;
}
.content {
@include shadow-2dp();
position: absolute;
top: 0;
display: block;
width: $drawer-width;
height: 100%;
overflow-y: scroll;
color: $drawer-text-color;
background-color: $drawer-bg-color;
transition-delay: 0s;
transition-timing-function: $animation-curve-default;
transition-duration: $animation-duration;
transition-property: transform;
transform-style: preserve-3d;
will-change: transform;
}