dootask/resources/assets/sass/drawer-overlay.scss
2022-01-14 15:55:26 +08:00

137 lines
3.2 KiB
SCSS
Vendored

.drawer-overlay {
position: fixed;
top: 0;
left: 0;
width: 0;
height: 0;
z-index: 1000;
box-sizing: border-box;
pointer-events: none;
background: rgba(0, 0, 0, 0.76);
outline: none;
opacity: 0;
display: flex;
flex-direction: column;
justify-content: flex-end;
.overlay-mask {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 1;
}
.overlay-body {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
max-width: 100%;
max-height: 100%;
z-index: 2;
.overlay-close {
flex-shrink: 0;
display: flex;
align-items: flex-end;
justify-content: flex-end;
> a {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
color: #dbdbde;
&:hover {
color: #fff
}
.icon {
width: 24px;
height: 24px
}
}
}
.overlay-resize {
width: 100%;
height: 5px;
margin-bottom: -5px;
z-index: 1;
}
.overlay-content {
flex: 1;
position: relative;
background: #fff;
border-radius: 18px 18px 0 0;
transform: translate(0, 15%) scale(0.98);
cursor: default;
opacity: 0;
}
}
&.overlay-visible {
pointer-events: auto;
opacity: 1;
width: 100%;
height: 100%;
transition: opacity 0.2s ease;
.overlay-body {
.overlay-content {
opacity: 1;
transform: translate(0, 0) scale(1);
transition: opacity 0.2s ease, transform 0.3s ease;
}
}
}
&.overlay-hide {
width: 100%;
height: 100%;
transition: opacity 0.2s ease;
.overlay-body {
.overlay-content {
transform: translate(0, 15%) scale(0.98);
transition: opacity 0.2s ease, transform 0.2s ease
}
}
}
&.right {
flex-direction: row;
justify-content: flex-end;
.overlay-body {
flex-direction: row;
.overlay-close {
align-items: flex-start;
}
.overlay-resize {
width: 5px;
height: 100%;
margin-right: -5px;
z-index: 1;
}
.overlay-content {
transform: translate(15%, 0) scale(0.98);
border-radius: 18px 0 0 18px;
}
}
&.overlay-visible {
.overlay-body {
.overlay-content {
transform: translate(0, 0) scale(1);
}
}
}
&.overlay-hide {
.overlay-body {
.overlay-content {
transform: translate(15%, 0) scale(0.98);
}
}
}
}
}