The rules that hold the voice together.
Apply these to every piece of UI copy unless a component's own rules say otherwise. They're not style preferences — they're what keeps the product readable at speed.
How sentences should read.
The mechanical rules that keep copy sounding human. Short, active, present, specific.
Active voice
Subject → verb → object. Clear about who's doing what.
- Click Submit to send your reply.
- Submit should be clicked to send your reply.
Present tense
Describe what's happening now, not what has finished.
- Your file is uploading.
- Your file was uploaded.
Use contractions
They sound like a person, not a legal notice.
- Don't submit
- You're all set.
- Do not submit
- You are all set.
One idea per sentence
Stacked clauses push comprehension off a cliff.
- Save your changes. Then close the tab.
- If you want to save your changes, which are currently unsaved, you should save them before you close the tab, or you'll lose them.
No double negatives
The reader has to decode two flips just to get to yes.
- Save your changes.
- Don't fail to save.
How words look on the page.
Rules that keep the page quiet — so the copy does the talking, not the styling.
Sentence case, everywhere
Labels, titles, buttons, tags — first letter capitalised, rest lowercase.
- Save and close
- Add to queue
- Save And Close
- Add To Queue
No end punctuation on titles or labels
Titles aren't sentences. A full stop adds weight without meaning.
- Delete contact
- Delete contact.
Limit exclamation marks
One per screen, only for genuine celebration.
- You're all set!
- Changes saved
- Error!
- Password required!
No ALL CAPS
Reserved for real acronyms. CAPS feel like shouting.
- New
- Beta
- API key
- NEW
- BETA
- SAVE CHANGES
Say what you mean.
Readers scan UI, they don't read it. The first three words should carry the meaning.
Avoid jargon
Every technical term is a trap for the non-technical reader.
- Log in with your username and password.
- Authenticate your credentials.
Don't describe the interface
The user knows they're looking at a panel. Name the destination, not the chrome.
- Go to Settings.
- Go to the Settings panel.
Frame around user goals
Start with what the reader is trying to do, not what the system failed at.
- This site may be insecure.
- Due to an HTTPS network security issue, this site is being blocked.
Progressive disclosure
Lead with what's needed now. Offer detail only when asked.
- Couldn't send the email. Retry →
- Your message couldn't be sent because the SMTP server timed out after 30 seconds…
Sound helpful, not apologetic.
Tone shows up in the verbs you pick and the things you choose not to say.
Don't apologise unnecessarily
Reserve sorry for real errors, not routine friction.
- We couldn't upload your picture.
- Whoops! We can't upload your picture.
Don't blame the user
Describe the situation. The reader doesn't need to be scolded.
- This field needs 8 characters.
- You didn't enter enough characters.
Specific verbs over generic
Specific verbs answer the reader's next question in a word.
- Delete
- Save changes
- Send invite
- OK
- Submit
- Go
Verb-led button labels
Buttons are actions. Lead with the verb.
- Save
- Delete report
- Add team member
- Team member addition
- Report deletion
One word per concept.
Small variations cost trust. Pick a term and hold the line across the product.
One name per thing
Swapping terms mid-journey makes the reader wonder if it's the same feature.
- Always 'Sign up'
- Sometimes 'Register', sometimes 'Create account'
Use '&' sparingly
Ampersands jar in labels. 'And' reads smoother.
- Save and close
- Save & Close
Next
Component patterns
How these principles land on specific components — buttons, toasts, modals, and more.