accounts-frontend/packages/app/components/ui/popup/popup.scss

177 lines
3.1 KiB
SCSS
Raw Normal View History

@import '~app/components/ui/colors.scss';
@import '~app/components/ui/fonts.scss';
$popupPadding: 20px; // Default content padding
$popupMargin: 20px; // Outer popup margins
@mixin popupBounding($width, $padding: null) {
2020-05-24 04:38:24 +05:30
@if ($padding == null) {
$padding: $popupMargin;
}
2020-05-24 04:38:24 +05:30
@if ($padding != $popupMargin) {
margin: $padding auto;
padding: 0 $padding;
}
2020-05-24 04:38:24 +05:30
max-width: $width;
}
.overlay {
2020-05-24 04:38:24 +05:30
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
2020-05-24 04:38:24 +05:30
z-index: 200;
2020-05-24 04:38:24 +05:30
background: rgba(#fff, 0.8);
2020-05-24 04:38:24 +05:30
text-align: center;
white-space: nowrap;
2020-05-24 04:38:24 +05:30
overflow-x: hidden;
overflow-y: auto;
2016-05-22 22:55:38 +05:30
2020-05-24 04:38:24 +05:30
perspective: 600px;
2020-05-24 04:38:24 +05:30
&:before {
content: '';
display: inline-block;
vertical-align: middle;
height: 100%;
width: 0;
}
}
.popupWrapper {
2020-05-24 04:38:24 +05:30
box-sizing: border-box;
margin: 0 auto;
padding: $popupMargin;
2020-05-24 04:38:24 +05:30
display: inline-block;
width: 100%;
vertical-align: middle;
2020-05-24 04:38:24 +05:30
transition: max-width 0.3s;
}
.popup {
2020-05-24 04:38:24 +05:30
white-space: normal;
2021-03-26 08:49:04 +05:30
text-align: start;
2020-05-24 04:38:24 +05:30
background: #fff;
box-shadow: 0 0 10px rgba(#000, 0.2);
2020-05-24 04:38:24 +05:30
color: #666;
2020-05-24 04:38:24 +05:30
:invalid {
button {
opacity: 0.3;
pointer-events: none;
}
}
}
.header {
2020-05-24 04:38:24 +05:30
position: relative;
background: $white;
padding: 15px $popupPadding;
border-bottom: 1px solid #dedede;
}
.headerTitle {
2020-05-24 04:38:24 +05:30
font-size: 20px;
font-family: $font-family-title;
text-align: center;
}
.body {
}
2016-06-03 00:00:46 +05:30
.close {
composes: close from '~app/components/ui/icons.scss';
2020-05-24 04:38:24 +05:30
position: absolute;
2021-03-26 08:49:04 +05:30
inset-inline-end: 0;
2020-05-24 04:38:24 +05:30
top: 0;
padding: 15px;
cursor: pointer;
font-size: 20px;
color: rgba(#000, 0.4);
background: rgba(#000, 0);
transition: 0.25s;
transform: translateX(0);
&:hover {
color: rgba(#000, 0.6);
background: rgba(#fff, 0.75);
}
2016-06-03 00:00:46 +05:30
@media (min-width: 655px) {
2020-05-24 04:38:24 +05:30
position: fixed;
padding: 35px;
}
.trEnter &,
.trExit & {
// don't show the close during transition, because transform forces "position: fixed"
// to layout relative container, instead of body
opacity: 0;
transform: translate(100%);
transition: 0s;
2021-03-26 08:49:04 +05:30
html[dir='rtl'] & {
transform: translate(-100%);
}
}
2016-06-03 00:00:46 +05:30
}
2016-06-04 01:08:59 +05:30
/**
* Transition states
*/
$popupInitPosition: translateY(10%) rotateX(-8deg);
2016-06-04 01:08:59 +05:30
.trEnter {
opacity: 0;
2016-06-04 01:08:59 +05:30
.popup {
2020-05-24 04:38:24 +05:30
opacity: 0;
transform: $popupInitPosition;
}
&Active {
opacity: 1;
transition: opacity 0.2s ease-in;
.popup {
opacity: 1;
transform: translateY(0) rotateX(0deg);
transition: 0.3s cubic-bezier(0.23, 1, 0.32, 1); // easeOutQuint
}
2016-06-04 01:08:59 +05:30
}
}
.trExit {
opacity: 1;
2020-05-24 04:38:24 +05:30
overflow: hidden;
2016-06-04 01:08:59 +05:30
.popup {
2020-05-24 04:38:24 +05:30
opacity: 1;
transform: translateY(0);
}
&Active {
opacity: 0;
transition: opacity 0.2s ease-in;
.popup {
opacity: 0;
transform: $popupInitPosition;
transition: 0.3s cubic-bezier(0.165, 0.84, 0.44, 1); // easeOutQuart
}
2016-06-04 01:08:59 +05:30
}
}