A comprehensive guide to the loading, error, and empty states that make or break React UIs. The core insight is simple but constantly violated: only show loading spinners when you have no data, otherwise you get those annoying flashes on refetch. It walks through the full decision tree for each state, covers the error handling hierarchy from inline validation to full error screens, and hammers home the critical rule of always disabling buttons during async operations. The patterns are opinionated in a good way, with clear examples of what's wrong and what's right. If you've ever shipped a form that could be double-submitted or swallowed an error silently, this will fix your habits.
npx skills add https://github.com/davila7/claude-code-templates --skill react-ui-patterns