Buttons
Button labels are the densest writing surface in the product. They have to convey an action in one to three words and survive on small screens.
- Start with a verb if the button does something. Say what.
- Be specific when context isn't obvious. Save is fine in a dialog called "Edit dashboard". Standalone, write Save changes.
- Use Sentence case. Never Title Case.
- Match the verb to the noun in the result. Delete dashboard, not Delete.
Dialogs
A dialog interrupts the reader. Earn the interruption: title says what's about to happen, body says the consequence, primary button says the action.
Empty states
Empty states aren't decorative. Each one is a chance to teach the reader what this surface is for and what they can do next. One short sentence explaining what's missing, one button moving them forward.
Loading and progress
- For loads under 1 second, no message — a spinner is enough.
- For loads 1–10 seconds, name what's loading: "Loading dashboard…".
- For loads over 10 seconds, explain why and (if possible) show progress: "Importing 12,400 events. This usually takes a minute."
- Use … (single character) at the end of in-progress copy, not three dots.
Confirmation messages
Confirmations close a loop. They confirm the action, name what changed, and offer links to view more details, or undo the action if relevant.