Content Loading
Show the shape of content before it's fully loaded.
Progressive Loading
Display placeholders as content streams in.
Better UX
Reduce perceived wait time with visual feedback.
When not to use
- When content loads quickly (under 300ms)—no loading state needed
- For error states—show error messages
- For empty states—use empty-state component
- When a spinner is more appropriate for indeterminate waits