Indicator

A dot's worth of status: live, idle, attention.

v1.0.0·Updated Jul 8, 2026 · 10:45
Live Demo — Fully Interactive
One dot, four meanings
OnlineIdleBusyOffline
Configuration
Status
Motion
Label
Online
<Indicator status="online" label="Online" />
Behavior — The Engineering Contract
PropTypeNotes
statusonline · idle · busy · offlineSemantic colour of the dot
labelstringOptional text beside the dot
pulsebooleanAnimated ring for a live state
ringboolean2px page-colour ring for overlaying media
aria-labelstringRequired when the dot stands alone

An Indicator is a glanceable dot of status — it never carries a number or a word inside it. For counts use a Badge; for a labelled status chip use a Badge with a dot.

Anatomy
AL
1HostThe avatar or label the status belongs to.
2Dot9px status colour, bottom-right, with a page ring.
Do's and Don'ts
✓ Do
Online

Pair the dot with a word when the colour alone could be missed.

✕ Don't
3

Don't put a number in the dot. A counted dot is a Badge.

✓ Do
AT

Give the dot a page-colour ring when it overlaps an avatar.

✕ Don't

Don't stack several dots for one thing. One state at a time.

In context: Examples
A · Presence
GH

Online presence on an avatar in chat and member lists.

B · Live
Live now

A pulsing dot marks a stream or a real-time feed.

C · System status
API operationalDegraded

Service health rows on a status page.

Measurements & Tokens
TokenValueRole
--ind-size9pxDot diameter (12px on media)
--ind-online#1FA35CAvailable / operational
--ind-idle#E8A93AAway / degraded
--ind-busy#EB4A4FDo-not-disturb / down
--ind-offline#565A62Offline / ended
--ind-ring2px page bgSeparates the dot from media
Code
<span class="o-ind-row">
  <span class="o-ind o-ind--online"></span> Online
</span>

<span class="o-ind o-ind--live"></span>            <!-- pulsing -->

<span class="o-ind-anchor">
  <Avatar />
  <span class="o-ind o-ind--online o-ind--ring"></span>
</span>