پیشنمایش زنده
کد HTML
<div class="loader"></div>
کد CSS
.loader {
width: 64px;
height: 64px;
border-radius: 50%;
position: relative;
background: conic-gradient(from 0deg, #6366f1, #a855f7, #ec4899, #6366f1);
mask: radial-gradient(farthest-side, transparent 60%, black 61%);
-webkit-mask: radial-gradient(farthest-side, transparent 60%, black 61%);
animation: spin 1.2s linear infinite;
}
.loader::before {
content: "";
position: absolute;
inset: 8px;
border-radius: 50%;
background: radial-gradient(
circle at 30% 30%,
rgba(255, 255, 255, 0.8),
transparent 40%
),
radial-gradient(
circle at 70% 70%,
rgba(255, 255, 255, 0.2),
transparent 60%
),
linear-gradient(135deg, #6366f1, #9333ea);
animation: pulse 1.6s ease-in-out infinite;
}
.loader::after {
content: "";
position: absolute;
width: 10px;
height: 10px;
border-radius: 50%;
background: white;
top: 0;
left: 50%;
transform: translateX(-50%);
box-shadow: 0 0 12px rgba(255, 255, 255, 0.9);
animation: orbit 1.2s linear infinite;
}
@media (prefers-color-scheme: dark) {
.loader {
background: conic-gradient(from 0deg, #4f46e5, #9333ea, #ec4899, #4f46e5);
}
.loader::before {
background: radial-gradient(
circle at 30% 30%,
rgba(255, 255, 255, 0.4),
transparent 40%
),
radial-gradient(
circle at 70% 70%,
rgba(255, 255, 255, 0.1),
transparent 60%
),
linear-gradient(135deg, #4f46e5, #9333ea);
}
}
@keyframes spin {
to {
transform: rotate(360deg);
}
}
@keyframes orbit {
to {
transform: rotate(360deg) translateX(32px) rotate(-360deg);
}
}
@keyframes pulse {
0%,
100% {
transform: scale(1);
filter: brightness(1);
}
50% {
transform: scale(1.08);
filter: brightness(1.2);
}
}