animarte
Version:
Making the digital world a little more animated place
51 lines (49 loc) • 1.6 kB
CSS
.animarte {
position: relative;
isolation: isolate;
box-sizing: border-box;
overflow: hidden;
flex-shrink: 0;
width: var(--animarte-size);
height: var(--animarte-size);
color: var(--animarte-color);
}
.animarte-semicircle--spinning-2 {
display: grid;
justify-items: center;
align-items: center;
}
.animarte-semicircle--spinning-2 .animarte-semicircle__element {
--padding: 15%;
grid-area: 1/1;
width: 100%;
height: 100%;
border-radius: 100vw;
background-color: transparent;
border-color: currentColor;
border-style: solid;
border-width: calc(var(--animarte-size) * 0.1);
}
.animarte-semicircle--spinning-2 .animarte-semicircle__element:nth-child(1) {
--slice-count: 6;
--slice-gap: 30deg;
-webkit-mask: repeating-conic-gradient(#000 0 calc(360deg / var(--slice-count) - var(--slice-gap)), transparent 0 calc(360deg / var(--slice-count)));
mask: repeating-conic-gradient(#000 0 calc(360deg / var(--slice-count) - var(--slice-gap)), transparent 0 calc(360deg / var(--slice-count)));
animation-name: semicircleSpinning2;
animation-iteration-count: infinite;
animation-duration: var(--animarte-speed);
animation-timing-function: linear;
}
.animarte-semicircle--spinning-2 .animarte-semicircle__element:nth-child(2) {
clip-path: polygon(50% 0%, 100% 0%, 100% 100%, 50% 100%);
animation-name: semicircleSpinning2;
animation-iteration-count: infinite;
animation-duration: var(--animarte-speed);
animation-timing-function: linear;
animation-direction: reverse;
}
@keyframes semicircleSpinning2 {
100% {
transform: rotate(1turn);
}
}