Animations

Keyframes + .animate-*, .hover-* utilities and a skeleton loader. All honor prefers-reduced-motion.

Entrance (click card to replay)

<div class="animate-fade-in">Fade in</div>
<div class="animate-slide-up">Slide up</div>
<div class="animate-slide-up animate-delay-150">Slide up, delayed</div>

Loops

pulse bounce ping shake
<span class="animate-pulse">Pulse</span>
<span class="animate-bounce">Bounce</span>
<span class="animate-ping">Ping</span>
<span class="animate-shake">Shake</span>
<svg class="icon animate-spin">…</svg>

Stagger (delays)

01delay-0
02delay-150
03delay-300
04delay-500
<div class="animate-slide-up animate-delay-0">…</div>
<div class="animate-slide-up animate-delay-75">…</div>
<div class="animate-slide-up animate-delay-150">…</div>
<div class="animate-slide-up animate-delay-300">…</div>
<div class="animate-slide-up animate-delay-500">…</div>
<div class="animate-slide-up animate-delay-700">…</div>

Hover micro-interactions

<button class="btn hover-lift">Lift</button>
<button class="btn hover-grow">Grow</button>
<button class="btn hover-glow">Glow</button>

Skeleton loader

 
 
 
<div class="skeleton" style="height:1rem;width:80%">&nbsp;</div>

Reference

ClassEffect
.animate-fade-in / -fade-outopacity transitions
.animate-slide-up / -down / -left / -right0.75rem translate + fade
.animate-scale-in / -scale-outscale 0.95 ↔ 1 + fade
.animate-pulseopacity 1→.5→1, infinite
.animate-pingscale(2) + fade, infinite
.animate-bouncevertical bounce
.animate-spin360° rotate, infinite
.animate-shakehorizontal shake, single-shot
.animate-delay-{0,75,150,300,500,700}animation-delay
.animate-once / -infiniteiteration-count
.hover-lift / -grow / -glowhover micro-interactions
.skeletonshimmer loader background