
Saat membuka website, pernah nggak kamu merasa bingung karena halaman lama banget loading tanpa tanda apa pun? Nah, di sinilah peran loading spinner jadi penting. Melalui artikel ini, kamu akan belajar cara membuat loading spinner CSS yang simple, ringan, dan tetap responsif tanpa ribet.
Loading spinner CSS adalah animasi sederhana yang biasanya muncul saat website sedang memproses data. Dengan adanya spinner, user jadi tahu kalau sistem masih berjalan.
Selain itu, spinner juga membantu meningkatkan user experience. Jadi, meskipun loading agak lama, pengunjung tetap merasa “ditemani” dan tidak bingung.
Tanpa loading spinner, website sering terasa seperti “hang” atau error. Akibatnya, user bisa langsung menutup halaman.
Sebaliknya, dengan spinner:
Oleh karena itu, penggunaan loading spinner CSS sangat disarankan, terutama untuk website modern.
Sebelum mulai, pastikan kamu sudah memahami dasar HTML dan CSS. Tenang, kamu tidak perlu skill advanced.
Selain itu, siapkan:
Kemudian, pahami juga konsep dasar animasi CSS seperti @keyframes. Ini penting karena akan digunakan untuk membuat efek berputar.
Pertama, buat elemen dasar untuk spinner.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Loading Spinner Premium</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- Overlay Loading -->
<div class="loading-overlay" id="loading">
<div class="spinner-container">
<div class="spinner"></div>
<p class="loading-text">Loading...</p>
</div>
</div>
<!-- Konten Website -->
<div class="content">
<h1>Website Content</h1>
<p>Ini contoh halaman website kamu.</p>
</div>
<script>
// Simulasi loading (hapus di production kalau pakai API asli)
window.addEventListener("load", () => {
setTimeout(() => {
document.getElementById("loading").classList.add("hide");
}, 1500);
});
</script>
</body>
</html>Struktur ini sederhana, tetapi cukup untuk membuat animasi.
Selanjutnya, tambahkan style agar berbentuk lingkaran.
/* RESET */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* BODY */
body {
font-family: 'Segoe UI', sans-serif;
background: #0f172a;
color: #fff;
}
/* OVERLAY */
.loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(15, 23, 42, 0.95);
display: flex;
align-items: center;
justify-content: center;
z-index: 9999;
transition: opacity 0.4s ease, visibility 0.4s;
}
/* HIDE EFFECT */
.loading-overlay.hide {
opacity: 0;
visibility: hidden;
}
/* CONTAINER */
.spinner-container {
text-align: center;
}
/* SPINNER PREMIUM */
.spinner {
width: 60px;
height: 60px;
border-radius: 50%;
position: relative;
animation: rotate 1.2s linear infinite;
}
/* EFFECT RING */
.spinner::before,
.spinner::after {
content: "";
position: absolute;
inset: 0;
border-radius: 50%;
border: 4px solid transparent;
}
/* GRADIENT SPIN */
.spinner::before {
border-top-color: #38bdf8;
border-right-color: #6366f1;
}
/* BLUR GLOW */
.spinner::after {
border-top-color: #38bdf8;
filter: blur(6px);
opacity: 0.6;
}Di sini, kita memanfaatkan border untuk menciptakan efek visual spinner.
Agar spinner bisa berputar, tambahkan animasi berikut:
/* ANIMATION */
@keyframes rotate {
to {
transform: rotate(360deg);
}
}
/* TEXT */
.loading-text {
margin-top: 16px;
font-size: 14px;
color: #cbd5f5;
letter-spacing: 1px;
animation: fade 1.5s ease-in-out infinite;
}
/* TEXT ANIMATION */
@keyframes fade {
0%, 100% {
opacity: 0.4;
}
50% {
opacity: 1;
}
}
/* CONTENT */
.content {
padding: 40px;
text-align: center;
}
/* RESPONSIVE */
@media (max-width: 600px) {
.spinner {
width: 45px;
height: 45px;
}
.loading-text {
font-size: 12px;
}
}Dengan begitu, elemen akan terus berputar secara halus.

Sekarang, spinner sudah bisa digunakan. Meskipun sederhana, tampilannya sudah cukup modern dan ringan.
Agar spinner tetap terlihat bagus di semua perangkat, kamu perlu membuatnya responsif.
Gunakan em, rem, atau % agar ukuran menyesuaikan layar.
Selain itu, pastikan ukuran tidak terlalu besar di HP. Kamu bisa menambahkan media query jika diperlukan.
Supaya tidak monoton, kamu bisa mencoba beberapa variasi:
Dengan sedikit kreativitas, tampilan bisa jadi jauh lebih menarik.
Meskipun terlihat mudah, ada beberapa kesalahan yang sering terjadi:
Karena itu, penting untuk selalu melakukan testing.
Agar hasilnya lebih optimal, kamu bisa menerapkan beberapa tips berikut:
Dengan begitu, spinner tidak hanya berfungsi, tetapi juga enak dilihat.
Loading spinner sebaiknya digunakan saat:
Namun, jangan digunakan secara berlebihan agar tidak mengganggu user.
Pada akhirnya, cara membuat loading spinner CSS ternyata cukup sederhana dan bisa langsung kamu terapkan. Dengan kombinasi HTML dan CSS, kamu sudah bisa membuat animasi yang ringan, responsif, dan meningkatkan pengalaman pengguna.
Jadi, sekarang giliran kamu untuk mencoba dan mengembangkan versi spinner yang lebih menarik sesuai kebutuhan website kamu.
Kalau kamu ingin mengembangkan animasi loading CSS lebih lanjut, kamu bisa pelajari dokumentasi resmi CSS animation di:
Jasa Artikel SEO Friendly & Tema WordPress Premium hanya di: