Use CSS loaders for 200ms-2s waits — form submits, page transitions, small async loads. For longer waits (>2s), show progress explicitly rather than an indeterminate spinner. Use skeleton screens for content that has predictable shape. Alternative: loading.io has more variations but ships SVG; CSS loaders ship zero bytes.
Last updated: 2026-04-23