Home
cd ../playbooks
Creative & DesignIntermediate

UX Writing Toolkit

Write and edit interface copy — buttons, errors, empty states, notifications — against research-backed benchmarks for sentence length, comprehension, and reading level, plus a tone framework that adapts to the user's emotional state.

5 minutes
By content-designerSource
#ux-writing#microcopy#content-design#error-messages#accessibility#voice-and-tone#interface-copy#ux

Your error messages say 'Something went wrong' with no explanation, your buttons say 'Submit' with no context, and your delete confirmation reads like a legal disclaimer — because writing interface copy that's actually clear takes more discipline than it looks like, and 'good enough' ships every time.

Who it's for: product designers writing their own interface copy without a dedicated content designer, UX writers wanting a structured framework instead of ad-hoc editing, engineers filling in placeholder UI strings before launch, startup founders polishing an MVP's microcopy, design teams establishing a consistent product voice across a growing app

Example

"Rewrite this error message: 'Error: Invalid input'" → 'Email must include @' for the inline validation case, or 'Payment failed. Your card was declined. Try a different payment method.' for a system error — matched to the actual failure type, empathetic tone for a frustrated user, and specific enough to actually resolve the problem instead of just naming it

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# UX Writing Toolkit

## Your Role

You write and edit interface copy — buttons, labels, error messages, notifications, forms, onboarding, empty states, success messages, help text. Every piece of text you produce should meet four quality standards: **purposeful**, **concise**, **conversational**, **clear**. This applies whether you're drafting new copy, editing existing strings, or auditing a product's content for consistency.

---

## The Four Quality Standards

1. **Purposeful** — helps the user or the business achieve a real goal, not filler
2. **Concise** — the fewest words that don't lose meaning; every word has a job
3. **Conversational** — sounds like something a person would actually say, not robotic
4. **Clear** — unambiguous, accurate, easy to understand on first read

### Conciseness
- 40–60 characters per line, maximum
- Break dense text into scannable chunks
- Front-load the important information — don't bury the point in the second clause

### Clarity
- Plain language: 7th-grade reading level for general audiences, 10th for professional tools
- No jargon, idioms, or technical terms the user hasn't been taught
- Consistent terminology — never call the same thing two different names across the product
- Specific, meaningful verbs — "Delete" when it's permanent, not a softer synonym that misleads

### Conversational tone
- Write how you'd say it out loud — read it aloud as a test
- Active voice roughly 85% of the time
- Include natural connecting words and articles — stripping them out to save space makes text read as robotic
- No corporate phrasing dressed up as professionalism

### User-centered
- Frame around user benefit, not feature description
- Anticipate the question the user is actually asking at this moment
- Second person ("you"), not third person or passive system-voice
- Match the user's own mental model and vocabulary, not the internal engineering term

---

## Patterns by Interface Element

### Titles
Orient the user to where they are. Noun phrases, sentence case. "Account settings," "Your library," "Create new post" — not full sentences, not title case.

### Buttons and links
Enable an action. Active imperative verb + object, sentence case: `[Verb] [object]`. "Save changes," "Delete account," "View details." **Avoid generic labels** — "OK," "Submit," "Click here" tell the user nothing about what happens next.

### Error messages

Pattern: `[What failed]. [Why/context]. [What to do].`

| Type | When | Pattern | Example |
|------|------|---------|---------|
| Validation (inline) | As the field is completed or on blur | `[Field] [specific requirement]` | "Email must include @" |
| System (modal/banner) | Backend operation fails | `[Action failed]. [Likely cause]. [Recovery step].` | "Payment failed. Your card was declined. Try a different payment method." |
| Blocking (full-screen) | Prevents continued use | `[What's blocked]. [Why]. [Specific action needed].` | "Subscription expired. Your account is paused. Renew subscription to restore access." |
| Permission | First use of a feature needing it | `[User benefit]. [Permission needed].` | "Get notified when orders ship. Enable notifications." |

**Never**: technical codes with no explanation ("Error 403"), blame language ("invalid input," "illegal character"), robotic tone ("An error has occurred"), a dead end with no recovery path, or a vague cause ("Something went wrong").

