01 — Foundation

Empty states guide recovery

Absence of data is not the same as a broken interface — explain it clearly.

Empty states appear when there are no results, no messages, no items, or no data yet. Handled well, they reduce confusion and point users forward. Handled badly, they feel like broken software.

02 — Explain

What to communicate

Tell users what is missing, why, and what they can do next.

Too vague

'No data'

Clearer

'No invoices found for this date range. Try adjusting filters or create a new invoice.'

Include

  • context — what is empty and in what scope
  • guidance — filters to change, content to create, or permissions to request
  • next actions — primary button or link when there is a sensible path forward
  • reassurance when appropriate — “You have no messages yet” vs a dead end

03 — Avoid

What to avoid

Users came for clarity — not mascot philosophy.

  • vague “No data” with no recovery path
  • decorative illustrations replacing useful guidance
  • humour during critical workflows where users need certainty
  • relying only on icons or colour to convey meaning

04 — Accessibility

Accessibility and related patterns

Empty, loading, and error are different states — keep them distinct.

Do not confuse “still loading”, “no results”, and “request failed”. Messages should remain readable at zoom and work for screen readers.

See Loading States for in-progress feedback and Error States when something failed rather than returned empty results.

05 — Review

Before you approve

A short checklist for empty states in code review.

  • explains what is missing and why
  • offers a clear next step when one exists
  • distinct from loading and error states
  • readable, accessible, and appropriate to context

An empty state should help users recover — not merely announce disappointment.