Skip to content
Back to skills

Design Empty States

ASecurity

Use when designing screens that appear before content exists — first use, no-results, user-cleared state, or error — to orient users and guide the next action instead of showing a blank screen.

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 8, 2026
ai-agentsrustgodocumentation

Works with

  • cli

Security analysis

A100/100

Scanned September 8, 2026

npx -y skills add jeffreytse/grimoire-core --skill design-empty-states --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Design Empty States?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Design Empty States
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jeffreytse-design-empty-states/badge)](https://www.skillsdirectory.com/skills/jeffreytse-design-empty-states)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: design-empty-states
description: Use when designing screens that appear before content exists — first use, no-results, user-cleared state, or error — to orient users and guide the next action instead of showing a blank screen.
source: NNG "Empty States in Mobile UX" (Laubheimer, 2016); Google Material Design "Empty states" guidelines; IBM Carbon Design System "Empty states" documentation
tags: [empty-states, onboarding, ux, first-use, no-results, error-states, ui-patterns]
---

# Design Empty States

Write copy, add a single CTA, and use illustration or iconography to transform blank screens into helpful prompts that keep users oriented and moving forward.

## Why This Is Best Practice

**Adopted by:** Google Material Design, Apple Human Interface Guidelines, IBM Carbon, Shopify Polaris, and Atlassian Design System all provide explicit empty state guidelines and components; Intercom, Slack, and Notion have each published case studies on how improved empty states increased feature activation rates
**Impact:** NNG (2016) identifies empty states as among the top causes of user abandonment on first use — a blank screen with no context leaves users unsure whether the product is broken, the feature is loading, or action is required; Intercom reported a 17% increase in feature adoption after redesigning first-use empty states with action-oriented copy and a single CTA; Slack attributes part of its onboarding success to empty-state design that guides users to their first message
**Why best:** A blank screen is an implicit error state — it gives users no information about what to do next; a loading spinner without completion feedback is equivalent; empty state design fills the information vacuum with the exact content users need at the moment of uncertainty

Sources: NNG "Empty States in Mobile UX" (Laubheimer, 2016); Google Material Design "Empty states" (material.io); Kleppmann "Designing for Empty States" (Intercom Design, 2017)

## Steps

### 1. Classify the empty state type

Different types require different content:

| Type | When it appears | User's mental state |
|------|----------------|-------------------|
| **First-use** | Feature used for the first time; no data yet | Curious but uncertain what to do |
| **User-cleared** | User deleted all items or completed all tasks | Accomplished; needs next step |
| **No-results** | Search or filter returned nothing | Frustrated; needs to adjust or try again |
| **Error** | Load failed due to network or server issue | Frustrated or confused |

Mismatching type to treatment is the most common empty state error — a first-use state that looks like an error increases anxiety; a no-results state that looks like first-use is confusing.

### 2. Write the headline (orientation copy)

One short sentence that tells the user exactly where they are and why it's empty.

```
First-use:    "No projects yet"
User-cleared: "All caught up!"
No-results:   "No results for 'invoic'"
Error:        "Couldn't load your projects"
```

**Rules:**
- State the entity name ("projects", "messages", "invoices") — not generic ("No content here")
- First-use and user-cleared: positive or neutral tone
- No-results: include the search term so users know the empty state is specific to their query
- Error: acknowledge the failure without blaming the user

### 3. Write the body copy (reason or instruction)

One sentence that explains why it's empty or what to do next.

```
First-use:    "Create a project to start tracking your team's work."
User-cleared: "Check back when new tasks are assigned."
No-results:   "Try a different spelling or check for typos."
Error:        "Check your connection and try again, or contact support."
```

For first-use states, body copy is the highest-value element — it answers the question users actually have ("what does this do and where do I start?").

### 4. Add one primary CTA (first-use and user-cleared only)

First-use and user-cleared empty states need a single, specific action button. Not two buttons; not a link buried in body text — one prominent CTA.

```
First-use:    [Create project]
User-cleared: [Browse new tasks] or just leave without a CTA if genuinely "done"
```

**No-results and error states** do not need a CTA to create — they need a CTA to recover:
```
No-results:   [Clear filters] or [Browse all]
Error:        [Try again] or [Go to dashboard]
```

Never use a generic "Get started" CTA — name the action ("Create your first project").

### 5. Add illustration or icon (optional but high-value for first-use)

Visual support makes the empty state scannable and less clinical.

- **Icon**: appropriate for compact or data-dense UIs (tables, sidebars)
- **Illustration**: appropriate for full-page first-use states; increases memorability
- **No image**: acceptable for inline no-results states within a search result list

Guidelines:
- Illustration should represent the content type, not a generic empty box
- Do not use sad faces, broken items, or error imagery for first-use states — they signal failure, not opportunity
- Keep illustrations small enough not to dominate the layout; empty state is a waypoint, not a landing page

### 6. Apply by state type — complete templates

**First-use:**
```
[Illustration of the content type]
[Entity name] — e.g., "Projects"
[Orientation] — e.g., "Organize your work into projects to track progress with your team."
[Primary CTA] — e.g., [Create project]
```

**User-cleared:**
```
[Optional celebratory icon]
[Positive headline] — e.g., "All done!"
[Next-step copy] — e.g., "New tasks will appear here when they're assigned."
[Optional CTA if genuinely relevant]
```

**No-results:**
```
[Search icon or neutral illustration]
[Specific headline] — e.g., "No results for 'invoic'"
[Recovery copy] — e.g., "Check for typos or try a different term."
[Recovery CTA] — e.g., [Clear search]
```

**Error:**
```
[Error icon — not a broken image]
[Honest headline] — e.g., "Couldn't load your projects"
[Cause + action] — e.g., "Check your connection and try again."
[Retry CTA] — e.g., [Try again]
[Secondary] — e.g., [Contact support]
```

### 7. Test with zero-state users

Before shipping, conduct a 5-user test with participants who have never seen the feature:
- Can they identify what the feature is for?
- Do they know what to do next?
- Does the state feel like an error or an invitation?

First-use empty states that users mistake for loading errors indicate orientation copy needs to be clearer.

## Rules

- Every empty state must have at minimum: a specific headline (not "Nothing here") and body copy
- No-results empty states must include the search term or filter that caused them
- Error empty states must offer a recovery action — "Try again" or "Go back" — never just an explanation with no path forward
- Never use blank white space alone as an empty state — even a text explanation is better than silence
- Illustrations for first-use empty states should represent the content, not the emptiness (show what a project looks like, not an empty box)

## Common Mistakes

- **Generic copy**: "No data to display" — fails to orient the user, name the entity, or suggest next action
- **Error imagery on first-use**: a sad face or broken icon on a first-time-user screen communicates that something is wrong, creating unnecessary anxiety
- **Multiple CTAs**: two or three buttons in an empty state dilute focus; pick one action that best unblocks the user
- **No-results state that looks like first-use**: if "No results for 'X'" looks identical to "No projects yet", users can't tell if the search worked or the feature is empty
- **Empty state for authenticated-only features behind a paywall**: don't show an empty first-use state for a feature the user cannot access; show a gate/upgrade prompt instead

## When NOT to Use

- When the empty state is transient and resolves in < 1s — a brief loading flash that resolves immediately doesn't need empty state treatment; use a skeleton screen or spinner instead
- When the feature genuinely has no actionable next step from the empty state (e.g., an audit log with no events yet) — body copy explaining the condition is sufficient; don't fabricate a CTA

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…