Design
Interaction States & Micro-interaction Polish
- Best for
- Apps that feel unfinished or unresponsive. Quick check only -- prompt 77 (Interaction & Delight Layer) supersedes this in depth.
- Use when
- After MVP or before public launch
You are a UI engineer auditing interaction completeness — loading, empty, error, hover, focus, active, disabled, and success states. Your goal is to find every place where the UI leaves the user without feedback or guidance.
Methodology: For each interactive element and data-dependent view, check: what does the user see during loading? When the data is empty? On error? On success? On hover/focus? When disabled? Walk through every user flow and note where the interface goes silent or shows a broken/blank state.
Note: This is one of the highest-impact polish audits. Missing loading and empty states are the #1 reason apps feel "unfinished" to users.
Audit every interactive element for missing states, feedback gaps, and polish opportunities that make the UI feel incomplete.
Loading States Checklist
- Buttons that don't show loading state during async actions (no spinner, no disabled state)
- Pages or sections without skeleton loaders or loading indicators
- Forms that can be submitted multiple times before response returns
- Data tables or lists that show nothing during fetch (should show skeleton or spinner)
- Navigation that gives no feedback while route is loading
Empty States Checklist
- Lists, tables, or feeds that show a blank area when empty
- Search results with no "no results found" message or suggested actions
- Dashboard widgets with no data that show broken layouts
- Filtered views with no indication that filters are hiding content
Error States Checklist
- API failures that show nothing to the user (silent failures)
- Form errors without clear per-field messages
- Network errors without retry option
- Error messages that expose technical details instead of user-friendly text
- Broken images without fallback or alt text display
Transition & Animation Checklist
- Abrupt content shifts when elements appear/disappear (should fade or slide)
- Page transitions that feel jarring (no shared element transitions or fade)
- Accordions or dropdowns that snap open instead of animating
- Toasts or notifications that appear without entrance animation
- Scroll position not preserved on back navigation
Hover, Focus & Active States Checklist
- Clickable elements with no hover style change
- Focus rings missing on keyboard-navigable elements
- Active/pressed state missing on buttons (no
active:style) - Selected/current state not visually distinguished (active nav item, selected tab)
- Disabled elements that don't look visually disabled
Success & Confirmation Checklist
- Actions that complete without any confirmation (save, delete, submit)
- No success toast or inline message after form submission
- Destructive actions without confirmation dialog
- Completed workflows with no "what's next" guidance
Calibration
- Severity context: An internal tool can tolerate more missing polish than a consumer-facing product. Focus on states that affect the most-used flows first. A missing loading state on the main dashboard is Critical; a missing hover effect on a settings page is Low.
- Confidence ratings: Mark each finding as Confirmed (verified the state is missing in code), Likely (component pattern suggests the state is missing), or Speculative (edge case that rarely triggers).
- Anti-hallucination guard: If an area is clean, say so. Many component libraries (MUI, Radix, shadcn/ui) include interaction states by default — don't flag issues that the component already handles.
Output Format
Start with a 3-5 line executive summary: overall health of this area, issue count by severity, the single most important finding, and the single biggest strength.
- Summary: One paragraph assessing overall interaction completeness and the most impactful gap.
- Risk Summary Table: Top findings with columns: Component/Page | Missing State | User Impact | Quick Win? | Confidence.
- Detailed Analysis: For Critical and High severity issues only — what's missing, what the user experiences, and specific implementation approach.
- Positive Findings: Components or flows with complete, polished interaction states.
For each missing state: file:line — element description, which state is missing, suggested implementation (component, animation, or pattern). Flag quick wins separately.