Sticker avatar
Sticker avatar is an avatar cut out like a die-cut sticker. A white paper edge follows the shape of a transparent image, each sticker sits at its own slight angle, and status is a small sticker of its own on the corner.
Anatomy
A square layout box named as an image. The cut is drawn once on a canvas when the image loads, then shown as a plain image past the box's edges.
Variants and states
Usage
- 01Use it where people and personality are the point: profiles, parties, member lists, a small group in a chat header.
- 02Keep the layout box tight. The edge and tilt are drawn outside it, so leave a few pixels of room around stickers in a dense list.
- 03Turn off
tiltwhere stickers line up in a grid people scan, such as a table of members. Keep it in stacks and profiles, where it reads as hand-placed. - 04Use
pixelatedfor pixel art, so it scales with hard edges instead of blurring.
In a list
At 32px the edge and tilt are small enough for a dense list. Each row carries
group/sticker, so hovering anywhere on it lifts the sticker.
Tokens
--sticker-edge is white and --sticker-ink is near-black in both themes.
That's deliberate: a sticker is paper, and paper doesn't change color when the
room gets dark. A hairline and a shadow keep the white edge visible on a light
page.
The status sticker is the exception. Its disc is the page color, because it's
colored with the status tokens: success for present, warning for away and
muted-foreground for offline. Set statusColor={false} to draw the marks
in the foreground color instead.
Best practices
Accessibility
- 01The root is
role="img", named bynameand the status: “Ana Ruiz, Away”. PassstatusLabelto translate the status. - 02Inside a row or button that already says the name, set
aria-hiddenon the sticker so the name isn't read twice. - 03Status never relies on color alone. Each state has its own shape, and its label is in the accessible name.
- 04The hit area and layout are the square box, not the cut, so an odd shape is no harder to click.
- 05With reduced motion the sticker keeps its tilt and shadow but doesn't lift.
Related components
- ReactionsLets people respond to content with an emoji in one tap.
- Pixel snailA one-color pixel snail that crawls on a loop while something loads.
References
- Telegram sticker guidelines, which recommend a white stroke and a shadow
- WhatsApp sticker requirements, which ask for an 8px white stroke on 512px
- WWDC23: Lift subjects from images in your app, for how Live Stickers cut the subject out
- WCAG 1.4.11 Non-text contrast and 1.4.1 Use of color