← ClaudeAtlas

component-stateslisted

State matrix for interactive UI. Use when building or reviewing buttons, links, inputs, tabs, toggles, menus, cards, or controls that need hover, focus, active, disabled, loading, selected, error, keyboard, or ARIA states.
KyaniteLabs/tastecheck · ★ 8 · Web & Frontend · score 71
Install: claude install-skill KyaniteLabs/tastecheck
# Component States An interactive control is a lifecycle, not a resting style. Map applicable states to semantics, visible treatment, and recovery. ## Decision order and evidence 1. Name role, interaction model, owner, and applicable states. 2. Give each state ARIA/DOM mapping, visible non-color treatment, trigger, and recovery. 3. Test keyboard, focus-visible, contrast, reduced motion, and async completion. Report one evidence row per state; `n/a` needs a subject-absence reason. Hand field validation to `form-ux`, emptiness to `empty-states`, and missing tokens back as gaps, never fallbacks. ## Async/destructive controls Name one semantic owner; visual states only present its lifecycle. | State / event | Guard and observable contract | |---|---| | `ready` / invoke | Click, Enter, Space, and script use one route; accepted work creates a request key. | | `confirming` | Use only for irreversible/broad/cascading work; name consequence, move focus in, restore invoker on cancel. | | `submitting` | Create key before dispatch; reject duplicates; expose disabled/busy and working label. | | matching completion | Only matching key settles work; stale results cannot clear busy, alter target, or move focus. | | success / failure | Record data first; confirm locally and choose focus, or retain context with nearby error/retry/cancel. | Test real and stale/failed completion. If success empties a region, hand it to `empty-states`. ## State matrix Account for these states where appl