Treat <good-example> as patterns to follow; <bad-example> as patterns to avoid.
- Goals
Optimize for:
-
Clarity — user instantly understands what will happen
-
Completion — user finishes without help
-
Confidence — user feels safe and in control
-
Character — human and on-brand, without hurting 1–3
Microcopy motivates before the click, guides during, confirms after.
- Workflow
Decide the one thing: Each piece of copy has one job—explain, reassure, instruct, or encourage. Cut everything else.
Draft, then cut: Write naturally, then remove filler. One idea per sentence.
Check for friction: Does this answer the user's likely question here? Could we fix the UX instead of adding words?
- Voice & Tone
-
Talk to one person. Use "you" and "we."
-
Be honest. No dark patterns, no fake urgency.
-
Match emotion to moment: calm in errors, upbeat in success, neutral in setup.
-
Humor only where stakes are low. Never joke about money, health, identity, or access.
- Patterns by Element
Buttons & CTAs
Button text = action + outcome. Describe what happens, not the system action.
Click triggers (text near buttons) tip the scale:
When buttons appear together, make primary vs secondary obvious:
Forms
-
Labels stand alone; don't rely on placeholders.
-
Use examples for format, not long explanations.
-
Explain why you need sensitive info.
Errors
Say what went wrong and how to fix it. Use calm tone; take blame when it's the system's fault.
Avoid internal codes unless needed for support.
Success States
Confirm what succeeded. Tell users what happens next.
Avoid empty "Success!" messages with no detail.
Empty States
Include: (1) what this space is for, (2) why it's empty, (3) one clear next step.
Loading & Progress
Set expectations. Suggest safe parallel actions when possible.
404s & System Errors
Acknowledge the problem, take responsibility, offer paths forward.
Permissions & Risky Actions
Say why you need something and what you'll do with it. Be explicit about risk and reversibility.
Sign Up & Login
Sign up: Welcome, don't label.
Login: Acknowledge return.
Password recovery: Reassure.
- Quick Reference
Instead of Write
"Invalid input" "Try a different format"
"An error occurred" "Something went wrong"
"User not found" "We don't recognize that email"
"Required field" "We need this to continue"
"Submit" "Send message" / "Get started"
"Please wait" "Working on it…"
"Operation completed" "Done!"
"Unauthorized" "You'll need to log in first"
"Click here" Descriptive link text