Button labels should name the reward, not the mechanic. "Create my free account" feels like a gift; "Submit" feels like a chore — same action, different conversion.
Turn errors into help. "Invalid input" tells the user nothing; "That email's taken — want to log in?" names the problem and offers the next move.
Empty states are onboarding, not dead ends. Instead of a blank inbox, show the first step the user can take right now.
Placeholder text is not a label. It vanishes the moment they start typing, leaving fields unidentified — keep a persistent label above the input.
Write like a person. No real human says "operation failed" — match the tone a helpful colleague would use.
Copy carries as much weight as layout: labels, errors, empty states, and tone shape whether the interface feels usable or hostile.
Do / Don't
Do: Label actions with the reward the user gets ("Create my free account"), not the system verb
Do: Turn error messages into a next step ("That email's taken — want to log in?")
Do: Fill empty states with the first useful action, not a blank screen
Don't: Rely on placeholder text as a stand-in for a persistent field label
Don't: Ship system-speak like "Invalid input" or "operation failed"
The Design System Blueprint
An 11-page visual guide to consistent, scalable UI: colors, typography, spacing, components, motion.