پیشنمایش زنده
کد HTML
<div class="loader-container">
<div class="liquid-metal-wrapper">
<div class="main-orb"></div>
<div class="satellite-orb"></div>
<div class="satellite-orb"></div>
<div class="satellite-orb"></div>
<div class="satellite-orb"></div>
</div>
</div>
کد CSS
.loader-container {
width: 300px;
height: 300px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
background: #000000;
border: 5px solid rgb(255, 255, 255);
border-radius: 50%;
overflow: hidden;
filter: contrast(30);
}
.liquid-metal-wrapper {
position: absolute;
width: 100%;
height: 100%;
filter: blur(15px);
animation: rotate-bg 25s linear infinite;
}
.liquid-metal-wrapper::before {
content: "";
position: absolute;
width: 200%;
height: 200%;
top: -50%;
left: -50%;
background: radial-gradient(circle, #8e2de2, transparent 50%);
animation: rotate-bg 30s linear infinite reverse;
}
.main-orb {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 120px;
margin-top: -60px;
margin-left: -60px;
background: radial-gradient(circle at 30% 30%, #f0f0f0, #a0a0a0);
border-radius: 50%;
animation: pulse 4s ease-in-out infinite;
}
.satellite-orb {
position: absolute;
top: 50%;
left: 50%;
width: 60px;
height: 60px;
margin-top: -30px;
margin-left: -30px;
border-radius: 50%;
animation-iteration-count: infinite;
animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
}
.loader-text {
font-family: "Exo 2", sans-serif;
font-size: 2em;
color: #1a1a1a;
z-index: 10;
letter-spacing: 2px;
opacity: 0;
animation: reveal-text 4s ease-in-out infinite;
}
@keyframes pulse {
0%,
100% {
transform: scale(1);
}
50% {
transform: scale(1.15);
}
}
@keyframes rotate-bg {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes flow-1 {
0%,
100% {
transform: rotate(0deg) translateX(150px) scale(0.5);
}
50% {
transform: rotate(180deg) translateX(0) scale(1);
}
}
@keyframes flow-2 {
0%,
100% {
transform: rotate(0deg) translateY(150px) scale(0.6);
}
50% {
transform: rotate(180deg) translateY(0) scale(1);
}
}
@keyframes flow-3 {
0%,
100% {
transform: rotate(0deg) translateX(-150px) scale(0.7);
}
50% {
transform: rotate(180deg) translateX(0) scale(1);
}
}
@keyframes reveal-text {
0%,
40%,
90%,
100% {
opacity: 0;
}
50%,
70% {
opacity: 1;
}
}
.satellite-orb:nth-child(1) {
animation-name: flow-1;
animation-duration: 4s;
background: #00c6ff;
}
.satellite-orb:nth-child(2) {
animation-name: flow-2;
animation-duration: 4s;
animation-delay: -1s;
background: #f80759;
}
.satellite-orb:nth-child(3) {
animation-name: flow-3;
animation-duration: 4s;
animation-delay: -2s;
background: #00ff00;
}
.satellite-orb:nth-child(4) {
animation-name: flow-1;
animation-duration: 4s;
animation-delay: -3s;
background: #ffff00;
}