Foundations

Feedback & System Response

How interfaces communicate system state, confirm user actions, and keep users informed about what's happening.

#feedback#system status#loading#confirmation#error#success#toast

What is it?

Feedback in UX is the system's response to user actions — confirmation that the action was received, its current status, and its outcome. Good feedback is immediate, appropriate in scale, and specific. It answers the user's unspoken question: "Did that work?"

Why it matters

Without feedback, users don't know if their actions succeeded, failed, or are still processing. This causes double-submissions, abandonment, and anxiety. Nielsen identified "Visibility of System Status" as the #1 usability heuristic for exactly this reason. Feedback is the difference between a confident user and a frustrated one.

Best Practices

  • Respond to every action within 100ms — even if the full action takes longer. Acknowledge immediately, then update.
  • Loading states must appear for any action taking longer than 1 second. Spinners, skeletons, or progress bars — pick the right one.
  • Success messages should be specific: "Email sent to sarah@company.com" not just "Success."
  • Error messages must name the problem and offer a solution — not just "Something went wrong."
  • Use inline feedback for forms (field-level validation on blur, not on submit).
  • Distinguish between different feedback types: informational, success, warning, error. Each should be visually distinct.
  • For irreversible actions, require confirmation. For reversible actions, allow undo instead.
  • Position feedback close to the action that triggered it — not in a distant corner of the screen.
  • Skeleton screens reduce perceived load time better than spinners for content-heavy pages.
  • Transient feedback (toasts, snackbars) should auto-dismiss after 4–6 seconds. Persistent feedback needs user dismissal.

Common Mistakes

  • No loading indicator for slow operations — users click again thinking nothing happened.
  • Generic error messages: "An error occurred." — tells the user nothing useful.
  • Form validation that only fires on submit — users complete the whole form before finding out field 1 is wrong.
  • Success messages that disappear too quickly (< 2 seconds) — users miss them.
  • Feedback positioned in a corner where users aren't looking.
  • Using the same visual treatment for success and error states.
  • Feedback that confirms the system action ("Profile updated") but not the user's goal ("Your changes are saved").

Checklist

Research & Theory

Nielsen's Heuristic #1: Visibility of System Status

The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time.

Why it's relevant

This is the #1 heuristic. Every interaction without feedback is a usability failure.

Response Time Guidelines (Miller, Nielsen)

0.1s: Feels instantaneous. 1s: Flow maintained but delay noticed. 10s: User's attention will wander.

Why it's relevant

Design feedback that maintains the sense of flow. Anything beyond 1s needs a loading indicator.

Doherty Threshold

Productivity increases dramatically when a computer and its users interact at a pace of less than 400ms. Beyond 400ms, user flow breaks.

Why it's relevant

400ms is the practical ceiling for any interaction that should feel immediate. Optimize aggressively toward this target.

Real-World Examples

Linear

Actions are optimistically updated instantly — the UI changes before the server confirms. If the server fails, it rolls back. The result is a product that feels impossibly fast.

Stripe

Form errors are field-specific and solution-oriented: "Your card number is incomplete." Not "Error." Not "Invalid input."

Superhuman

Every action has a keyboard confirmation and a toast. Send an email — toast confirms. Snooze — toast shows when it'll return with undo option.