amis-rpc-design/libs/amis/packages/amis-ui/scss/components/_popup.scss
2023-10-07 19:42:30 +08:00

168 lines
2.8 KiB
SCSS

@keyframes PopUpIn {
from {
height: 0;
}
}
@keyframes PopUpOut {
to {
height: 0;
}
}
@keyframes PopUpOpacityIn {
from {
opacity: 0;
}
}
@keyframes PopUpOpacityOut {
to {
opacity: 0;
}
}
.#{$ns}PopUp {
width: 100%;
height: px2rem(400px);
position: fixed;
background: var(--PopOver-bg);
left: 0;
bottom: 0;
z-index: $zindex-top;
padding: 0;
margin: 0;
font-weight: var(--fontWeightNormal);
letter-spacing: normal;
line-height: var(--lineHeightBase);
text-align: left;
text-align: start;
text-decoration: none;
text-shadow: none;
text-transform: none;
white-space: normal;
word-break: normal;
word-spacing: normal;
word-wrap: normal;
font-size: var(--fontSizeBase);
box-shadow: var(--boxShadow);
border: var(--borderWidth) solid var(--borderColor);
border-radius: var(--borderRadius);
overflow: hidden;
&.in,
&.out {
animation-duration: var(--animation-duration);
animation-fill-mode: both;
}
&.in {
animation-name: PopUpIn;
.#{$ns}PopUp-overlay {
animation-name: PopUpOpacityIn;
}
}
&.out {
animation-name: PopUpOut;
.#{$ns}PopUp-overlay {
animation-name: PopUpOpacityOut;
}
}
&-inner {
position: relative;
overflow: hidden;
height: 100%;
box-sizing: border-box;
background: $white;
display: flex;
flex-direction: column;
}
&-closeBox {
width: px2rem(48px);
height: px2rem(48px);
position: absolute;
z-index: 1;
cursor: pointer;
right: 0;
top: 0;
display: flex;
justify-content: center;
align-items: center;
}
&-closeWrap {
position: relative;
text-align: center;
height: px2rem(48px);
line-height: px2rem(48px);
}
&-closeWrap &-close {
z-index: 1;
color: var(--icon-color);
cursor: pointer;
}
&-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
height: px2rem(60px);
}
&-title {
font-size: var(--fontSizeMd);
}
&-cancel {
color: var(--PopUp-cancelAction-color);
margin-left: var(--gap-sm);
}
&-confirm {
color: var(--PopUp-confirmAction-color);
margin-right: var(--gap-sm);
border: none;
}
&-content {
overflow-y: auto;
height: 100%;
display: flex;
flex: 1;
> div {
flex: 1;
}
}
& > * {
position: relative;
z-index: 2;
}
&-overlay {
position: fixed !important;
top: 0;
left: 0;
right: 0;
z-index: 1;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
opacity: 1;
animation-duration: var(--animation-duration);
animation-fill-mode: both;
}
&--leftBottomLeftTop {
margin-top: px2rem(4px);
}
&--leftTopLeftBottom {
margin-top: px2rem(-4px);
}
&-safearea {
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
}
}