UI copy template

Empty state copy templates

An empty state is the screen a user sees before the product has any of their data, or after a filter returns nothing. It has to do three things in very little space: say why the area is blank, say whether that is expected, and offer the one action that fills it. Empty states are also where mockups lie most often, because designers fill them with a single ideal sentence and ship a layout that breaks the moment a real, longer sentence lands in it.

Open in TypeMatch

Loads the preset below in this page. It never runs on its own and never touches text you have already typed.

Copy that works, and copy that does not

Works

  • No invoices yet. Create your first invoice to start tracking payments.

    States the condition, then gives the single next action.

  • No results for "quarterly". Try a shorter search or clear your filters.

    Echoes the query and suggests two concrete recoveries.

  • Your team has no shared boards. Invite a teammate to start one together.

    Ties the blank state to the collaborative action that resolves it.

Falls short

  • Nothing to see here!

    Cheerful and useless. The user still does not know what to do.

  • No data.

    Reads like a database response, not a product.

  • You have not yet created any of the items that would normally appear in this section of the application.

    Long enough to overflow the illustration slot, and it still gives no action.

Length to design for

Suggested copy lengths for empty states
ElementSuggested rangeWhy
Empty state heading2–6 words, under 40 charactersSits on one line under an illustration at most card widths.
Supporting sentence8–20 words, 60–140 charactersLong enough for a reason plus an action, short enough for two lines on mobile.
Action button1–3 wordsMatches the button guidance so the empty state stays visually calm.
Zero-results messageone sentenceThe user is mid-task; anything longer delays the retry.

These ranges are starting points drawn from common component widths, not rules. Measure against your own type scale and breakpoints before locking a constraint.

Accessibility considerations

  • Announce filter and search empty states in a live region so screen reader users learn the result set changed without moving focus.
  • Do not encode the message in the illustration. Decorative images should carry an empty alt attribute and the text should stand alone.
  • Keep the recovery action reachable by keyboard in the natural tab order, immediately after the message it belongs to.
  • Maintain the same contrast requirements for muted empty-state text as for body copy; low-contrast grey is the most common failure here.

Try this preset in TypeMatch

Loaded with a heading, supporting sentence and action from a typical empty state, matched as three separate blocks.

Your text

Up to 20,000 characters per run. Emoji, accented characters and multiple paragraphs are all supported.

How your text is handled: matching runs in this browser tab, so the text you paste here is not sent to a TypeMatch server and is not saved between visits — closing or reloading the tab clears it. Usage analytics record only counts and settings, never your text. Anything you copy out is then handled by your own clipboard and the app you paste into.

Detected in your text

Words
16
Chars
100
No spaces
83
Paragraphs
3
Length constraint

Auto-detected from your text (100 chars). Unlock to set your own.

or press ⌘/Ctrl Enter
Refine result
Match method

Recent on this device

Your last 10 runs will be listed here, saved in this browser's local storage only. Nothing is uploaded and you can clear it at any time.

Saved presets

Save the current content type, tone, constraint mode and structure settings so your next run starts configured. Presets stay in this browser.

Generated copy

Waiting for your text

Variants

Paste your text and press “Match my copy” — you’ll get three verified variants to compare.

Words
0/ 16
Chars
0/ 100
No spaces
0/ 83
Paragraphs
0/ 3
Matching runs in this browser tab
Refine

Refinements keep your exact characters (with spaces) target of 100 unchanged.