Stylish CSS Spinner Effects: Lightweight, Pure CSS Loaders for Modern Web Design

← Prev

Below are three distinct and stylish CSS spinner effects you can use instead of a traditional GIF. Each has its own visual flair.

1) ⚫ Bouncing Dots Loader

It shows three dots that bounce with staggered animation delays. Its great for minimalistic designs.

<style>
    .bouncing-loader {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 10px;
    }

    .bouncing-loader > div {
      width: 12px;
      height: 12px;
      background: #000;
      border-radius: 50%;
      animation: bounce 0.6s infinite alternate;
    }

    .bouncing-loader > div:nth-child(2) {
      animation-delay: 0.2s;
    }

    .bouncing-loader > div:nth-child(3) {
      animation-delay: 0.4s;
    }

    @keyframes bounce {
      to {
        transform: translateY(-15px);
        opacity: 0.7;
      }
    }
</style>
<body>
  <div class="bouncing-loader">
    <div></div>
    <div></div>
    <div></div>
  </div>
</body>
Try it

@keyframes bounce defines the animation steps. It only specifies the to state, meaning it animates from the default (no transform) to translateY(-15px) and opacity: 0.7.

animation property

bounce: refers to the keyframe name.
0.6s: duration of each bounce.
infinite: it loops forever.
alternate: reverses direction each cycle (up then down).

Staggered delays (animation-delay) on each dot create a wave-like bounce.

2) 💡 Fancy Glowing Spinner

Its a circular spinner with a glowing blue effect. It uses box-shadow and a rotating animation.

<style>
    .glow-spinner {
      width: 40px;
      height: 40px;
      border: 4px solid transparent;
      border-top: 4px solid #00f;
      border-radius: 50%;
      animation: glowSpin 1s linear infinite;
      box-shadow: 0 0 10px #00f;
    }

    @keyframes glowSpin {
      to {
        transform: rotate(360deg);
      }
    }
</style>
<body>
  <div class="glow-spinner"></div>
</body>
Try it

@keyframes glowSpin rotates the spinner from its default position to 360 degrees.

animation property

glowSpin: keyframe name.
1s: one full rotation per second.
linear: constant speed.
infinite: loops endlessly.

The box-shadow adds a glowing effect, and the border-top color creates the visual cue for rotation.

3) ◼️ Custom Shape: Twisting Square Loader

A square that rotates and scales for a dynamic twist effect. It uses a unique shape compared to typical circular spinners.

<style>
    .square-spinner {
        width: 30px;
        height: 30px;
        background: #000;
        animation: twist 1.2s ease-in-out infinite;
    }

    @keyframes twist {
        0% { transform: rotate(0deg) scale(1); }
        50% { transform: rotate(180deg) scale(1.2); }
        100% { transform: rotate(360deg) scale(1); }
    }
</style>
<body>
  <div class="square-spinner"></div>
</body>
Try it

@keyframes twist defines three stages:

Start at 0° rotation and normal size.
Midway at 180° and scaled up.
End at 360° and back to original size.

animation property

twist: keyframe name.
1.2s: duration of one full twist.
ease-in-out: smooth acceleration and deceleration.
infinite: keeps looping.

← Previous