Voice
How the system sounds when it talks — rules and examples for headlines, microcopy, and more.
CTAs
Calls to action — the primary verbs that move users forward.
- Lead with the value, not the action. "Get the spec" not "Download PDF".
- One primary CTA per view. Multiple primaries dilute attention.
- Match the CTA to the conversion stage. "Start free trial" early; "Book a demo" later.
- Avoid generic verbs (Submit, Continue) when a specific verb tells the user what they get.
- Test, but commit — don't ship three near-identical variants of the same CTA on different pages.
Good
Start free trial
Bad
Sign up
Good
Get the spec
Bad
Download
Good
Book a 20-min demo
Bad
Schedule meeting
Good
Browse components
Bad
View library
Empty states
What to say when there's nothing to show — the moment a user wonders if it's broken.
- Confirm there's no data, not "no results found".
- Explain why the state is empty when the cause matters (filter applied, no data yet, etc.).
- Give the user a single next step — don't dead-end them.
- Use the empty state as onboarding when relevant ("First time here? Try X").
- Skip the illustration unless it adds meaning. A good sentence beats a generic graphic.
Good
No components match these filters. Clear filters or browse all.
Bad
No results found.
Good
You haven't created any projects yet. Start with a template?
Bad
0 results
Good
Search returned nothing. Try a different keyword or check spelling.
Bad
Empty result set.
Good
All caught up. New activity will appear here.
Bad
No notifications.
Error messages
How to acknowledge a failure, explain what happened, and offer a path forward.
- Lead with what happened in plain terms. Skip the apology.
- Tell the user what to do next — never end on the failure.
- No technical jargon unless the audience is technical.
- Inline errors live next to the field they refer to. Toasts are for transient failures.
- Never blame the user. Use "this didn't work" not "you didn't enter".
Good
That email is already in use. Try signing in instead.
Bad
Validation failed — email exists.
Good
We couldn't reach the server. Check your connection and try again.
Bad
Network error 503.
Good
This file is too large (max 5MB). Try compressing it.
Bad
ERROR — invalid input
Good
Double-check the password and try again.
Bad
You entered the wrong password.
Headlines
How to write headings that carry weight without shouting.
- Write in sentence case, not title case.
- Prefer nouns and verbs over adjectives. Remove the first adjective; if the headline still works, remove it.
- Keep under 10 words. If you need more words, you need a subhead instead.
Good
A design system built for AI agents.
Bad
The incredibly powerful, AI-native, next-generation design system of the future.
Good
Ship faster. Ship with taste.
Bad
We're proud to announce our groundbreaking new initiative.
Microcopy
Button labels, link text, form hints — the words you hardly notice.
- Verbs over nouns. "Send" not "Sending". "Save changes" not "Submit form".
- Avoid "click" and "tap" — name what happens, not the gesture.
- Match user goals, not system mechanics. "Get started" not "Initialize account".
- One verb per button. "Save & exit" is fine; "Save, validate, and continue" is not.
- Sentence case for buttons; lowercase for inline links.
Good
Save changes
Bad
Submit
Good
Try the demo
Bad
Click here to view interactive demonstration
Good
Sign in
Bad
Log into account
Good
Continue
Bad
Click Continue button below
Onboarding copy
The first words a user reads — welcome, setup, and the path to first value.
- Skip the hello. Open with the first thing they need to do.
- Show progress (step 1 of 3) when there are more than 2 steps.
- Make the path optional when you can. Skippable onboarding respects experienced users.
- Reduce input. Each form field is friction; defer non-critical ones.
- Set expectations on length. "Takes 2 minutes" is a contract.
Good
Step 1 of 3 — name your workspace
Bad
Welcome! Let's get started by creating your workspace.
Good
We need three things to set you up. Takes 2 minutes.
Bad
Hi there! Welcome to our platform. We're excited to have you join us.
Good
Add a teammate (optional — you can do this later)
Bad
Please add a teammate to continue
Good
You're in. Try copying a bundle into your AI agent.
Bad
Setup complete. Click here to view the dashboard.