The parts that report state, every one of them composed from the five tones (docs/feedback.md).
One palette per tone, five in all. Every status surface below is derived from this table.
The kind that stays on the page. Use it for a state worth re-reading; the colour goes on the frame and the body text stays grey.
An alert that walks away. Use it to confirm what just happened, and never to carry information worth re-reading.
Skeleton when the incoming shape is known, which is the default. A spinner only when it genuinely is not.
A first-run empty carries one action that ends the state. A filtered empty carries none, because the way out is already on screen.
One per loading unit. Suspense handles the wait, an error state with a retry handles the failure, and a broken part cannot take the page down with it.