Avatar

Humans and agents are told apart by shape, not colour: a circle for a person, a 4px square with a bot glyph for an agent. Image first, initials on a name-hashed hue second; a presence ring outside the shape carries a slow pulsing glow. The cards an agent hands back live under Agent cards in the composites.

<ActorAvatar name="Niek Heezemans" src={photoUrl} status="online" />

Sizes

16 xs (table rows and other inline places, no text) · 32 sm (provenance lines, hover-card headers) · 40 default (cards, headers, aligned to the control scale) · 48 lg (profile, hover-card body). Same fallback rules for both kinds.

NHNHNHNH

Notification badge

AvatarBadge is a plain dot marker, independent of presence.

NH

Image first, initials second

Radix shows the fallback until the image loads, then swaps to it — image first, initials second. A broken src never resolves, so the initials stay.

SCAO

Initials from name

Background hashed from the name (FNV-1a % 6 into the six chart hues) — the same person is always the same colour, drawn as a small gradient from a darker top-left to a lighter bottom-right.

SCchart-3
NHchart-1
AOchart-4
LRchart-5
PNchart-1
TSchart-3
YTchart-2
Zchart-4

Presence ring

online success · away warning · busy danger · offline border-strong. Scales in once on mount, then a slow glow pulses out from the ring in its own colour; both held under reduced motion.

OnlineSCAwayNHBusyAOOfflineLROnlinePNOnlineTSBusy

Group of five, max three

AvatarGroup caps at three by default and folds the rest into a +N count; pass names and the count says who it hides, on hover and to a screen reader. Overlap rings are surface, the card underneath. A member's presence ring never renders in a group — the overlap ring already marks the edge.

OnlineSCNHAO
SCNHAOLRPN