Skip to content
← Blog

Best practice

Empty states that help people start

An empty state is often the first screen people see. How to design one for first use, no results and cleared lists, with clear words and one action.

· 6 min read · Musab Alfawal

A projects panel with no projects yet, a one-line explanation of what a project is for, and a single Create a project button.

An empty state is what a screen shows when there is nothing to show: a new account with no projects, a search with no results, an inbox that has just been cleared. It is often the first screen someone sees in a new product, and too often all it says is “No data”.

Empty screens tend to be designed last, because mock-ups are drawn full of tidy sample content. The fix is to design them on purpose, with a few words that explain the screen and a button that fills it.

What an empty state is for

Here is a first-use empty state doing its job: one button, a short form, and the first project in the list.

A first-use empty state has one task: get the first item onto the screen. It explains what will appear, offers the action that makes it appear, and then gets out of the way. Once there is a row in the list, the explanation has done its work and the screen becomes the list it was meant to be.

Keep the action inside the empty state, next to the explanation. A small “New” button in the corner of an empty table asks people to find the way in on their own, at the moment they know least about the product. After they create something, bring them back to the list with the new item in it, so they can see the result of what they did.

The same screen, fixed

Here is a projects page for a brand-new account, then the same page with an empty state designed for first use.

Before

A projects page with a search field, a Filter button, table headings for Name, Owner and Updated, and the words “No data” in pale grey, marked with three numbered problems.
  1. Search and a filter, with nothing to search or filter yet.
  2. Column headings for data that doesn’t exist.
  3. “No data” says neither what belongs here nor how to add it.

After

The same page with the heading “Create your first project”, a sentence about what a project is for, a Create a project button and an Import from a spreadsheet link, marked with three numbered fixes.
  1. A heading and one sentence that say what a project is for.
  2. One primary action that fills the page.
  3. A second route for people whose projects already live in a spreadsheet.

Three kinds of empty state

The word “empty” covers at least three situations, and each needs different words.

First use is when nothing has been created yet. This is your chance to explain the screen: what will appear here, why it is useful, and how to add the first item. Where it helps, offer a starting point, such as a template, an example to copy, or an import from the tool people use today.

No results means the person searched or filtered, and nothing matched. Tell them plainly that the search worked and found nothing. Repeat what they searched for, show any filters that are switched on, and offer a way to widen the search: check the spelling, clear a filter, or search everywhere instead of one folder.

A cleared state comes after the person has finished something: every task done, every message read. Confirm it plainly and say what happens next, for example “New messages will appear here.” This isn’t the moment to push them into creating more.

A list that failed to load is a fourth case, and it belongs in an error message. Showing “No projects yet” when the server didn’t answer tells people their work has disappeared.

How to design an empty state

Start with the words. The heading should name what belongs on this screen, as in “No projects yet”. Follow it with one sentence on why that thing is useful. If you need a second sentence, the screen is probably trying to teach too much.

Then choose one action. Pick the one that most often fills the screen and make it the primary button, named with a verb and the thing it makes: “Create a project”, “Add a customer”, “Upload a file”. A second, quieter route is fine when a real group of people needs it, such as importing existing data. Three or four buttons of equal weight leave people to work out which one matters.

An illustration is optional. If you use one, keep it small enough that the heading and the button stay in view on a laptop screen. The words and the action do the work, and a picture with no words leaves people guessing what the screen is for.

Finally, check the state in context. An empty panel inside a busy dashboard needs fewer words than an empty page on its own, and an empty state on a phone needs its action within easy reach.

Mistakes, and what to do instead

  1. A Projects panel that is empty apart from the words “No data” in grey.

    Don’t

    “No data.”

    The same panel with the heading “No projects yet” and the line “A project keeps the files, tasks and people for one piece of work together.”

    Do

    A heading that says what will appear, like “No projects yet”, and one line on what a project is for.

  2. A Customers page with a table headed Name, Email and Last order, and no rows or words beneath the headings.

    Don’t

    An empty table with column headings and nothing else.

    The same page with no table, just the heading “No customers yet”, one line on what customers are for and an Add a customer button.

    Do

    Show the empty state in place of the table until there is a first row.

  3. A Files panel saying “No files yet”, with the only way to add one a small plus button in the top-right corner.

    Don’t

    The only way to add something is a small “+” in a corner.

    The same panel with an Upload a file button directly under the explanation, and no plus button in the corner.

    Do

    Put the primary action inside the empty state, next to the explanation.

  4. A search box containing “brochure” above a blank area that says only “No results.”

    Don’t

    “No results.” and an otherwise blank page.

    The same search with its Status: Archived filter shown under the box, a heading saying no archived projects match “brochure”, a hint to check the spelling and a Search all projects button.

    Do

    Repeat the search, show the active filters and offer a way to widen it.

  5. A “No projects yet” empty state with four identical outlined buttons: Create a project, Use a template, Import a file and Invite your team.

    Don’t

    Three or four buttons of equal weight.

    The same empty state with one black Create a project button and an underlined Import from a spreadsheet link below it.

    Do

    One primary action, and at most one quieter second route.

  6. A Projects panel showing “No projects yet” and “You haven’t created any projects.” with a Create a project button, though the list simply failed to load.

    Don’t

    “No projects yet” when the list failed to load.

    The same panel saying “Your projects couldn’t load” and “Nothing has been deleted. Check your connection, then try again.” with a Try again button.

    Do

    An error message that says the list couldn’t load, with a way to try again.

Design your empty states in an afternoon

  1. 1. List every screen that can be empty

    Lists, tables, dashboards, search results, inboxes and folders. Note which of the three kinds each one can be.

  2. 2. Write the words first

    For each one, write a heading that says what will appear and one sentence on why it is useful.

  3. 3. Choose one action

    Pick the action that most often fills the screen and make it the primary button. Add a second only if many people need it.

  4. 4. Walk through as a new user

    Create a fresh account and use the product before adding anything. Then search for something that doesn’t exist, and clear a list.

Accessible empty states

An empty state is ordinary content, so it needs a real heading and a real button, not text drawn into an image. When a search or filter updates the page without loading a new one, announce the result, including when there are none, so screen reader users know the search has finished. WCAG SC 4.1.3 Status Messages covers this, and a count of search results is one of its examples.

Questions people ask

Should an empty state include an illustration?

It can, if it is small and doesn’t push the action out of view. The heading and the button do the work. An illustration without words leaves people to guess what the screen is for.

Should I show sample data instead of an empty state?

Sample data can show what a full screen looks like, which helps with dashboards and reports. Label it clearly as an example and make it easy to remove, so nobody mistakes it for their own data.

What should a search with no results say?

Repeat what was searched, say where you looked, and offer the next step: check the spelling, remove a filter or search everywhere. Keep the search box filled in, so people can edit their query instead of typing it again.

Resources

If this was useful, share it with someone it would help.