Home/Components/Status indicator

Status indicator

A small coloured dot + label. The single most repeated micro-component — it tells the operator what state a row is in at a glance.

Stable .status-dot Canonical labels onlyMono-friendly

Tones

Four canonical tones plus a ring variant for "unread" or "open".

Needs input Running Completed Idle Not started
All status tones.status-dot.*

Canonical labels

Five words. Never invent a new one.

LabelToneMeaning
Needs inputattentionThe user owes the system something. Action required.
RunningprogressThe system is working on it. No user action needed.
CompletedokDone. Successful. Past tense.
IdleidleStarted but currently paused or waiting.
Not startedringCreated but no work has begun.

In rows

The way it normally appears — inside a list or table row.

Shipment SH-2839
Late settlement · 4 days overdue
4.20 kg
Shipment SH-2841
In transit · arriving 04 Jun
4.20 kg
Shipment SH-2837
Settled 28 May · paid in full
3.82 kg

Anatomy

PropertyValueNotes
dot6 × 6 px
radius50%Ring variant: 1.5 px border + transparent fill
gap6 pxBetween dot and label
font500 13 / 1.4 sansSame colour as the dot
canonical5 labelsNever invent new ones

Do & don't

Do

Always pair the dot with text. A colour alone fails accessibility tests.

Don't

Mix status dots and badges in the same column. Pick one.

Do

Use the ring variant for "Not started" — the empty circle reads as an unfilled state.

Don't

Add a sixth status label. If the existing ones don't fit, the workflow needs to be broken into steps.

Code

<span class="status-dot attention">Needs input</span>
<span class="status-dot ok">Completed</span>