What problem does it solve? React components often flash loading spinners over cached data, silently swallow errors, or allow duplicate form submissions, producing confusing user experiences. This Skill provides concrete patterns and checklists for handling loading, error, empty, and button states correctly. ## Core Features & Use Cases - Loading State Patterns: Decision trees and rules for showing spinners or skeletons only when no data exists, avoiding UI flashes on refetch. - Error Handling Hierarchy: Guidance on inline errors, toasts, banners, and full error screens, with a reusable ErrorState component pattern. - Button and Form Submission Patterns: Disable triggers during async operations and surface mutation results via toast feedback. - Use Case: When building a data-driven list page with React Router and a mutation-based form, apply these patterns so users always see errors, never lose cached content to spinners, and cannot double-submit. ## Quick Start Apply the react-ui-patterns skill to review my component's loading, error, and empty states and fix any anti-patterns.