Microcopy
The four words on a button matter more than the four hundred on the page
Specific action labels
Replace Submit, OK, Continue, Done, and Yes with what the click does.
| Generic | Specific |
|---|---|
| Submit | Send invitation |
| OK | Save changes |
| Continue | Add to cart |
| Done | Publish |
| Confirm | Delete project |
| Yes | Move to trash |
The pattern is verb + object: Save invoice, Send message, Delete file.
Don't surface internals. Send notification, not Trigger webhook.
Actionable error messages
An error has three jobs: what happened, why, and what to do next.
| Bad | Better |
|---|---|
| Network error. | Couldn't reach the server. Check your connection and try again. |
| Validation failed. | Your password needs at least one number. |
| Permission denied. | You're not an admin. Ask the team owner to grant access. |
| Invalid email. | That doesn't look right. Did you mean jane@example.com? |
When you don't know what happened, still give a recovery path: Something broke on our end. Try again in a few minutes.
Don't blame the user. That email doesn't match our records, not You entered an invalid email.
Active voice
| Passive | Active |
|---|---|
| The CLI will be installed. | Install the CLI. |
| Your changes have been saved. | Saved. |
| An email was sent. | We sent an email. |
| Files can be uploaded by dragging. | Drop files to upload. |
Use numerals: 3 unread messages, not three unread messages.
Drop Please. Save changes is direct. Please save your changes is condescending.
Loading ellipsis
Follow-up steps (dialog, more data, more input) get an ellipsis: Rename…, Move to…, Save as….
In-progress states: Loading…, Saving…, Searching…. Immediate actions: Save, Delete, Bookmark. No ellipsis.
Use … (U+2026), not three periods.
Common mistakes
- "OK" and "Cancel" on destructive actions. Name the action: Delete project / Keep project.
- Same error message for every failure. Something went wrong flattens all problems.
- Toast with error that auto-dismisses. Persist errors near the field.
- Three periods instead of
…. Renders inconsistently. - Ellipsis on immediate actions. Save… on a button that saves immediately is misleading.
- "Your data is stored securely." Passive. Better: Encrypted at rest.
- "Would you like to delete this item?" Better: Delete this item?