Avatar

People and teams as compact, stackable identity marks.

v1.0.0·Updated Jul 8, 2026 · 10:45
Live Demo — Fully Interactive
A photo, cover-fit and clipped — five sizes
Team memberTeam memberTeam memberTeam memberTeam member
Rounded-square variant
Configuration
Content
Size
Shape
Status
AL
<Avatar initials="AL" size="lg" status="online" />
Behavior — The Engineering Contract
PropTypeNotes
src / namestringPhoto, then initials from name, then icon
sizexs · sm · md · lg · xl24 / 32 / 40 / 56 / 76px
shapecircle · squareCircle by default; square for brands
statusonline · idle · busyPresence dot with a page-colour ring
max (group)numberVisible avatars before a +N tile

An Avatar identifies a person or team. For a status dot alone use an Indicator; for a brand mark use the Logo.

Anatomy
AL
1ContentImage, initials or icon — in that order.
2ContainerCircle (or rounded square), clips the content.
3StatusOptional presence dot with a page ring.
Do's and Don'ts
✓ Do
AL

Use one or two initials from the name when there is no photo.

✕ Don't
ADA L.

Don't cram a full name in. Two characters, sized to read.

✓ Do
ATGH+3

Cap a group with a +N so the row never sprawls.

✕ Don't
ALATGHKJMRPT

Don't line up a dozen full avatars. Overlap and cap them.

In context: Examples
A · List row
ALAda Lovelace

Leading a list or table row, size SM or MD.

B · Profile header
AT

Large XL avatar with presence on a profile page.

C · Assignees
GHKJ+2

Stacked assignees on a task or project card.

Measurements & Tokens
TokenValueRole
--av-xs … xl24 / 32 / 40 / 56 / 76pxThe five sizes
--av-radius50% · 20%Circle or rounded square
--av-base#26262BNeutral fallback fill
--av-warm#FF7A00 @18%Tinted initials, one of four hues
--av-ring2px page bgGroup overlap and status ring
--av-overlap-11pxGroup stacking offset
Code
<span class="o-avatar o-avatar--md">
  <img class="o-avatar__img" src="/ada.jpg" alt="Ada Lovelace" />
</span>

<span class="o-avatar o-avatar--md o-avatar--warm">AL</span>   <!-- initials -->
<span class="o-avatar o-avatar--md"><UserIcon /></span>         <!-- fallback -->

<span class="o-avatar-anchor">
  <span class="o-avatar o-avatar--lg">AL</span>
  <span class="o-ind o-ind--online o-ind--ring"></span>
</span>