Rotating Spinner
The most recognizable loading indicator. A circle with a single colored top border, rotating forever. The rest of the border stays light so the user sees the spin clearly.
<div class="spinner"></div>
Bouncing Dots
Three dots that fade and scale in sequence — a softer, more "thinking" loader. Each dot uses the same keyframe but gets a different animation-delay.
<div class="dots"> <span></span> <span></span> <span></span> </div>
Bar Wave
An audio-equalizer style loader — five bars that grow and shrink in a wave. transform-origin: bottom anchors the scale so they grow upward.
<div class="bars"> <span></span><span></span><span></span> <span></span><span></span> </div>
Fade-In on Load
An element that rises slightly as it fades in. Use this for hero text, cards, and anything you want to feel "placed" instead of suddenly visible.
<div class="fade-card">I fade and rise into place.</div>
Slide-In from Left
Same structure as fade-in, but uses translateX for a horizontal entrance. The spring easing (cubic-bezier) gives it a tiny overshoot.
<div class="slide-card">I slide in from the left.</div>
Staggered List
A list where each item appears slightly after the previous one — much more elegant than a single block flash. Uses :nth-child() + incremental animation-delay.
- First item appears
- Second comes next
- Third follows
- Fourth arrives
- Fifth lands last
<ul class="stagger-list"> <li>First item appears</li> <li>Second comes next</li> <li>Third follows</li> <li>Fourth arrives</li> <li>Fifth lands last</li> </ul>
Gradient Flow
A multi-color gradient clipped to text, with its background-position animating in a loop. Great for hero headlines and creating a sense of movement without distracting motion.
Make it flow.
<h2 class="gradient-text">Make it flow.</h2>
Floating Object
An element that gently levitates in a loop, with a ground shadow that breathes in the opposite direction. Two separate animations keep the object and its shadow in sync.
<div class="float-wrap"> <div class="float-obj"></div> </div>
Neon Glow
Stacked text-shadows layered with increasing blur radii create a neon-sign effect. An alternate direction keyframe makes the glow pulse.
<div class="neon">Glow up.</div>
Typewriter
Text that "types" itself in, with a blinking caret. Uses the steps() timing function so the width grows one character at a time rather than smoothly.
<div class="typer">Hello, I'm typing...</div>
Marquee
An infinite horizontal scroll — no JavaScript. The trick is to duplicate the content inside the track so translating -50% seams perfectly. Edge fade comes from a mask-image gradient.
<div class="marquee">
<div class="marquee-track">
<span>DESIGN</span>
<span>BUILD</span>
<span>SHIP</span>
<!-- IMPORTANT: duplicate the same content
so translating -50% loops seamlessly -->
<span>DESIGN</span>
<span>BUILD</span>
<span>SHIP</span>
</div>
</div>
Stroke Draw (SVG Signature)
An SVG path that draws itself as if being written. The trick is stroke-dasharray + stroke-dashoffset — animate the offset from the path length down to zero and it appears to draw in.
<svg class="signature" viewBox="0 0 240 110">
<path d="M 20 70 C 30 20, 55 10, 70 60
S 95 90, 110 60
Q 125 25, 140 55
T 170 65 L 210 30"/>
</svg>