Files
payload/src/admin/components/elements/Loading/index.scss

142 lines
2.3 KiB
SCSS

@import '../../../scss/styles';
.fullscreen-loader {
isolation: isolate;
height: 100%;
width: 100%;
left: 0;
top: 0;
bottom: 0;
position: fixed;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
pointer-events: none;
z-index: calc(var(--z-status) + 1);
transition-property: left, width;
transition: 250ms ease-in-out;
&.fullscreen-loader--entering {
opacity: 1;
animation: 500ms fade-in ease-in-out;
pointer-events: all;
}
&.fullscreen-loader--exiting {
opacity: 0;
animation: 500ms fade-out ease-in-out;
}
&.fullscreen-loader--withoutNav {
left: var(--nav-width);
width: calc(100% - var(--nav-width));
}
&:after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: var(--theme-elevation-50);
opacity: .85;
z-index: -1;
}
&__bars {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
gap: 7px;
align-items: center;
}
&__bar {
width: 2px;
background-color: var(--theme-elevation-1000);
height: 15px;
&:nth-child(1) {
transform: translateY(0);
animation: animate-bar--odd 1.25s infinite;
}
&:nth-child(2) {
transform: translateY(-2px);
animation: animate-bar--even 1.25s infinite;
}
&:nth-child(3) {
transform: translateY(0);
animation: animate-bar--odd 1.25s infinite;
}
&:nth-child(4) {
transform: translateY(-2px);
animation: animate-bar--even 1.25s infinite;
}
&:nth-child(5) {
transform: translateY(0);
animation: animate-bar--odd 1.25s infinite;
}
}
&__text {
margin-top: base(.75);
text-transform: uppercase;
font-family: var(--font-body);
font-size: base(.75);
letter-spacing: 3px;
}
}
@keyframes animate-bar--even {
0% {
transform: translateY(2px);
}
50% {
transform: translateY(-2px);
}
100% {
transform: translateY(2px);
}
}
@keyframes animate-bar--odd {
0% {
transform: translateY(-2px);
}
50% {
transform: translateY(2px);
}
100% {
transform: translateY(-2px);
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes fade-out {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}