Skip to main content
空状態UI設計例:体験を止めない空画面パターンと実装アイデア

Empty State UI Design: Turning “Nothing Here” Into a Clear Next Step

An empty state UI is not a decorative treatment for moments when there is nothing to show. It is a critical connection point that prevents the user experience from breaking. Situations like “there is no data yet,” “the search returned nothing,” “nothing has been created,” “you do not have permission,” or “loading failed” all look like empty screens on the surface, but from the user’s point of view they are moments where it becomes unclear what to do next. If the screen stays quietly blank, users cannot tell whether something is broken, whether their action was wrong, or what they are supposed to do now. That uncertainty increases abandonment and incorrect actions. The value of an empty state UI lies not in explaining the absence, but in creating a state where the next move is obvious and actionable.

What makes empty states difficult in practice is that, as products grow, the number of empty-state situations also grows. They start to appear across tables, card lists, dashboards, search results, settings screens, and more. Once that happens, explanation styles and CTAs tend to drift from screen to screen. The tone changes, the same situation gets described differently, or a CTA is shown that does not actually help. Over time, users begin to feel that empty states are not trustworthy, and they stop reading them and simply back out. That is why this article organizes empty state UI from the perspective of situation classification, structural components, common patterns, CTA and copy design, implementation, and operational governance, so that teams can build a system that does not fall apart as the product expands.

1. What Empty State UI Is

To design empty state UI in a stable way, the first thing to define is what “empty” actually means. Many empty states look like the same kind of “nothing is here” screen, but different causes create different user emotions and require different actions. A screen that is empty because it is the user’s first time is not the same as a screen that is empty because a search found nothing, because access is restricted, or because data failed to load. If these are treated as the same kind of emptiness, the product ends up showing irrelevant CTAs or misleading explanations, and the experience breaks down.

1.1 The Boundary Between Empty State, Error, and Loading

An empty state should generally be treated as a type of normal state: there is no data, or nothing matches the current condition, but the system is otherwise working. By contrast, when data should exist but could not be fetched, that is an error. When data is still being fetched and the result is not yet known, that is loading. If these states are blurred together, users cannot judge whether they should wait, change conditions, or retry.

In UI terms, an empty state should assume that the next action can help create or find something. An error state should assume that retry, an alternative method, or a reason needs to be shown. A loading state should assume that the user needs to understand that waiting is worthwhile and that progress is happening.

In practice, the most dangerous case is when the screen looks empty but the real problem is a failure. If a search API times out and the UI shows only a “no results” screen, the user keeps changing search terms under the false assumption that the problem is the query. If there are really zero results but the UI presents an error-like message, the user becomes unnecessarily anxious and leaves. Stable empty state UI design therefore depends on explicit state conditions such as not yet fetched, fetch success with zero results, fetch failure, and loading, with copy and CTAs tied to those states.

1.2 How Empty States Affect UX

An empty state is also a moment when users check whether they are in the right place. On a populated screen, users can read the information itself. On an empty screen, there is no information to interpret, so the UI becomes fully responsible for explanation. In other words, empty states are the moment when the interface carries the highest explanatory burden. If the explanation is weak, users are more likely to leave with the impression that the product is broken. If the explanation is clear and the next step makes sense, the impression shifts toward the product feeling helpful and well designed.

Empty states are also one of the few places where the next action can be guided very directly. In a first-time state, the path can lead to creating the first item. In a zero-results search, the path can suggest relaxing conditions. After deletion or completion, the path can suggest the next task. In a permission state, it can guide users toward requesting access. In an error state, it can point them toward retry or support. Empty state UI design is not just the task of filling blank space. It is a way of creating a short path for onboarding, exploration, and recovery.

1.3 Common Categories of Empty State

To make empty states easier to design and maintain, it helps to classify them by cause. A useful classification is not based on screen type, but on what next action the user needs. Once empty states are categorized this way, both the copy and the CTA become much easier to decide.

CategoryTypical situationUser psychologyMain CTA direction
First-use emptyNothing has been created yet“I don’t know how to begin”Create, start, guide
Condition-based emptySearch or filter returned zero resultsFrustration about not finding anythingRelax conditions, suggest options
Post-action emptyEverything was deleted or completedUnsure whether this is success or lossNext task, create again
Permission emptyNo access, wrong group, lack of membershipWants to know why it is hiddenRequest access, switch account, contact
Failed-fetch emptyNetwork or server problemAnxiety that something is brokenRetry, alternate route, report
Not-yet-fetched emptyLoading in progressJudging whether it is worth waitingProgress, wait, cancel

