Updated
Avatar
Avatar shows a person or an entity as a photo, initials or a symbol, with an optional status badge in a corner.
Updated
On this page
Preview
A user or an entity, always circular, here as Type Photo at 6xl with a presence dot. The set ships twelve named portraits.
The disc behind initials and the symbol takes a hue from the person's name, the bottom badge has ten types, and Avatar group is a set of its own. Each has a section below.
Source: the Avatar page of the Appetite UI Figma file, read on October 2, 2026.
Which sizes does Avatar come in?
Avatar has nine sizes, from 20 to 80, and the disc is the only thing the axis sets. The acronym ramp follows it, and so does the badge box, which is why the two smallest sizes have almost no room left for one.
The badge box per size is 32, 28, 28, 24, 20, 18, 16, 12 and 12. At base and sm the box is 12, half the disc or more, so leave the badge off there.
Two initials run down to xl, at 16/24. From lg the file prints one, 14 over a 32 disc and 12 at base and sm.
Which types does Avatar have?
Avatar has three ways to fill the disc: Photo takes an image, and Symbol and Acronym are the fallbacks. Both fallbacks sit on a pale disc, so a list of users keeps its rhythm when one of them has no picture.
The symbol is two white ellipses clipped by the disc: a head at 40 percent of the disc and a body 80 by 60 percent, which scale with the circle. The photo is cropped the same way, by percentage, so one rule serves all nine sizes.
The disc follows the Avatar name, and the twelve names share six hues, two names each. Gray is Erik Holmberg and Matteo Ribeiro, blue Maren Lindqvist and Sora Tanaka, sky Kai Andersen and Idris Yılmaz, purple Priya Sharma and Inés Cardoso, red Noemi Varga and Amara Diallo, yellow Leila Okonkwo and Zora Petrović.
The default name is Maren Lindqvist, so the default disc is blue with the initials ML. The disc is colors/hue/200 and the initials colors/hue/900, the same in light and dark.
Which status badges can an Avatar show?
Avatar has two independent status booleans, Top for an action or a verification and Bottom for presence or an activity. Both badges wear a ring in the surface color so they read against any photo.
Only Verified breaks the circle: it is an eight point seal, one rounded square over the same square turned 45 degrees. The top and presence badges carry dropShadow/xs, and the activity badges carry none.
The presence row runs on the photo, where the ring keeps a green dot on a light shoulder readable. Presence is color alone, so say it in text as well, for example in the row label.
Bottom Status has ten types. Online, Offline, Busy and Away are presence dots, and Comment, Mention, Assigned, Completed, Due and Add are activity icons for inbox rows.
An activity icon is white on a state color: information, feature, away, success, highlighted and brand. It fills its box, so it is larger than a presence dot on the same avatar.
Add is for the person's own entry, such as the You avatar in a story row.
How do I show several people at once?
Use Avatar group, an overlapping stack for shared context: the people in a project, a chat or a booking. Cap it at five and then show the number.
Avatar group is its own set with Size xs, md and lg. It stacks Photo avatars at base, lg and xl, overlapping them by 4, 6 and 8, each with dropShadow/xs and an outside stroke in border/white-0 of 1, 2 and 2 so the edge of the avatar in front stays clean.
A circle of the same size in bg/soft-100 carries the count in text/soft-500, at a stroke of 1 in every size. The set draws twelve, ten and eight avatars before its +5, so hide the layers past the fifth to keep the cap.
Properties
Three variant axes make the Avatar set 324 variants wide, and two booleans switch the badges on. The status badges and the group are their own sets.
| Property | Type | Default |
|---|---|---|
Size | 6xl, 5xl, 4xl, 3xl, 2xl, xl, lg, base, sm | 6xl |
Type | Photo, Symbol, Acronym | Photo |
Avatar | Maren Lindqvist, Kai Andersen, Erik Holmberg, Zora Petrović, Noemi Varga, Sora Tanaka, Priya Sharma, Idris Yılmaz, Amara Diallo, Inés Cardoso, Leila Okonkwo, Matteo Ribeiro | Maren Lindqvist |
Top Status | Boolean | false |
Bottom Status | Boolean | false |
| Set | Property | Options | Default |
|---|---|---|---|
_Avatar Status - Top | Type | Verified | Add | Delete | Check | Verified |
_Avatar Status - Bottom | Type | Online | Offline | Busy | Away | Comment | Mention | Assigned | Completed | Due | Add | Online |
Avatar group | Size | xs | lg | md | lg |
The status sets are internal building blocks of Avatar. Switch a badge on with the two booleans and change its type on the nested instance.
Tokens
Every value the component reads, resolved through its aliases to the primitive underneath.
| Token | Light | Dark | Applied to |
|---|---|---|---|
colors/gray/200 | #D1D1D6 | #D1D1D6 | Disc, Erik Holmberg and Matteo Ribeiro |
colors/gray/900 | #242427 | #242427 | Initials, Erik Holmberg and Matteo Ribeiro |
colors/blue/200 | #BEDBFF | #BEDBFF | Disc, Maren Lindqvist and Sora Tanaka |
colors/blue/900 | #0D2673 | #0D2673 | Initials, Maren Lindqvist and Sora Tanaka |
colors/sky/200 | #C0EAFF | #C0EAFF | Disc, Kai Andersen and Idris Yılmaz |
colors/sky/900 | #18658B | #18658B | Initials, Kai Andersen and Idris Yılmaz |
colors/purple/200 | #CAC0FF | #CAC0FF | Disc, Priya Sharma and Inés Cardoso |
colors/purple/900 | #3D1D86 | #3D1D86 | Initials, Priya Sharma and Inés Cardoso |
colors/red/200 | #FFC9C9 | #FFC9C9 | Disc, Noemi Varga and Amara Diallo |
colors/red/900 | #82181A | #82181A | Initials, Noemi Varga and Amara Diallo |
colors/yellow/200 | #FEE685 | #FEE685 | Disc, Leila Okonkwo and Zora Petrović |
colors/yellow/900 | #7B3306 | #7B3306 | Initials, Leila Okonkwo and Zora Petrović |
static/static-white-0 | #FFFFFF | #FFFFFF | Symbol glyph and top badge icons |
text/on-color/strong | #FFFFFF | #FFFFFF | Activity badge icons |
bg/white-0 | #FFFFFF | #0E0E0F | The ring behind every badge |
border/white-0 | #FFFFFF | #0E0E0F | The outside stroke of every circle in a group |
bg/soft-100 | #E9E9EA | #48484A | Group overflow circle |
text/soft-500 | #8E8E93 | #AEAEB2 | Group overflow count |
state/success/base-500 | #22C55E | #16A34A | Online, Completed, and the Check badge |
state/error/base-500 | #FB2C36 | #FB2C36 | Busy, and the Delete badge |
state/away/base-500 | #FE9A00 | #E17100 | Away, Assigned |
state/faded/base-500 | #8E8E93 | #636366 | Offline, and the top Add badge |
state/verified/base-500 | #47C2FF | #35ADE9 | Verified |
state/information/base-500 | #155DFC | #155DFC | Comment |
state/feature/base-500 | #7D52F4 | #693EE0 | Mention |
state/highlighted/base-500 | #FB4BA3 | #E9358F | Due |
brand/base | #155DFC | #2B7FFF | The bottom Add badge |
The disc hues are primitives, so they hold the same two values in dark as in light, and everything else on the component switches. Radius is dimensions/radius/full on the disc and on every badge.
How does Avatar differ on iOS and Material 3?
Neither platform ships an avatar component. Appetite UI Avatar is one circle in nine sizes with six fallback hues, status badges at the top and bottom and a stack, and the file draws no iOS or Material 3 counterpart.
| Appetite UI | iOS counterpart | Material 3 counterpart | What differs |
|---|---|---|---|
| Avatar | None. iOS draws contact photos inside its own list rows. | None. Material 3 list items accept a leading avatar in code, the kit draws none. | Appetite UI sets the disc from 20 to 80, falls back to initials or a symbol on a hue taken from the name, and adds up to two badges. The List component takes a Leading Avatar at xl and base, and Chip has an Avatar type. |
| Avatar group | None | None | A stack of up to five with a count, in three sizes, with an outside stroke so overlaps stay clean. |
An avatar that opens a profile is a tap target, and at sm (20) and base (24) it is far under the minimum of 44 pt on iOS and 48 dp on Android, the value of platform/min-touch-target in the Platform collection. Extend the hit area, not the picture.
How should I use status badges?
Use one badge at a time, presence at the bottom and an action or a mark at the top.
Do
One badge at a time, and give it the corner that fits its job. Presence belongs at the bottom, an action or a mark belongs at the top.
Don't
Do not hang badges on the small sizes. At 20 the badge box is 12, more than half the disc, and two of them leave nothing of the avatar to read.
Give a photo avatar the person's name as its text alternative, and leave the alternative empty when the name is printed right beside it. A badge that is only a color, such as Online or Busy, needs the same words somewhere in text.