Expertise · Interface and interaction

Design enough states for all interactive elements

A non-responsive interface is not a beautiful interface; it is an interface that causes customers to abandon it midway.

Quick summary

Each interactive element needs to have seven states: default, hover, focused, processing, success, error, and disabled. An element is only considered complete when all states are present, not just when it looks good with no one using it. Lack of feedback causes customers to click multiple times, lose trust, and leave without explaining why.

Quick comparison
You should choose this direction when
  • all buttons, forms, and selections need instant feedback
  • Actions expected to take over 10 seconds need to show progress or percentage.
  • need clear inactive status with reasons when actions are unavailable
Not needed when.
  • only design the default state, ignoring hover, focus, loading, error, and disabled states
  • General error report that does not specify where the mistakes are and how to fix them.
Quick glance
Commonly used industries
e-commerceSaaSFinance

Sinh Vũ often asks clients a question when reviewing designs: "If customers press this button and nothing happens for two seconds, what will they do?" The answer is almost always: press it again. And that is when the problem begins, duplicate submissions, customers losing faith in the system. State and feedback are not the final details of completion. They are the foundation of a functional interface.

The seven mandatory states

Each interactive element, whether a button, input field, dropdown menu, or link, needs to have all seven states listed below. Missing any state is a deficiency, not just "acceptable".

  • Default: the default state when there is no interaction.
  • Hover: When the customer hovers over, the interface must indicate that this element is clickable.
  • Focusing on the focal point: Customers use the keyboard to navigate, requiring clear borders or indicators to know where the cursor is.
  • Loading: After clicking, the system is working; a clear indicator is needed so that customers do not click again.
  • Success: completed actions, confirmed by a checkmark, notification, or appropriate screen transition.
  • Error: something is wrong; you need to point out where the mistake is and what the client needs to do to fix it.
  • Disabled: actions that are not available should be clearly indicated and should include a brief reason.

Three timeframes that customers perceive.

Nielsen Norman Group has identified three time thresholds at which the human brain processes differently. Sinh Vũ uses these three benchmarks to determine the type of feedback needed in design.

  • Under 0.1 seconds: Customers feel an instant response, like pressing a physical button. A small color change or a subtle press effect is sufficient.
  • Under 1 second: Customers notice a delay but their thought process remains intact. A small spinning icon or a button state changing to "sending" is appropriate.
  • Over 10 seconds: Customers lose focus and begin to doubt whether the system is running. A progress bar or percentage completion indicator is needed to reassure customers while they wait.

The system must always inform customers about what is happening, through appropriate feedback in a timely manner.

Nielsen Norman Group, Visibility of System Status (Heuristic #1)

Common mistakes when delivering

The most common loss occurs not during design, but when transferring files from design to programming. When the file only has a beautiful screen during rest, the programmer has to decide the remaining states on their own. The result is often inconsistent with brand identity.

  • The button does not respond after being pressed, causing the customer to press again and submit a duplicate order.
  • The deliverable file only has the default state, lacking hover, focus, loading, error, and disabled states.
  • Generic error messages like "An error has occurred," without specifying where the error is and how to fix it.
  • Use an indefinite loading spinner for long actions, causing customers to be unaware of how much longer it will take and think the system is frozen.
Loading spinner versus progress bar: A loading spinner is suitable when the operation completes in a few seconds and time cannot be estimated. A progress bar or percentage indicator is necessary when the operation lasts over 10 seconds as it informs the user that the system is running and how much longer it will take, rather than leaving them guessing. Using a spinner for long operations is the wrong choice, not a simpler option.

The viewpoint of Sinh Vũ

Timely feedback is not just a technical issue. It is how the brand shows respect to customers: they always know where they stand, what just happened, and what the next step is. A silent interface after customer interaction is an interface that does not respect the customer's time.

Sinh Vũ specifies all seven states in the deliverable file for every project, without leaving it to the developer's interpretation. You should request this as a criterion for acceptance, not as an additional requirement. A missing state is not an incomplete element: it is an element that has not been fully designed.

The tool brings back.

Decision checklist

Topic: Status and feedback when customers interact. Sinh Vũ guide, sinhvu.com

0 more than 7 items

Select each item you find appropriate, then print or save as PDF to take with you.

Sign indicating that you should take action
Questions to answer before deciding

If you have marked most of the signs above, this is the time to discuss in more detail. Sinh Vũ can help you review and propose a direction.

References

Nielsen Norman Group, Visibility of System Status (Usability Heuristic #1). Nielsen Norman Group, Response Times: The 3 Important Limits. Sinh Vũ's practical experience through design and operation projects in digital branding.

Frequently asked questions

If the website loads quickly, is it necessary to design a loading state?

Yes. Even if the server responds quickly, each customer’s connection varies. More importantly, designing for the loading state helps developers know how to handle slow networks, rather than leaving it blank and handling it in a way that is inconsistent with the brand.

Is a simple error message like 'An error has occurred, please try again' sufficient?

Not enough. A good error message should help customers understand where they went wrong and how to fix it specifically. Generic errors force customers to guess, often leading to frustration or the need to contact support, both of which incur costs for the business.

Does the disabled status need an explanation?

You should have it, if the activation conditions are not clear from the context. A button that is unclear without reason leaves clients unsure of what to do next. A short note like 'Please fill out all information to continue' is enough to help clients correct it without needing to ask.

← Back to Digital experience