When empty state UI is aligned to these categories, it becomes much easier to keep the experience consistent as more screens are added. The design question shifts from “what should this blank screen say?” to “what action does this state need to support?”

2. The Basic Structure of Empty State UI Design

Empty state UI does not improve by adding more and more elements. In fact, the more elements there are, the more users need to read and interpret before acting, which makes it harder to move forward. The most valuable quality of a good empty state is not depth of explanation, but speed of understanding and speed of action. To achieve that, the roles and priority of each component need to be fixed so that only the necessary information is presented with the right level of emphasis.

2.1 Core Components and Their Roles

Most empty states can be handled reliably when the structure includes four parts: a declaration of the situation, a short explanation of the reason, the next action, and an optional supporting path. Visual elements should not replace explanation. They should exist only to speed up recognition and reduce dependence on heavy text.

ElementRolePractical design pointCommon failure
Icon / illustrationQuickly communicates the contextUse only metaphors that match the screen’s purposeAdds confusion because it feels unrelated
TitleDeclares the empty condition in short formKeep it short enough to work even without a subjectToo abstract to understand
DescriptionExplains why the state is empty and what can happen next1–2 short sentences with cause plus next stepToo long, so nobody reads it
Primary CTAGives the shortest meaningful next actionMust move the user forward when clickedClick does not change anything
Supporting linkRescue path, such as help or switching contextShould not compete with the main CTACompetes with the primary path

The purpose of this structure is to turn an empty state from a stop into a branch. The screen may be empty of data, but it does not have to be empty of action. In empty state UI design, the lack of information is compensated for by making the next move easy.

2.2 How Titles and Descriptions Should Work Together

Copy inside empty states is usually skimmed, not read carefully. That is why it is strong when the title alone explains the situation, and the description alone explains the next move. The title should declare what state the user is in. The description should connect the reason to the action. A title like “No results found” explains the state, but by itself it does not tell the user what to do next. A short follow-up sentence such as “Try broadening your search conditions” immediately reduces hesitation.

Longer descriptions may seem more considerate, but empty-state text is rarely read deeply, so dense and efficient language is usually better. In practice, the key is to communicate the cause, the next action, and whether the user can safely recover, all in as few words as possible. In error-adjacent empty states, it is also important not to overstate certainty. Phrases like “There may be a network issue” are often better than presenting an unverified cause as fact, as long as retry or alternative actions are offered.

2.3 Designing the CTA

The primary CTA in an empty state should assume one thing: clicking it should change the situation. If the CTA leads to another page but the user remains stuck in the same state, or if it routes into a permission wall and fails again, trust in empty states is damaged. A CTA is a promise, not just a button. If the promise cannot be fulfilled, it is often better not to show that CTA at all and instead guide the user toward another realistic action. In a permission-based empty state, for example, a “Create” button is not helpful if the user cannot actually create. The better action is to request access or switch account.

Primary and secondary CTAs also become problematic when they compete. Empty state UI becomes easier to act on when there is only one primary action, while secondary paths remain visually lighter, such as text links. If multiple actions are truly needed, it is usually more effective to ask for the first meaningful choice in the empty state and then branch later, rather than putting all possible decisions into one empty screen.

3. Empty State UI Pattern Library

Once empty state UI is turned into patterns, maintenance becomes dramatically easier. Instead of inventing new copy and CTA structures screen by screen, teams can define standard responses for standard categories of emptiness. This stabilizes tone and makes review much faster. Below are several of the most common patterns, framed as copy and pathway templates.

3.1 First-Use Empty State

A first-use empty state is not only a case where the user has not created anything yet. It is also a case where the user does not yet understand what this screen is for. That makes first-use emptiness not just an absence of data, but also the opening of onboarding. In this kind of state, the explanation should focus less on why the screen is empty and more on making the first successful action feel obvious and close. A message such as “There are no projects yet” is weaker than “Create your first project to see it listed here,” because the second version also explains what the screen becomes after action.

The CTA in a first-use empty state works best when it uses verbs that feel like clear forward motion, such as “Create,” “Get started,” or “Import.” When creation itself is complex, it also helps to lower the first barrier through sample data or templates. First-use emptiness tends to be lower on anxiety but higher on confusion, so the design should focus on helping users understand what the screen can do and what the shortest first step is.

