ldrs
Version:
Minimalist loading animations for React and web components
74 lines (71 loc) • 1.68 kB
CSS
.container_6d0ad0 {
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
height: calc(var(--uib-size) * 0.59);
width: var(--uib-size);
}
.inner_0bfd49 {
--uib-cube-size: calc(var(--uib-size) * 0.2);
--uib-arc-1: -90deg;
--uib-arc-2: 90deg;
display: flex;
align-items: flex-end;
justify-content: center;
width: 100%;
height: calc(100% - var(--uib-cube-size) / 2);
padding-bottom: calc(var(--uib-cube-size) / 2);
}
.cube_79c2a7 {
--cube-container-height: calc(var(--uib-size) * 0.8);
display: flex;
align-items: center;
width: var(--uib-cube-size);
height: var(--cube-container-height);
transform-origin: center bottom;
transform: rotate(var(--uib-arc-1));
animation: metronome_64c6e4 var(--uib-speed) linear infinite;
}
.cube_79c2a7::after {
content: "";
display: block;
width: var(--uib-cube-size);
height: var(--uib-cube-size);
background-color: var(--uib-color);
border-radius: 25%;
animation: morph_4925da var(--uib-speed) linear infinite;
transform-origin: center left;
transition: background-color 0.3s ease;
}
@keyframes metronome_64c6e4 {
0% {
transform: rotate(var(--uib-arc-1));
}
50% {
transform: rotate(var(--uib-arc-2));
}
50.001% {
transform: translateX(var(--cube-container-height)) rotate(var(--uib-arc-1));
}
100% {
transform: rotate(var(--uib-arc-1));
}
}
@keyframes morph_4925da {
15% {
transform: scaleX(1.2) scaleY(0.8);
}
30%, 50% {
transform: scaleX(1);
}
55% {
transform: scaleX(0.8) scaleY(1.2);
}
65%, 80% {
transform: scaleX(1);
}
90%, 95% {
transform: scaleX(0.65) scaleY(1.3);
}
}