UI text patterns

The patterns we ship most often.

Buttons

Button labels are the densest writing surface in the product: one to three words that must survive on a small screen.

Dialogs

A dialog interrupts the reader, so earn the interruption: the title says what is about to happen, the body says the consequence, the primary button says the action.

Empty states

One short sentence explaining what's missing, one button moving the reader forward. See the empty state pattern for the three kinds and what each has to do.

Loading and progress

DurationWhat to say
Under 1 secondNothing. A spinner is enough
1–10 secondsName what's loading — "Loading dashboard…"
Over 10 secondsExplain why, and show progress if you can — "Importing 12,400 events. This usually takes a minute."

Use … — the single ellipsis character — at the end of in-progress copy, not three periods.

Confirmation messages

Confirmations close a loop. Confirm the action, name what changed, and offer a link to view detail or undo where undo is real.

Terminology

Use the canonical spelling and casing for AppSignal concepts. The distinction that catches people most often:

formmeans
AppSignalthe brand
Appsignalthe code class or module
appsignalthe published package name

pm:design/ux/terminology.md holds the full A–U dictionary — Action, Agent, Allocations, Namespace, Sample, Trigger, Impact and the rest. It has no maintainer, so treat it as a starting point rather than a source; a canonical terminology page is worth authoring here.