3.2 Empty Search Results

Zero search results are psychologically heavier than first-use emptiness because the user arrived with a purpose and failed to find what they were looking for. If the screen only says “No results found,” users cannot tell whether the problem is the search term, the dataset, or a system issue. In this kind of state, the interface needs to lightly explain why zero results may have happened and what adjustment is most likely to increase results.

The strongest patterns here are concrete suggestions for relaxing conditions. Instead of saying only “Try again,” the UI can propose “Expand the date range,” “Increase the price range,” or “Try another keyword spelling.” Those are much easier to act on than generic instructions. Suggested alternatives are not always possible, so when the system cannot produce them, guidance such as “See popular categories” or “Search tips” still helps keep exploration from ending abruptly.

3.3 Filter-Based Empty State

A filter-based empty state is different from a search empty state because the user has often narrowed the result set themselves. The most important thing here is to make it clear that zero results is still a normal outcome, not a failure. Search emptiness feels like the query may have failed. Filter emptiness feels like the criteria became too strict. A soft explanation such as “Your filters may be too narrow” helps users recover without feeling lost.

The critical design issue is that users need to see which filters are currently active. If they cannot see the active conditions, they also cannot tell what to undo, so the empty state persists longer than necessary. CTAs like “Reset filters” or “Remove one condition” work well because they restore the path forward quickly. It is also highly effective to show active filters as removable tags so that recovery can happen in one tap. A filter-based empty state can either become a quick experimentation loop or a dead end depending on how short the recovery path is.

3.4 Cleared State After Completion or Deletion

Some empty states are not failures at all. When users intentionally delete everything or complete all tasks, emptiness can be a sign of success. In those cases, negative language is unnecessary. It works better to lightly confirm the achieved state, such as “Everything is complete” or “There are no items right now,” and optionally suggest what comes next. In these moments, the next action is not always essential, but if it is offered, it reduces hesitation the next time the user returns.

One important edge case is accidental clearing. If all items can be removed unintentionally, the more important design issue may actually be the undo or recovery path before the empty state is shown. Empty state UI begins after the content is gone, but in many situations it only works safely when it is designed together with the actions that can make the content disappear.

3.5 Permission Empty State

Permission-based empty states create some of the most serious misunderstanding. The data is not absent. It is hidden. If the reason is not clear, users may think the content was deleted or lost. In this state, explaining why the content cannot be shown is more important than emphasizing the emptiness itself. Vague wording here often sends users into support channels unnecessarily, which means permission empty states also have a strong operational role.

The CTA should only point toward actions the user can realistically succeed with, such as “Request access,” “Switch account,” or “Contact an administrator.” Showing a “Create” or “View” button that will fail just makes the situation feel impossible. Permission empty states often carry a high emotional load, so the explanation needs to be clear and the next step needs to be short.

4. Implementation Ideas for Empty State UI

Empty state UI falls apart not only when the design is weak, but when the underlying state handling is poorly implemented. If first-use, empty search, empty filter, permission, error, and loading all collapse into the same visual treatment, users inevitably misunderstand the situation. In that sense, empty state UI is inseparable from state design.

This section introduces a practical way to treat emptiness as a modeled product state and turn it into a reusable component system.

4.1 A Minimal Empty State Model

To make empty states reliable, display conditions should not be driven only by “data exists” or “data does not exist.” The UI needs to distinguish whether content is still loading, whether loading succeeded but returned zero results, whether loading failed and looks empty, or whether the user lacks permission. Once that distinction exists in code, the UI can vary the copy and CTA accordingly.

 

// Minimal model for classifying empty states by cause
export type EmptyStateKind =
  | "first_use"     // first use, nothing created yet
  | "empty_search"  // search returned zero
  | "empty_filter"  // filter returned zero
  | "cleared"       // after completion or deletion
  | "permission"    // no permission
  | "error"         // failed to fetch
  | "loading";      // currently loading

export type EmptyStateSpec = {
  kind: EmptyStateKind;
  title: string;
  description?: string;
  primaryCta?: { label: string; action: () => void };
  secondaryCta?: { label: string; action: () => void };
  helpLink?: { label: string; href: string };
};

 

The main goal of a model like this is to stop empty state copy and CTAs from becoming screen-by-screen improvisation. As more empty-state situations appear, the team can extend the kind values and specs while preserving consistency in tone and behavior across the product.

