Loading Animation Collection
Choose from these animated pre-loader collections. Click “Copy Code” to use in your projects.
Spinning Circle
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="spinner"> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .spinner { width: 50px; height: 50px; border: 5px solid rgba(100, 181, 246, 0.3); border-radius: 50%; border-top-color: #64b5f6; animation: spin 1s ease-in-out infinite; } @keyframes spin { to { transform: rotate(360deg); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Pulse
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="pulse"> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .pulse { width: 50px; height: 50px; background: #64ffda; border-radius: 50%; animation: pulse 1.5s ease-in-out infinite; } @keyframes pulse { 0% { transform: scale(0.8); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.7; } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Bouncing Dots
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="dots"> <div class="dot"></div> <div class="dot"></div> <div class="dot"></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .dots { display: flex; gap: 8px; } .dot { width: 15px; height: 15px; background: #29b6f6; border-radius: 50%; animation: bounce 1.5s infinite ease-in-out; } .dot:nth-child(2) { animation-delay: 0.2s; } .dot:nth-child(3) { animation-delay: 0.4s; } @keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Progress Bar
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="loader-container"> <div class="progress-loader"></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .progress-loader { width: 100px; height: 10px; background: rgba(100, 181, 246, 0.3); border-radius: 10px; overflow: hidden; position: relative; } .progress-loader::after { content: ''; position: absolute; height: 100%; width: 40%; background: #64b5f6; border-radius: 10px; animation: progress 2s infinite ease-in-out; } @keyframes progress { 0% { left: -40%; } 100% { left: 100%; } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Wave
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="wave"> <div></div><div></div><div></div><div></div><div></div> </div> </div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .wave { display: flex; gap: 5px; align-items: flex-end; height: 40px; justify-content: center; } .wave div { width: 8px; height: 30px; background: #64ffda; border-radius: 4px; animation: wave 1.2s infinite ease-in-out; } .wave div:nth-child(2) { animation-delay: 0.1s; } .wave div:nth-child(3) { animation-delay: 0.2s; } .wave div:nth-child(4) { animation-delay: 0.3s; } .wave div:nth-child(5) { animation-delay: 0.4s; } @keyframes wave { 0%, 40%, 100% { height: 20px; } 20% { height: 40px; } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Gradient Spinner
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="gradient-spinner"> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .gradient-spinner { width: 50px; height: 50px; border-radius: 50%; background: conic-gradient(transparent, #64ffda); mask: radial-gradient(farthest-side, transparent calc(100% - 5px), #fff 0); animation: spin 1.2s linear infinite; } @keyframes spin { to { transform: rotate(360deg); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Flipping Square
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="flipping-square"> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .flipping-square { width: 40px; height: 40px; background: #29b6f6; animation: flip 2s infinite ease-in-out; } @keyframes flip { 0% { transform: perspective(200px) rotateX(0) rotateY(0); } 50% { transform: perspective(200px) rotateX(180deg) rotateY(0); } 100% { transform: perspective(200px) rotateX(180deg) rotateY(180deg); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Steps Loader
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="steps-loader"> <div></div> <div></div> <div></div> <div></div> <div></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .steps-loader { display: flex; gap: 5px; } .steps-loader div { width: 10px; height: 30px; background: #64b5f6; animation: steps 1.2s infinite ease-in-out; } .steps-loader div:nth-child(2) { animation-delay: 0.1s; } .steps-loader div:nth-child(3) { animation-delay: 0.2s; } .steps-loader div:nth-child(4) { animation-delay: 0.3s; } .steps-loader div:nth-child(5) { animation-delay: 0.4s; } @keyframes steps { 0%, 40%, 100% { transform: scaleY(0.6); } 20% { transform: scaleY(1.2); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Liquid Fill
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="liquid-container"> <div class="liquid-fill"></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .liquid-container { width: 100%; height: 100%; position: relative; overflow: hidden; border-radius: 50%; background: rgba(41, 182, 246, 0.2); } .liquid-fill { position: absolute; bottom: 0; width: 100%; background: linear-gradient(to top, #29b6f6, #64ffda); animation: liquid 3s infinite ease-in-out; border-radius: 50% 50% 0 0; } @keyframes liquid { 0%, 100% { height: 20%; } 50% { height: 80%; } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Pulsing Circles
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="pulsing-circles"> <div></div> <div></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .pulsing-circles { position: relative; width: 60px; height: 60px; display: flex; justify-content: center; align-items: center; aspect-ratio: 1 / 1; } .pulsing-circles div { position: absolute; border: 3px solid #64ffda; border-radius: 50%; animation: pulse-ring 1.5s infinite ease-in-out; } .pulsing-circles div:nth-child(2) { animation-delay: 0.5s; } @keyframes pulse-ring { 0% { width: 0; height: 0; opacity: 1; } 100% { width: 100%; height: 100%; opacity: 0; } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Rotating Dots
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="rotating-dots"> <div></div> <div></div> <div></div> <div></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .rotating-dots { position: relative; width: 50px; height: 50px; animation: rotate-dots 2s infinite linear; } .rotating-dots div { position: absolute; width: 10px; height: 10px; background: #29b6f6; border-radius: 50%; } .rotating-dots div:nth-child(1) { top: 0; left: 20px; } .rotating-dots div:nth-child(2) { top: 20px; right: 0; } .rotating-dots div:nth-child(3) { bottom: 0; left: 20px; } .rotating-dots div:nth-child(4) { top: 20px; left: 0; } @keyframes rotate-dots { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Swapping Squares
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="swapping-squares"> <div></div> <div></div> <div></div> <div></div> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .swapping-squares { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 60px; height: 60px; } .swapping-squares div { width: 25px; height: 25px; background-color: #64ffda; animation: swap 2s infinite ease-in-out; } .swapping-squares div:nth-child(1) { animation-delay: 0s; } .swapping-squares div:nth-child(2) { animation-delay: 1s; } .swapping-squares div:nth-child(3) { animation-delay: 1s; } .swapping-squares div:nth-child(4) { animation-delay: 0s; } @keyframes swap { 0%, 100% { opacity: 1; } 50% { opacity: 0.3; } } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>
Swapping Squares
<!-- Put this at the very top of your theme’s header.php file just after the opening "body" tag --> <div id="preloader"> <div class="progressbar"> </div></div> <!-- Paste the CSS inside Appearance → Customize → Additional CSS --> #preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: #1e2b38; display: flex; justify-content: center; align-items: center; z-index: 9999; } .progressbar { width: 120px; height: 22px; border-radius: 20px; color: #514b82; border: 2px solid; position: relative; } .progressbar::before { content: ""; position: absolute; margin: 2px; inset: 0 100% 0 0; border-radius: inherit; background: currentColor; animation: l6 2s infinite; } @keyframes l6 { 100% {inset:0} } <!-- Add this snippet to Appearance → Theme File Editor → footer.php just before the closing "body" tag --> <script> window.addEventListener("load", function() { var preloader = document.getElementById("preloader"); if (preloader) { preloader.style.display = "none"; } }); </script>