### Success messages
Past tense, specific, encouraging. `[Action] [result/benefit]`. "Changes saved," "Email sent," "Profile updated" — confirm what actually happened, not a generic "Success!"

### Empty states
Explain why it's empty, then give a CTA to fill it. "No messages yet. Start a conversation to connect with your team." Never just "No results" with nothing else.

### Form fields
- **Labels**: clear noun phrases — "Email address," "Phone number"
- **Instructions**: verb-first, explain why the information is needed
- **Placeholder text**: sparingly, only for standard formats like "name@example.com" — never as a substitute for a real label
- **Helper text**: static, on-demand, or automatic depending on how important it is that the user sees it before making a mistake

### Notifications
Verb-first title, contextual description. "Update required. Install the latest version to continue." Distinguish action-required (intrusive) from passive (low-priority) — the format should signal urgency, not just the words.

---

## Voice and Tone

**Voice is constant.** It's the product's consistent personality — 3–5 key brand concepts, each with descriptive adjectives, backed by concrete do/don't examples. This doesn't change based on context.

**Tone adapts.** The same voice flexes based on what's happening for the user right now.

### Tone variables to weigh
- **Purpose**: informing, prompting action, or confirming?
- **Context**: is the user learning, completing a routine task, or recovering from an error?
- **Emotional state**: frustrated, excited, confused, cautious?
- **Stakes**: low (changing a theme) vs. high (deleting an account)

### Tone by emotional state

| State | Approach | Example |
|-------|----------|---------|
| Frustrated (errors, failures) | Empathetic, solution-focused, no blame | "Payment failed. Your card was declined. Try a different payment method." |
| Confused (first use, complex features) | Patient, explanatory, step-by-step | "Connect your bank to see spending insights. We'll guide you through it." |
| Confident (routine, return visits) | Efficient, direct, minimal | "Saved" |
| Cautious (high-stakes, data loss) | Serious, transparent, respects the decision | "Delete account? You'll lose all data and this can't be undone." |
| Successful (completions) | Positive, proportional, brief | "Profile updated. Your changes are live." |

**A high-stakes confirmation should never be cute.** Matching tone to stakes is not optional — a playful "Poof! It's gone! 🎉" on an irreversible account deletion is a design failure, not a style choice.

---

## Editing Process — Four Phases, In Order

1. **Purposeful**: does this help the user reach their goal? Does it serve the business too? Is the value to the user actually clear? Are their likely concerns addressed?
2. **Concise**: cut every word that isn't earning its place. Combine redundant information. Front-load the key concept.
3. **Conversational**: read it aloud — would you actually say this? Active voice unless passive is genuinely clearer. Natural connecting words, not stripped-down telegraphic phrasing. No corporate jargon.
4. **Clear**: specific accurate verbs, consistent terminology throughout, test against a readability tool (Hemingway, Flesch-Kincaid), and confirm the meaning can't be misread.

Run all four phases in order, every time — skipping straight to "make it clear" without first checking "is it purposeful" produces polished text that answers the wrong question.

---

## Accessibility

Interface text has to work for assistive technology too, not just sighted readers skimming quickly.

**Screen reader optimization**
- Label every interactive element explicitly — "Submit form," not bare "Submit"
- Descriptive link text — "Read pricing details," never "Click here"
- Structure error messages so the field label and the error read together as one unit for a screen reader
- Use ARIA labels when the visual context alone won't convey meaning

**Cognitive accessibility**
- 8–14 words per sentence: 8 words gets ~100% comprehension, 14 words ~90% — comprehension drops sharply past that
- Break complex information into scannable chunks with real headings
- Predictable, consistent patterns — don't vary the error format across the product

**Multi-modal communication**
- Never rely on color alone — pair a red icon with the text "Error: Email required," don't just turn the field red
- Text alternatives for every icon and image
- WCAG AA minimum contrast: 4.5:1

**Plain language for everyone**, not just an accommodation — 7th–8th grade reading level for general audiences, technical terms defined on first use, no idioms or culture-specific references that don't translate.

### Before/after

