ldrs
Version:
Minimalist loading animations for React and web components
96 lines (93 loc) • 2.1 kB
CSS
.container_5c66af {
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
height: calc(var(--uib-size) * 0.51);
width: var(--uib-size);
}
.inner_a47ac6 {
--uib-cube-size: calc(var(--uib-size) / 5.5);
--uib-arc-1: -80deg;
--uib-arc-2: 80deg;
display: flex;
align-items: flex-start;
justify-content: center;
width: 100%;
height: 100%;
}
.cube_b64d40 {
width: var(--uib-cube-size);
height: calc(var(--uib-size) * 0.5);
transform-origin: center bottom;
transform: rotate(var(--uib-arc-1));
animation: metronome_27194f var(--uib-speed) linear infinite;
}
.cube_b64d40::after {
content: "";
display: block;
width: var(--uib-cube-size);
height: var(--uib-cube-size);
background-color: var(--uib-color);
border-radius: 25%;
animation: morph_dd330a var(--uib-speed) linear infinite;
transition: background-color 0.3s ease;
}
@keyframes metronome_27194f {
0% {
transform: rotate(var(--uib-arc-1));
}
10% {
transform: rotate(var(--uib-arc-1));
animation-timing-function: ease-out;
}
50% {
transform: rotate(var(--uib-arc-2));
}
60% {
transform: rotate(var(--uib-arc-2));
animation-timing-function: ease-out;
}
100% {
transform: rotate(var(--uib-arc-1));
}
}
@keyframes morph_dd330a {
0%, 5% {
transform: scaleX(0.75) scaleY(1.25);
transform-origin: center left;
}
12.5% {
transform: scaleX(1.5);
transform-origin: center left;
}
27.5% {
transform: scaleX(1);
transform-origin: center left;
}
27.5001%, 42.5% {
transform: scaleX(1);
transform-origin: center right;
}
47.5% {
transform: scaleX(0.75) scaleY(1.25);
transform-origin: center right;
animation-timing-function: ease-in;
}
65% {
transform: scaleX(1.5);
transform-origin: center right;
}
77.5% {
transform: scaleX(1);
transform-origin: center right;
}
77.5001%, 95% {
transform: scaleX(1);
transform-origin: center left;
}
100% {
transform: scaleX(0.75) scaleY(1.25);
transform-origin: center left;
}
}