AvatarGroup
Stacks avatars into an overlapping row with an optional “+N” overflow chip — the canonical way to show a set of collaborators, assignees or participants compactly. Data-driven: pass an items array of Avatar props and the group propagates a shared size and a cut-out ring.
Playground
AL
AT
GH
+3
Loading...
Loading syntax highlighting...01 Examples
Basic stack
Pass an items array of Avatar props. Each entry becomes an avatar, overlapped with a cut-out ring so the set reads as one unit.
AL
AT
GH
KJ
Loading...
Loading syntax highlighting...Overflow — max
When items exceeds max, the group renders max − 1 avatars plus a single “+N” chip, so the total rendered count is exactly max. Here six people cap to four slots.
AL
AT
GH
+3
Loading...
Loading syntax highlighting...Sizes
size is applied to every avatar and the overflow chip alike — sm, md (default), lg, xl (plus xs and 2xl).
sm
AL
AT
GH
+3
md
AL
AT
GH
+3
lg
AL
AT
GH
+3
xl
AL
AT
GH
+3
Loading...
Loading syntax highlighting...02 Appearance
Spacing
spacing controls the overlap — tight packs the stack, loose spreads it out. normal is the default.
tight
AL
AT
GH
+3
normal
AL
AT
GH
+3
loose
AL
AT
GH
+3
Loading...
Loading syntax highlighting...Identity colours
Set randomColor on an item to derive a deterministic background from its name — the same name always maps to the same colour, so people without a photo stay visually distinct. Give an item a src instead and it renders that photo, wearing the same cut-out ring; items without one keep their initials.
AL
AT
GH
BL
Loading...
Loading syntax highlighting...03 Accessibility
- The stack is a
role="group"with a localizedaria-label(e.g. “Avatar group”). Override it with your ownaria-labelto name the specific set — “Project collaborators”, “Assignees”. - Each avatar shows its initials (or photo) from
name/src; the group'saria-labelgives the whole set its context for assistive tech. - The
+Noverflow chip carries its ownaria-label(+2,+9), so the hidden count is announced rather than silently dropped. - The overlap ring is drawn with
borderColor(default the base surface). It is decorative — set it to match whatever surface the group sits on so the cut-out effect holds.
04 API Reference
11 props 1 required
No matching properties |
No matching properties
05 Installation
Import
Loading...
Loading syntax highlighting...