.cl-popup__wrapper { position: fixed; top: 0; bottom: 0; left: 0; right: 0; opacity: 0; transition: all 0.3s; pointer-events: none; &.is-open { pointer-events: auto; opacity: 1; .cl-popup { transition: all 0.4s; transform: translate(0, 0); } } &::after { content: ""; display: inline-block; height: 100%; width: 0; vertical-align: middle; } .cl-popup__modal { height: 100%; width: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; } .cl-popup { background-color: #fff; position: absolute; transition: all 0.3s; box-sizing: border-box; &__header { display: flex; align-items: center; justify-content: center; line-height: 1; font-size: 30rpx; height: 90rpx; letter-spacing: 1rpx; font-weight: 500; } &__container { height: 100%; box-sizing: border-box; } &__close { position: absolute; top: 26rpx; right: 26rpx; font-size: 38rpx; line-height: 1; } } &--left { .cl-popup { transform: translateX(-100%); top: 0; left: 0; } } &--right { .cl-popup { transform: translateX(100%); right: 0; top: 0; } } &--top { .cl-popup { transform: translateY(-100%); left: 0; top: 0; } } &--bottom { .cl-popup { transform: translateY(100%); left: 0; bottom: 0; } } &--center { display: flex; flex-direction: column; justify-content: center; align-items: center; .cl-popup { transform: scale(1.3); } } &--left, &--right, &--bottom { .cl-popup { padding-bottom: env(safe-area-inset-bottom); } } }