4.2 A Reusable Empty State UI Component

Teams often want to design empty states uniquely on each screen, but consistency becomes much stronger when the visual structure is shared and only the copy and CTA vary. The following is a minimal React example that uses a title, description, primary CTA, and secondary CTA within one consistent structure.

 

type Props = { spec: EmptyStateSpec };

export function EmptyState({ spec }: Props) {
  return (
    <section aria-label="Empty state" style={{ textAlign: "center", padding: 24 }}>
      <h2 style={{ margin: 0 }}>{spec.title}</h2>

      {spec.description ? (
        <p style={{ marginTop: 8, marginBottom: 16 }}>{spec.description}</p>
      ) : (
        <div style={{ height: 16 }} />
      )}

      <div style={{ display: "flex", justifyContent: "center", gap: 12, flexWrap: "wrap" }}>
        {spec.primaryCta ? (
          <button onClick={spec.primaryCta.action}>{spec.primaryCta.label}</button>
        ) : null}

        {spec.secondaryCta ? (
          <button onClick={spec.secondaryCta.action}>{spec.secondaryCta.label}</button>
        ) : null}
      </div>

      {spec.helpLink ? (
        <p style={{ marginTop: 16 }}>
          <a href={spec.helpLink.href}>{spec.helpLink.label}</a>
        </p>
      ) : null}
    </section>
  );
}

 

In practice, teams would layer on additional variation such as compact sizing for table cells, full-screen treatments for major pages, context-specific icons, and mobile button widths. But keeping the structure consistent lowers learning cost for users because the “reading pattern” of empty states stays the same across the product.

5. Failure Patterns to Avoid and Review Checkpoints

Empty state UI is easy to overlook, but mistakes here quickly make the overall experience feel unreliable. Since empty states appear at moments when users are already prone to confusion, even small mismatches can lead directly to abandonment or support tickets.

This section turns common failures into reviewable symptoms and response directions.

5.1 Common Failure Patterns

FailureSymptomMain causeDirection of improvement
Blank screen with no explanationUsers think the product is brokenNo state explanationAdd title, reason, and next step
No clear actionMore back actions and abandonmentCTA missing or too weakMake one primary CTA explicit
CTA that does not move users forwardTrust in empty states dropsUI suggests an action that will failShow only actions that can succeed
Irrelevant illustrationContext feels incoherentVisual chosen for decoration onlyUse only metaphors that match the state
Error and empty state are mixed upUsers stop retrying too soonState detection is too coarseSeparate error, loading, and empty states

In review, the most practical questions are: does the title make the situation clear, does the explanation avoid creating misunderstanding, does the primary CTA always lead to progress, and do supporting paths avoid competing with the main action? Since empty states are read quickly, consistency of structure matters more than polishing every line of copy.

5.2 Practical Empty State UI Checklist

PerspectiveCheckpoint
Clarity of situationCan the title alone explain what state this is?
Reason qualityDoes the explanation avoid overconfidence and reduce misunderstanding?
Short path to actionDoes the main CTA move the user forward?
RecoveryCan the user recover quickly from zero-result conditions, such as removing a filter?
ConsistencyIs tone and structure consistent across screens?
AccessibilityDo screen readers, focus order, and contrast still work?

Conclusion

Empty state UI design is not a decorative treatment for “screens with nothing on them.” It is pathway design that keeps the user’s action from stopping. First-use emptiness, condition-based emptiness, completion emptiness, permission emptiness, error emptiness, and loading emptiness all have different causes, different user emotions, and different required next steps. That is why the state should first be classified by cause, and only then translated into a consistent structure made of title, explanation, primary CTA, and supporting path. The right copy and the right CTA are not about filling space. They are about creating the next step in a situation where information itself is absent. Depending on how it is designed, an empty state can become either a point of abandonment or a point of forward motion.

As products grow, the number of empty states inevitably increases. That makes a screen-by-screen approach fragile. It is stronger to model empty states as reusable state types and then turn them into shared UI components, changing only the wording and action. When the structure stays consistent and only the specific meaning varies, both design quality and improvement speed rise together. The real test of empty state UI is simple: does it explain why the screen is empty, show a concrete next step, and let the user actually move forward? The more reliably it does that, the less users hesitate, and the smoother the product experience becomes overall.

LINE Chat