360 lines
12 KiB
CSS
360 lines
12 KiB
CSS
body {
|
|
margin: 0;
|
|
}
|
|
|
|
.LoadingScreen.disabled {
|
|
opacity: 0;
|
|
}
|
|
|
|
.LoadingScreen {
|
|
--background-color: #f4f4f6;
|
|
--background-color-highlight: #ffffff;
|
|
--stipple-color: #1e325c;
|
|
--stipple-opacity: 0.08;
|
|
position: absolute;
|
|
z-index: 100;
|
|
top: 0px;
|
|
bottom: 0px;
|
|
display: flex;
|
|
overflow: hidden;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
align-items: center;
|
|
justify-content: center;
|
|
opacity: 1;
|
|
transition: opacity 150ms 0ms ease-out, visibility 150ms 0ms step-start;
|
|
vertical-align: middle;
|
|
visibility: visible;
|
|
}
|
|
|
|
.LoadingScreen--darkMode {
|
|
--background-color-highlight: #28427b;
|
|
--background-color: #1e325c;
|
|
--stipple-color: #14213e;
|
|
--stipple-opacity: 0.8;
|
|
}
|
|
|
|
.LoadingScreen__background,
|
|
.LoadingScreen__background > svg {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
.LoadingScreen__background {
|
|
background: var(--background-color);
|
|
}
|
|
|
|
.LoadingScreen .Pill__stipple {
|
|
fill: var(--stipple-color);
|
|
fill-opacity: var(--stipple-opacity);
|
|
}
|
|
|
|
.LoadingScreen .Pill__gradient {
|
|
stop-color: var(--background-color);
|
|
}
|
|
|
|
.LoadingScreen .Pill__gradientHighlight {
|
|
stop-color: var(--background-color-highlight);
|
|
}
|
|
|
|
.LoadingScreen--loaded {
|
|
opacity: 0;
|
|
transition: opacity 150ms 0ms ease-in, visibility 150ms 0ms step-end;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.LoadingAnimation {
|
|
--fade-duration: 150ms;
|
|
--colour: #1E325C;
|
|
--animation-initial-delay: 750ms;
|
|
--animation-start-duration: 750ms;
|
|
--animation-end-duration: 600ms;
|
|
--animation-spinner-speed: 500ms;
|
|
--animation-spinner-mask-stroke-length: 169.6;
|
|
--ease-in-cubic: cubic-bezier(0.32, 0, 0.67, 0);
|
|
--ease-in: var(--ease-in-cubic);
|
|
--ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
|
|
--ease-in-out: var(--ease-in-out-cubic);
|
|
--ease-in-out-compass-shrink: cubic-bezier(0.1, 0.25, 0.3, 1);
|
|
|
|
opacity: 1;
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
|
|
.LoadingAnimation--darkMode {
|
|
--colour: white;
|
|
}
|
|
|
|
.LoadingAnimation g,
|
|
.LoadingAnimation rect,
|
|
.LoadingAnimation path,
|
|
.LoadingAnimation circle {
|
|
transform-origin: center center;
|
|
}
|
|
.LoadingAnimation svg {
|
|
color: var(--colour);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__spinner-gradient-color {
|
|
stop-color: var(--colour);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__spinner-container {
|
|
opacity: 0;
|
|
transform: scale3D(2.08, 2.08, 1) rotate3d(0, 0, 1, -10deg);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__spinner-mask-container {
|
|
transform: rotate3d(0, 0, 1, -86deg);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__spinner-mask {
|
|
stroke-dasharray: var(--animation-spinner-mask-stroke-length);
|
|
stroke-dashoffset: var(--animation-spinner-mask-stroke-length);
|
|
transform: scale3d(1.03, 1.03, 1);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__compass {
|
|
opacity: 1;
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__compass-needle-container {
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__compass-needle,
|
|
.LoadingAnimation .LoadingAnimation__compass-needle-front-mask,
|
|
.LoadingAnimation .LoadingAnimation__compass-needle-behind-mask {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
transform-origin: 54px 46px;
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__compass-base-mask-container {
|
|
transform: rotate3d(0, 0, 1, -86deg);
|
|
}
|
|
.LoadingAnimation .LoadingAnimation__compass-base-mask {
|
|
stroke-dasharray: var(--animation-spinner-mask-stroke-length);
|
|
stroke-dashoffset: var(--animation-spinner-mask-stroke-length);
|
|
}
|
|
|
|
.LoadingAnimation--loading {
|
|
--fade-in-duration: 150ms;
|
|
--fade-in-delay: 0ms;
|
|
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__spinner-container {
|
|
--shrink-duration: calc(var(--animation-end-duration) * 0.5);
|
|
--shrink-delay: calc( ( var(--animation-start-duration) + var(--animation-end-duration) ) * 0.91 + var(--animation-initial-delay));
|
|
--fade-in-duration: calc(var(--animation-end-duration) * 0.25);
|
|
--fade-in-delay: calc( var(--animation-start-duration) + var(--animation-end-duration) * 0.24 + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__spinner-shrink var(--shrink-duration) var(--shrink-delay) var(--ease-in-out-compass-shrink) forwards, LoadingAnimation__fade-in var(--fade-in-duration) var(--fade-in-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__spinner-mask {
|
|
--reveal-duration: var(--animation-end-duration);
|
|
--reveal-delay: calc(var(--animation-start-duration) + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__spinner-reveal var(--reveal-duration) var(--reveal-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass {
|
|
--shrink-duration: calc(var(--animation-end-duration) * 0.5);
|
|
--shrink-delay: calc( ( var(--animation-start-duration) + var(--animation-end-duration) ) * 0.91 + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__compass-shrink var(--shrink-duration) var(--shrink-delay) var(--ease-in-out-compass-shrink) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass-needle-container {
|
|
--shrink-duration: calc(var(--animation-end-duration) * 0.25);
|
|
--shrink-delay: calc( var(--animation-start-duration) + var(--animation-end-duration) - var(--animation-end-duration) * 0.25 + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__needle-shrink var(--shrink-duration) var(--shrink-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass-needle {
|
|
--spin-left-duration: var(--animation-start-duration);
|
|
--spin-left-delay: var(--animation-initial-delay);
|
|
--spin-right-duration: var(--animation-end-duration);
|
|
--spin-right-delay: calc(var(--animation-start-duration) + var(--animation-initial-delay));
|
|
--fade-out-duration: calc(var(--animation-end-duration) * 0.25);
|
|
--fade-out-delay: calc( var(--animation-start-duration) + var(--animation-end-duration) - var(--animation-end-duration) * 0.25 + var(--animation-initial-delay));
|
|
|
|
animation:
|
|
LoadingAnimation__needle-spin-left var(--spin-left-duration) var(--spin-left-delay) var(--ease-in-out) forwards,
|
|
LoadingAnimation__needle-spin-right var(--spin-right-duration) var(--spin-right-delay) var(--ease-in) forwards,
|
|
LoadingAnimation__fade-out var(--fade-out-duration) var(--fade-out-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass-needle-behind-mask {
|
|
--spin-left-duration: var(--animation-start-duration);
|
|
--spin-left-delay: var(--animation-initial-delay);
|
|
--spin-right-duration: calc(var(--animation-end-duration) * 0.3666);
|
|
--spin-right-delay: calc(var(--animation-start-duration) + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__needle-mask-spin-left var(--spin-left-duration) var(--spin-left-delay) var(--ease-in-out) forwards, LoadingAnimation__needle-mask-spin-right var(--spin-right-duration) var(--spin-right-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass-needle-front-mask {
|
|
--spin-left-duration: var(--animation-start-duration);
|
|
--spin-left-delay: var(--animation-initial-delay);
|
|
--spin-right-duration: var(--animation-end-duration);
|
|
--spin-right-delay: calc(var(--animation-start-duration) + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__needle-spin-left var(--spin-left-duration) var(--spin-left-delay) var(--ease-in-out) forwards, LoadingAnimation__needle-spin-right var(--spin-right-duration) var(--spin-right-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--loading .LoadingAnimation__compass-base-mask {
|
|
--conceal-duration: var(--animation-end-duration);
|
|
--conceal-delay: calc(var(--animation-start-duration) + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__compass-base-conceal var(--conceal-duration) var(--conceal-delay) var(--ease-in) forwards;
|
|
}
|
|
.LoadingAnimation.LoadingAnimation--spinning .LoadingAnimation__spinner {
|
|
--spin-duration: var(--animation-spinner-speed);
|
|
--spin-delay: calc( ( var(--animation-start-duration) + var(--animation-end-duration) ) * 0.95 + var(--animation-initial-delay));
|
|
|
|
animation: LoadingAnimation__spinner-spin var(--spin-duration) var(--spin-delay) linear infinite;
|
|
}
|
|
|
|
.LoadingAnimation--loaded {
|
|
--duration: 150ms;
|
|
--delay: 0ms;
|
|
|
|
animation: LoadingAnimation__fade-out var(--duration) var(--delay) var(--ease-in) forwards, LoadingAnimation__shrink var(--duration) var(--delay) var(--ease-in) forwards;
|
|
}
|
|
|
|
.LoadingAnimation--loaded .LoadingAnimation__spinner-container {
|
|
opacity: 1;
|
|
transform: scale3D(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__spinner-mask {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass {
|
|
transform: scale3D(0.4166666667, 0.4166666667, 1);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass-needle-container {
|
|
transform: scale3d(0.35, 0.35, 1);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass-needle {
|
|
opacity: 0;
|
|
transform: rotate3d(0, 0, 1, 405deg);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass-needle-behind-mask {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass-needle-front-mask {
|
|
transform: rotate3d(0, 0, 1, 405deg);
|
|
}
|
|
.LoadingAnimation--loaded .LoadingAnimation__compass-base-mask {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
|
|
@keyframes LoadingAnimation__fade-in {
|
|
0% {
|
|
opacity: 0;
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__fade-out {
|
|
0% {
|
|
opacity: 1;
|
|
}
|
|
100% {
|
|
opacity: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__shrink {
|
|
0% {
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
100% {
|
|
transform: scale3d(0.35, 0.35, 1);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__spinner-shrink {
|
|
0% {
|
|
transform: scale3D(2.08, 2.08, 1) rotate3d(0, 0, 1, -10deg);
|
|
}
|
|
100% {
|
|
transform: scale3D(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__spinner-spin {
|
|
from {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
}
|
|
to {
|
|
transform: rotate3d(0, 0, 1, 359deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__spinner-reveal {
|
|
0%, 5% {
|
|
stroke-dashoffset: var(--animation-spinner-mask-stroke-length);
|
|
}
|
|
95%, 100% {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__needle-spin-left {
|
|
0% {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
}
|
|
100% {
|
|
transform: rotate3d(0, 0, 1, -20deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__needle-spin-right {
|
|
0% {
|
|
transform: rotate3d(0, 0, 1, -20deg);
|
|
}
|
|
100% {
|
|
transform: rotate3d(0, 0, 1, 405deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__needle-mask-spin-left {
|
|
0% {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
}
|
|
100% {
|
|
transform: rotate3d(0, 0, 1, -20deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__needle-mask-spin-right {
|
|
0% {
|
|
transform: rotate3d(0, 0, 1, -20deg);
|
|
}
|
|
100% {
|
|
transform: rotate3d(0, 0, 1, 0deg);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__needle-shrink {
|
|
0% {
|
|
transform: scale3d(1, 1, 1);
|
|
}
|
|
100% {
|
|
transform: scale3d(0.35, 0.35, 1);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__compass-shrink {
|
|
0% {
|
|
transform: scale3D(1, 1, 1);
|
|
}
|
|
100% {
|
|
transform: scale3D(0.4166666667, 0.4166666667, 1);
|
|
}
|
|
}
|
|
|
|
@keyframes LoadingAnimation__compass-base-conceal {
|
|
0%, 5% {
|
|
stroke-dashoffset: var(--animation-spinner-mask-stroke-length);
|
|
}
|
|
95%, 100% {
|
|
stroke-dashoffset: 0;
|
|
}
|
|
}
|