Skip to main content
UX text patterns provide tested, reusable structures for common interface elements. Following these patterns ensures consistency and helps users understand what to expect.

Titles

Purpose: Orient users to where they are Format: Noun phrases, sentence case Types:
  • Brand titles (“Settings”, “Dashboard”)
  • Content titles (“Your library”, “Recent orders”)
  • Category titles (“Account”, “Privacy”)
  • Task titles (“Create new post”, “Edit profile”)

Examples

Use sentence case for all titles: “Account settings” not “Account Settings”
Purpose: Enable users to take action Format: Active imperative verbs, sentence case Pattern: [Verb] [object]

Examples

Avoid generic labels like “OK”, “Submit”, or “Click here”. They lack context and don’t work well with screen readers.

Button length targets

  • Ideal: 2-4 words
  • Maximum: 6 words
  • Character count: 15-25 characters

Error messages

Purpose: Explain problem and provide solution Format: Empathetic, clear, actionable Pattern: [What failed]. [Why/context]. [What to do]. Error messages adapt based on type and severity:
When to use: Show as user completes field or on blurPattern: [Field] [specific requirement]Examples:
  • “Email must include @”
  • “Password must be at least 8 characters”
  • “Choose a date in the future”
Timing: Real-time or on field exitLocation: Below or beside the field
When to use: When backend operations failPattern: [Action failed]. [Likely cause]. [Recovery step].Examples:
  • “Payment failed. Your card was declined. Try a different payment method.”
  • “Couldn’t save changes. Connection lost. Reconnect and try again.”
  • “Upload failed. File is too large. Choose a file under 10MB.”
Timing: Immediately after failureLocation: Modal dialog or prominent banner
When to use: Prevent continued use until resolvedPattern: [What's blocked]. [Why]. [Specific action needed].Examples:
  • “Update required. This version is no longer supported. Update now to continue.”
  • “Subscription expired. Your account is paused. Renew subscription to restore access.”
  • “Verification needed. Confirm your email to access features. Check your inbox.”
Timing: On app launch or feature accessLocation: Full screen or large modal
When to use: When requesting device permissionsPattern: [User benefit]. [Permission needed].Examples:
  • “Get notified when orders ship. Enable notifications.”
  • “Find nearby stores. Allow location access.”
  • “Back up your photos. Grant storage permission.”
Timing: When feature is first usedLocation: In context of the feature

What to avoid in error messages

Never use these in error messages:
  • Technical codes without explanation (“Error 403”)
  • Blame language (“invalid input”, “illegal character”)
  • Robotic tone (“An error has occurred”)
  • Dead ends (error with no recovery path)
  • Vague causes (“Something went wrong”)

Success messages

Purpose: Confirm action completion Format: Past tense, specific, encouraging Pattern: [Action] [result/benefit]

Examples

Use past tense to confirm the action is complete: “Changes saved” not “Saving changes”

Length targets

  • Simple actions: 2-3 words (“Changes saved”)
  • Complex actions: 4-6 words (“Profile updated. Your changes are live.”)
  • Maximum: 10-15 words total

Empty states

Purpose: Guide users when content is absent Types:
  • First-use (never had content)
  • User-cleared (user removed all content)
  • Error/no results (search or filter returned nothing)
Format: Explanation + CTA to populate

Examples

Empty states should always include a clear next action. Don’t leave users stuck.

Structure

  1. Headline: Explain why it’s empty (3-6 words)
  2. Description: Provide context (8-12 words)
  3. CTA: Clear action to populate (2-4 words)

Form fields

Form fields need multiple text elements working together:
Purpose: Describe what input is neededFormat: Clear noun phrasesExamples:
  • “Email address”
  • “Phone number”
  • “Date of birth”
Best practices:
  • Always visible (not hidden as placeholder)
  • Sentence case
  • No punctuation at end
Purpose: Explain why information is needed or how to format itFormat: Verb-first, clear purposeExamples:
  • “We’ll use this to contact you about your order”
  • “Choose a password with at least 8 characters”
  • “Enter your code in the format: XXX-XXX-XXX”
Display:
  • Static (always visible) for important requirements
  • On-demand (tooltip/help icon) for optional context
Purpose: Show format example for standard inputsFormat: Example, not instructionExamples:Best practices:
  • Use sparingly
  • Never replace labels
  • Only for standard, recognizable formats
Purpose: Provide additional guidance or constraintsFormat: Brief, specificExamples:
  • “Maximum 160 characters”
  • “Only letters and numbers allowed”
  • “This will be visible to other users”
Timing:
  • Static for important information
  • Dynamic (on focus) for helpful hints

Notifications

Purpose: Deliver timely, valuable information Types:
  • Action-required (intrusive, demands attention)
  • Passive (less intrusive, informational)
Format: Verb-first title + contextual description

Examples

Structure

  1. Title: Action or event (3-6 words)
  2. Body: Context and details (8-12 words)
  3. CTA: Optional action button (2-4 words)

Length targets

  • Title: 35-45 characters
  • Body: 10-15 words
  • Total: 15-20 words maximum
Don’t overuse action-required notifications. Too many interruptions train users to ignore all notifications.