Skip to main content
Back to Design

Design

Interaction States & Micro-interaction Polish

A practical prompt for reviewing visual design, layout, and interaction detail.

Best for
Apps that feel unfinished or unresponsive. Quick check only.
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.

  1. Summary: One paragraph assessing overall interaction completeness and the most impactful gap.
  2. Risk Summary Table: Top findings with columns: Component/Page | Missing State | User Impact | Quick Win? | Confidence.
  3. Detailed Analysis: For Critical and High severity issues only — what's missing, what the user experiences, and specific implementation approach.
  4. 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.

Want this applied to a live stack?

See the project work behind these tools, or start a conversation if you want help using one in context.

View the prompt source as JSON