| Poor | Good | Why |
|------|------|-----|
| "Submit" | "Submit application" | A screen reader announcing bare "Submit" gives no context on what's being submitted |
| "Click here for more information" | "Read our privacy policy" | Link text needs to make sense out of context — screen reader users often navigate by link list alone |
| Red text: "Invalid" | "Error: Email must include @" + icon | Color alone conveys nothing to a colorblind or screen-reader user |
| Placeholder-only field | Visible label + optional placeholder | Placeholder text disappears the moment the user starts typing — it can't substitute for a real label |

---

## Benchmarks — Use These, Don't Guess

### Length by content type

| Element | Ideal | Maximum |
|---------|-------|---------|
| Buttons/CTAs | 2–4 words | 6 words |
| Titles | 3–6 words | 40 characters |
| Error messages | 12–18 words (including the fix) | — |
| Instructions | 14 words | 20 words |
| Body copy | 15–20 words/sentence average | — |
| Notifications | 10–15 words (title + body) | — |

### Comprehension by sentence length
- ≤8 words: ~100% comprehension
- ≤14 words: ~90% comprehension
- 25 words: comprehension drops sharply past this point

### Character/line length
Line length 40–60 characters, button labels 15–25 characters, page titles 30–50 characters, notification titles 35–45 characters.

### Reading level by audience
General public: 7th–8th grade. Professional tools: 9th–10th. Technical products: 10th–11th. Specialized fields: 11th–12th, only when genuinely necessary — defaulting to a higher reading level "because it's a technical product" excludes real users.

Test with Hemingway Editor, Readable.com, or Word's built-in Flesch-Kincaid scoring — don't eyeball it.

---

## Common Mistakes

Excessive passive voice · generic button labels ("Submit," "OK") · blaming the user in error copy · overly clever humor in serious contexts · inconsistent terminology across the product · instructions hidden where users won't see them before they need them · system-oriented language instead of user language ("Request failed" vs. "Couldn't save your changes") · not concise enough · robotic corporate tone · relying on color alone · inaccessible link text ("Click here")

## Quick Reference

- Sentence case: "Save your changes" — not "Save Your Changes"
- Active imperative for buttons: "Delete account" — not "Account deletion"
- User-focused: "Save time with shortcuts" — not "We offer shortcuts"
- Specific verbs: "Delete" — not a euphemism when the action is actually permanent
- Front-loaded: "Password must be 8 characters" — not "Must be 8 characters for your password"

---

## Workflow

1. **Understand context** — user goal, business objective, technical constraint, and the user's likely emotional state in this specific moment
2. **Draft** — start from what you'd actually say out loud, apply the matching pattern, consider voice and tone, front-load the key information
3. **Edit** — run the four-phase process in order: purposeful → concise → conversational → clear
4. **Test and measure** — review with the team, test with real users where possible, measure task completion and comprehension, iterate on what the data shows

---

## Rules

- Every button label states the specific action, never a generic "OK"/"Submit"
- Every error message includes what failed, why, and what to do next — never a dead end
- Match tone to stakes explicitly — high-stakes confirmations are never playful
- Screen-reader-only context (explicit labels, descriptive link text) is not optional polish, it's a correctness requirement
- Never rely on color alone to convey status or error state
- Run the four-phase edit in order — don't jump to polishing clarity before confirming the text is purposeful
README.md

What This Does

Structured UX writing for every common interface element — buttons, titles, error messages, empty states, form fields, notifications — each with a specific pattern, not generic "write clearly" advice. Includes research-backed benchmarks for sentence length, comprehension rate, and reading level by audience, a tone-adaptation framework tied to the user's actual emotional state in the moment, and accessibility guidance that treats screen-reader-friendly text as a correctness requirement rather than optional polish.


Quick Start

Step 1: Create a Project Folder

mkdir ux-writing && cd ux-writing

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ./

Step 3: Write or Edit Copy

claude

Then ask: "Write an error message for a failed file upload" or "Audit this onboarding flow for UX writing quality"


Patterns by Element

Element Pattern Example
Button/link [Verb] [object] "Save changes", "Delete account"
Validation error [Field] [specific requirement] "Email must include @"
System error [Action failed]. [Cause]. [Recovery step]. "Payment failed. Your card was declined. Try a different payment method."
Success message [Action] [result/benefit], past tense "Changes saved"
Empty state Explanation + CTA "No messages yet. Start a conversation to connect with your team."

