Skip to content

Status Indicator

A small coloured dot indicating presence or system state. Use alongside avatars, list items, or service monitors.

Preview

Online
Away
Busy
Offline

Sizes

Small (8 px)
Default (10 px)
Large (12 px)

Variants

StatusColourUse case
OnlineGreenUser is active, service is running
AwayAmberUser is idle, service degraded
BusyRedUser is in a meeting, service down
OfflineGreyUser is disconnected, service stopped

Props

PropTypeDefaultDescription
status'online' | 'away' | 'busy' | 'offline'--Status type
size'sm' | 'md' | 'lg''md'Dot diameter
labelstring--Accessible label (required)

Code example

React

tsx
import { StatusIndicator } from '@thepace/lexicon/components';

<StatusIndicator status="online" label="Online" />
<StatusIndicator status="busy" size="sm" label="Do not disturb" />

Vanilla HTML

html
<span class="lex-status-dot lex-status-dot--online"
      role="status" aria-label="Online"></span>

CSS class reference

ClassPurpose
.lex-status-dotBase dot styles
.lex-status-dot--onlineGreen dot
.lex-status-dot--awayAmber dot
.lex-status-dot--busyRed dot
.lex-status-dot--offlineGrey dot
.lex-status-dot--sm8 px
.lex-status-dot--lg12 px
.lex-status-rowDot + label row

Accessibility

  • Add role="status" and aria-label describing the state.
  • Colour is not the only indicator — always pair with a text label or tooltip.
  • Use aria-live="polite" if the status updates dynamically.

Guidelines

Do

  • Always pair the dot with a text label or tooltip for accessibility.
  • Use alongside avatars to show user presence.

Don't

  • Don't rely on colour alone — always provide a text alternative.
  • Don't use custom colours — stick to the four semantic statuses.

Released under the MIT License. A product by the pace.