<div class="spinner-1"></div>
<div class="spinner-2"></div>
<div class="spinner-3"></div>
<div class="spinner-4"></div>
<div class="spinner-5"></div>
<div class="spinner-6"></div>
<div class="spinner-7"></div>
<div class="spinner-8"></div>
<div class="spinner-9"></div>
<div class="spinner-10"></div>
.spinner-1 {
width: 50px;
aspect-ratio: 1;
border-radius: 50%;
background: repeating-conic-gradient(#000 0 90deg,#ccc 0 180deg);
animation: s1 1s infinite linear;
}
@keyframes s1 {
100% {transform: rotate(.5turn)}
}
.spinner-2 {
width: 50px;
aspect-ratio: 1;
display: grid;
border-radius: 50%;
background: conic-gradient(#25b09b 25%,#f03355 0 50%,#514b82 0 75%,#ffa516 0);
animation: s2 2s infinite linear;
}
.spinner-2::before,
.spinner-2::after {
content: "";
grid-area: 1/1;
margin: 15%;
border-radius: 50%;
background: inherit;
animation: inherit;
}
.spinner-2::after {
margin: 25%;
animation-duration: 3s;
}
@keyframes s2 {
100% {transform: rotate(1turn)}
}
.spinner-3 {
width: 50px;
aspect-ratio: 1;
display: grid;
border-radius: 50%;
background:
linear-gradient(0deg ,rgb(0 0 0/50%) 30%,#0000 0 70%,rgb(0 0 0/100%) 0) 50%/8% 100%,
linear-gradient(90deg,rgb(0 0 0/25%) 30%,#0000 0 70%,rgb(0 0 0/75% ) 0) 50%/100% 8%;
background-repeat: no-repeat;
animation: s3 1s infinite steps(12);
}
.spinner-3::before,
.spinner-3::after {
content: "";
grid-area: 1/1;
border-radius: 50%;
background: inherit;
opacity: 0.915;
transform: rotate(30deg);
}
.spinner-3::after {
opacity: 0.83;
transform: rotate(60deg);
}
@keyframes s3 {
100% {transform: rotate(1turn)}
}
.spinner-4 {
width: 50px;
aspect-ratio: 1;
border-radius: 50%;
border: 8px solid #0000;
border-right-color: #ffa50097;
position: relative;
animation: s4 1s infinite linear;
}
.spinner-4:before,
.spinner-4:after {
content: "";
position: absolute;
inset: -8px;
border-radius: 50%;
border: inherit;
animation: inherit;
animation-duration: 2s;
}
.spinner-4:after {
animation-duration: 4s;
}
@keyframes s4 {
100% {transform: rotate(1turn)}
}
.spinner-5 {
width: 50px;
aspect-ratio: 1;
border-radius: 50%;
background: #514b82;
-webkit-mask: radial-gradient(circle closest-side at 50% 40%,#0000 94%, #000);
transform-origin: 50% 40%;
animation: s5 1s infinite linear;
}
@keyframes s5 {
100% {transform: rotate(1turn)}
}
.spinner-6 {
width: 50px;
aspect-ratio: 1;
display:grid;
-webkit-mask: conic-gradient(from 15deg,#0000,#000);
animation: s6 1s infinite steps(12);
}
.spinner-6,
.spinner-6:before,
.spinner-6:after{
background:
radial-gradient(closest-side at 50% 12.5%,
#f03355 96%,#0000) 50% 0/20% 80% repeat-y,
radial-gradient(closest-side at 12.5% 50%,
#f03355 96%,#0000) 0 50%/80% 20% repeat-x;
}
.spinner-6:before,
.spinner-6:after {
content: "";
grid-area: 1/1;
transform: rotate(30deg);
}
.spinner-6:after {
transform: rotate(60deg);
}
@keyframes s6 {
100% {transform:rotate(1turn)}
}
.spinner-7 {
--d:22px;
width: 4px;
height: 4px;
border-radius: 50%;
color: #25b09b;
box-shadow:
calc(1*var(--d)) calc(0*var(--d)) 0 0,
calc(0.707*var(--d)) calc(0.707*var(--d)) 0 1px,
calc(0*var(--d)) calc(1*var(--d)) 0 2px,
calc(-0.707*var(--d)) calc(0.707*var(--d)) 0 3px,
calc(-1*var(--d)) calc(0*var(--d)) 0 4px,
calc(-0.707*var(--d)) calc(-0.707*var(--d))0 5px,
calc(0*var(--d)) calc(-1*var(--d)) 0 6px;
animation: s7 1s infinite steps(8);
}
@keyframes s7 {
100% {transform: rotate(1turn)}
}
.spinner-8 {
width: 50px;
aspect-ratio: 1;
display: grid;
color: #514b82;
background:
conic-gradient(from 90deg at 3px 3px,#0000 90deg,currentColor 0)
-3px -3px/calc(50% + 1.5px) calc(50% + 1.5px);
animation: s8 2s infinite;
}
.spinner-8::before,
.spinner-8::after {
content: "";
grid-area: 1/1;
background: repeating-conic-gradient(#0000 0 35deg,currentColor 0 90deg);
-webkit-mask: radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 0);
border-radius: 50%;
}
.spinner-8::after {
margin: 20%;
}
@keyframes s8 {
100% {transform: rotate(1turn)}
}
.spinner-9 {
width: 50px;
aspect-ratio: 1;
--_c: no-repeat linear-gradient(orange 0 0) 50%;
background:
var(--_c)/100% 50%,
var(--_c)/50% 100%;
border-radius: 50%;
animation: s9 2s infinite linear;
}
@keyframes s9 {
100% {transform: rotate(1turn)}
}
.spinner-10 {
--R: 30px;
--g1: #514b82 96%, #0000;
--g2: #eeeeee 96%, #0000;
width: calc(2*var(--R));
aspect-ratio: 1;
border-radius: 50%;
display: grid;
-webkit-mask: linear-gradient(#000 0 0);
animation: s10 2s infinite linear;
}
.spinner-10::before,
.spinner-10::after{
content:"";
grid-area: 1/1;
width: 50%;
background:
radial-gradient(farthest-side,var(--g1)) calc(var(--R) + 0.866*var(--R) - var(--R)) calc(var(--R) - 0.5*var(--R) - var(--R)),
radial-gradient(farthest-side,var(--g1)) calc(var(--R) + 0.866*var(--R) - var(--R)) calc(var(--R) - 0.5*var(--R) - var(--R)),
radial-gradient(farthest-side,var(--g2)) calc(var(--R) + 0.5*var(--R) - var(--R)) calc(var(--R) - 0.866*var(--R) - var(--R)),
radial-gradient(farthest-side,var(--g1)) 0 calc(-1*var(--R)),
radial-gradient(farthest-side,var(--g2)) calc(var(--R) - 0.5*var(--R) - var(--R)) calc(var(--R) - 0.866*var(--R) - var(--R)),
radial-gradient(farthest-side,var(--g1)) calc(var(--R) - 0.866*var(--R) - var(--R)) calc(var(--R) - 0.5*var(--R) - var(--R)),
radial-gradient(farthest-side,var(--g2)) calc(-1*var(--R)) 0,
radial-gradient(farthest-side,var(--g1)) calc(var(--R) - 0.866*var(--R) - var(--R)) calc(var(--R) + 0.5*var(--R) - var(--R));
background-size: calc(2*var(--R)) calc(2*var(--R));
background-repeat :no-repeat;
}
.spinner-10::after {
transform: rotate(180deg);
transform-origin: right;
}
@keyframes s10 {
100% {transform: rotate(-1turn)}
}
/**/
body {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(250px,1fr));
grid-auto-rows: 130px;
place-items:center;
}
* {
box-sizing: border-box;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.