45 keyframes across 9 families, every
one gated behind @media (prefers-reduced-motion: no-preference).
Hover any card to replay. Click a card to copy the class.
Apply any class from the gallery above and it works:
<div class="bounce">Bounces once over 1 s.</div>
<div class="spinLeft">Spins forever.</div>
<div class="fadeIn">Fades in over 1 s and stays visible.</div>
Every animation class ships with sensible defaults — 1 s duration,
ease-in-out timing, both fill mode, and 1 iteration for
one-shots, infinite for the continuous loops (pulse, heartbeat,
spinLeft, spinRight, chameleonbackground, chameleontext).
Single declaration, WCAG 2.3.3 compliant — every keyframe sits inside
@media (prefers-reduced-motion: no-preference), so a user who has set
"reduce motion" at the OS level sees no motion at all.