01 Avatar — circle (user) / squircle (app) product implementation · Avatar.tsx
Avatars come in two shapes: circle for users, squircle for apps (OAuth integrations, ecosystem). Initials are the fallback — derive a stable background from the username hash so the same user always lands on the same color.
Sizes — sm 24 · md 32 · lg 48 · xl 72
A
A
AT
AT
Palette — derived from user hash, stable per identity
AT
EN
M
CK
SD
JK
PT
App avatars — squircle
P
V
P
N
02 Presence — online / away / offline
The dot in the bottom-right reads at any size. Reserve green for active session, yellow for idle, gray for offline. Never red — that's reserved for destructive / failed states.
AT
EN
M
CK
03 Stack — group / shared with
Overlapping avatars with a 2px ring to separate them from the background. Past 4 visible faces, collapse the remainder into a +N chip.
AT
EN
M
CK
SD
04 User chip — share recipients
Compact representation of a tagged user — used in share fields and audit logs. Clickable × removes them. Always preceded by the avatar.
KA
kai
IR
iris
JU
juno
05 Friend / member rows
KA
kaiSharing files with you
★ pinned
IR
irisYou're sharing 4 folders
manage
JU
junoNo active shares
unfollow