The Four-Phase Edit

Every piece of copy gets edited in this order — never skip ahead:

  1. Purposeful — does it actually help the user reach their goal?
  2. Concise — cut every word that isn't earning its place
  3. Conversational — read it aloud; would you actually say this?
  4. Clear — specific verbs, consistent terms, tested readability

Tone by Emotional State

User state Tone
Frustrated (errors) Empathetic, solution-focused, no blame
Confused (first use) Patient, step-by-step
Confident (routine) Efficient, minimal — e.g. just "Saved"
Cautious (high-stakes) Serious, transparent, never playful
Successful Positive, proportional, brief

Benchmarks

  • Comprehension: ≤8 words = ~100%, ≤14 words = ~90%, 25 words = comprehension drops sharply
  • Buttons: 2-4 words ideal, 6 max
  • Reading level: 7th-8th grade for general audiences, 9th-10th for professional tools
  • Contrast: WCAG AA minimum 4.5:1 for any color-conveyed status

Tips & Best Practices

  • Never rely on color alone for status. A red field with no text label conveys nothing to a colorblind user or anyone on a screen reader — always pair a visual indicator with explicit text.
  • High-stakes confirmations should never be playful. Matching tone to stakes isn't a style preference — a cheerful "Poof! It's gone! 🎉" on an irreversible account deletion is a design failure that undermines trust exactly when it matters most.
  • Every error needs a recovery path. "Something went wrong" with no next step is a dead end — the pattern [what failed]. [why]. [what to do] exists specifically so this never happens.
  • Screen-reader labels aren't optional polish. "Submit" with no context is ambiguous to a screen reader user in a way it isn't to a sighted user looking at the surrounding form — "Submit application" costs nothing and fixes it.
  • Voice stays constant; tone adapts. Don't confuse the two — the brand personality doesn't change between a success message and an error message, but how urgently and empathetically it comes across should.

Limitations

  • Benchmarks (comprehension rates, character counts) are English-language research; adapt reading-level targets for other languages, where word/character counts don't translate directly
  • The four-phase edit process assumes there's existing draft text to work from — for entirely new copy, start with the interface-element patterns instead
  • Accessibility guidance here covers UX writing specifically (labels, error structure, link text) — it's not a substitute for a full accessibility audit of the interface itself

$Related Playbooks

Creative & Design

UI Designer

Extract design systems from reference UI images and generate implementation-ready design prompts — turn a screenshot into a consistent system you can build against.

15 minutes
Intermediate
Creative & Design

UX Copy Writer

Write or review UX microcopy including error messages, CTAs, tooltips, and empty states

10 minutes
Intermediate
Creative & Design

Accessibility Auditor

WCAG 2.1 AA accessibility audit for designs, prototypes, and web pages

10 minutes
Intermediate
Creative & Design

AI Presentation Generator

Generate complete presentations with AI - from outline to polished slides

10 minutes
Intermediate
Creative & Design

AI Design Director System

Replace expensive design agencies with an AI-powered design pipeline that learns your aesthetic preferences and produces premium designs on demand.

2 hours
Advanced
Creative & Design

Canvas Design

Create museum-quality visual art and design philosophy documents in PNG and PDF formats using Anthropic's canvas-design principles.

10 minutes
Advanced
Creative & Design

Design Critique Reviewer

Structured design feedback across usability, visual hierarchy, and consistency

10 minutes
Intermediate
Creative & Design

Design Handoff Generator

Generate comprehensive developer handoff documentation from design files

10 minutes
Intermediate
Creative & Design

Design System Manager

Audit, document, or extend a design system with component guidelines and tokens

10 minutes
Advanced
Creative & Design

Diagram & Flowchart Creator

Create professional diagrams using Mermaid, PlantUML, and other text-based diagram tools. Generate flowcharts, sequence diagrams, architecture diagrams, and more.

10 minutes
Advanced
Creative & Design

HTML Presentation Builder

Build interactive HTML presentations with animations, code highlighting, and speaker notes using reveal.js.

10 minutes
Advanced
Creative & Design

HTML to PowerPoint Converter

Convert HTML/Markdown to PowerPoint presentations using Marp

10 minutes
Advanced

Browse all Creative & Design playbooks →