Empty states

v1.0

Empty states are screens or containers with no content to display.

Overview

Empty states occur when a page, section, or container has no content to display. Empty states provide context to your users about why the space is empty and guide users toward their next action.
Empty states transform potentially confusing moments into opportunities for education, engagement, and conversion. They help users understand the system, reduce friction, and take meaningful next steps.

When to use

  • User is encountering a page or flow for the first time
  • User has cleared all data
  • A search, filter, or query returned zero results
  • Data isn't available or no longer exists

When not to use

  • An error has occurred

Considerations

Informative

Empty states clearly communicate information about the system status. A user should understand what information isn’t present and why.

Guiding

Empty states can help encourage users to discover unused features or engage with a new experience.

Contextual

Empty states are directly related to data or content the user is trying to retrieve.

Presentation

How you display an empty state depends on the context of your user experience. Display the empty state as a full-page, inline, or component-level layout depending on the context.

Full page

Full page empty states represent data that occupy a full page. The empty state content is vertically aligned to the top of the page.

When using full page empty states, keep page-level navigation to allow the user to leave the experience or proceed to other spaces.

Messages screen showing an empty inbox with an envelope icon, the text "Your inbox is empty," and a "Send a message" button below.

Inline

When showing module-based empty states that are small and/or near other prominent visuals, use text only. Most of the time, this layout will be left aligned.

My Collection screen showing an empty collection state with an Add item button.

Component

Some components include a starting or empty state. If using a component with a default empty state, don’t add additional empty state elements.

Address form with fields for address, address line 2, city, and state.

Types

First use

Appears when a user encounters a feature for the first time and hasn’t created any content yet. This is an opportunity to educate and encourage adoption.

Encourage the first step with clear actions, such as “Add your address” or “Start a new search.”

Watchlist screen showing an empty watchlist state.

User cleared

The user had content but intentionally removed all items. Acknowledge what happened without making it feel like an error.

Consider adding delight to the experience with expressive colors and motion.

To-do list screen showing a completed tasks state.

No results

A search, filter, or query returned zero results. Explain why and offer a next step, such as adjusting filters or saving the search.

Search results screen showing no matching items with an option to save the search.

Components to use

The exact anatomy of an empty state depends on the context and user experience. There are several different components and layouts available to express an empty state, but most will include copy and a CTA at minimum.

Graphic elements

A visual element that reinforces the empty state’s meaning. Use illustrations when it adds to the comprehension of the message, and use icons for simpler contexts. Not all empty states will require a graphic element

Messages screen showing an empty inbox state with the Pigeon Mailbox illustration and an option to send a message.

Illustration

Choose an illustration that literally represents the messaging. For example, use a bag illustration for an empty cart rather than a broken car. Find the Figma components with color variations and URLs for empty states in the illustration library.

Please note: using illustrations in your empty state designs requires approval from the OX team by filling out the Evo illustration approval form.

Messages screen showing an empty inbox state with the Mail icon and an option to send a message.

Icon

Icons can be used to add visual interest and information about the type of empty state. For data/list views, icons may be more appropriate than full illustrations

Headline

Required for full page and inline messages. The headline clearly and concisely explains why the space is empty. 


  • Use sentence case
  • No ending punctuation
  • Keep to 40–60 characters

Body text/description

Required. The body provides additional context by explaining the feature or what the user can do next. Don't restate the headline.


  • Use sentence case
  • No ending punctuation
  • Keep to 1 sentence or 120–180 characters

Primary action (CTA)

Optional. The CTA provides the most direct path out of the empty state. Use verbs to make outcome immediately clear. 


  • Use sentence case
  • No ending punctuation
  • Use a [verb] [noun] or [verb] [article] [noun] pattern
  • Keep to 2–4 words

Popover

When displaying an empty state from a menu item, use a popover component to communicate the empty state.

View Popover

Notification popover showing no new notifications.

Specs

Spacing and layout

Spacing helps create a clear visual relationship between the elements within an empty state and improves readability and scannability.

Messages empty state with an option to send a message. The image shows measurements between UI: 16px between icon and title, 8px between title and body copy, and 24px between body copy and CTA.

Typography hierarchy

The headline should communicate the primary message quickly and be the most visually prominent element, while the supporting text provides additional context in a smaller, secondary style.

Messages empty state with an option to send a message. The image shows typography: Title 2 for the title and Body for the body copy.

Empty state illustrations

We have a set of three illustrations available for use with empty states. These are the only illustrations that should be used for null state patterns. Find the Figma components with color variations and URLs for null states in the illustration library.

To-do-list illustration

To do list

Use for user cleared empty states.

Pigeon-mailbox illustration

Mailbox

Use for empty mailboxes and messages.

Empty-clothing-rack illustration

Clothing rack

Use for no results.

Best practices

Content

Do use supportive copy to inform users of the empty state.

Search results empty state showing no matching items with an option to edit filters. Text reads, “No exact matches found”, “Try expanding your search filters to view matching items”

Don’t use overly-apologetic language or blame the user.

Search results empty state showing no matching items with an option to edit filters. Text reads, “No results”, “You’re search filters are too narrow”

Do use clear, descriptive language.

Messages screen showing an empty inbox state with an option to send a message. Text reads,  “Your inbox is empty”, “When you send or receive messages, they’ll show up here”, “Send a message”.

Don’t use vague language.

Empty state showing no content available. Text reads, “Oops!” “There’s nothing here”

Discovery

Do encourage engagement and discovery with a clear CTA.

Your Collection screen showing an empty collection state with a CTA that reads, “Add item”.

Don’t include an error states with no apparent resolution or next steps or too many possible actions.

Your Collection screen showing an empty collection state with three CTAs that reads, “Add item” “Go to cart”, and “Go to Homepage”

Graphic elements

Do use rich graphic elements like illustrations sparingly and intentionally.

Messages screen showing an empty inbox state with the Pigeon Mailbox illustration

Don’t use illustrations that aren’t clearly related to the message or distract from the page’s purpose.

Messages screen showing an empty inbox state with the Upside down girl  illustration