Avatar
Avatarは、ユーザーやエンティティを視覚的に表すコンポーネントです。画像、イニシャル、アイコンのフォールバックをサポートし、ステータス表示やグループ表示にも対応します。
2
Shapes
6
Sizes
4
Status
Radix
Base
Playground
プレビュー
D40px
JD
Size
Shape
Content
Options
Status
<Avatar>
<Avatar.Image src="/avatar.jpg" alt="User" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>Sizes
xsサイズ24px
フォント10px
ドット6px
smサイズ32px
フォント12px
ドット8px
defaultサイズ40px
フォント14px
ドット10px
lgサイズ48px
フォント16px
ドット12px
xlサイズ64px
フォント20px
ドット14px
2xlサイズ80px
フォント24px
ドット16px
| Size | サイズ | フォント | ステータスドット | プレビュー |
|---|---|---|---|---|
xs | 24px | 10px | 6px | JD |
sm | 32px | 12px | 8px | JD |
default | 40px | 14px | 10px | JD |
lg | 48px | 16px | 12px | JD |
xl | 64px | 20px | 14px | JD |
2xl | 80px | 24px | 16px | JD |
Features
Shapes
JD
Circle
JD
Square
<Avatar shape="circle">
<Avatar.Image src="/avatar.jpg" alt="User" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
<Avatar shape="square">
<Avatar.Image src="/avatar.jpg" alt="User" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>Status
JD
online
JD
offline
JD
busy
JD
away
<Avatar status="online">
<Avatar.Image src="/avatar.jpg" alt="User" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
<Avatar status="offline">...</Avatar>
<Avatar status="busy">...</Avatar>
<Avatar status="away">...</Avatar>Fallback
画像が読み込めない場合、イニシャルまたはアイコンがフォールバックとして表示されます。
JD
Image + Fallback
JD
Initials
Icon
{/* Image with fallback */}
<Avatar>
<Avatar.Image src="/avatar.jpg" alt="User" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
{/* Initials only */}
<Avatar>
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
{/* Icon fallback */}
<Avatar>
<Avatar.Fallback>
<User className="w-1/2 h-1/2" />
</Avatar.Fallback>
</Avatar>Avatar Group
複数のアバターを重ねて表示します。maxで表示数を制限できます。
JDEBMKRS
<Avatar.Group>
<Avatar>
<Avatar.Image src="/avatar-1.jpg" alt="User 1" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
<Avatar>
<Avatar.Image src="/avatar-2.jpg" alt="User 2" />
<Avatar.Fallback>EB</Avatar.Fallback>
</Avatar>
...
</Avatar.Group>JDEBMK+2
<Avatar.Group max={3}>
<Avatar>
<Avatar.Image src="/avatar-1.jpg" alt="User 1" />
<Avatar.Fallback>JD</Avatar.Fallback>
</Avatar>
...{/* 5 avatars total */}
</Avatar.Group>API
Component Structure
Avatar— Radix Avatar.ImageProps.FallbackProps.GroupProps
.ImageProps画像.FallbackPropsフォールバック(name・colorized対応).GroupPropsグループ表示(max対応)Props
Avatar
size"default""xs" | "sm" | "default" | "lg" | "xl" | "2xl"アバターのサイズ (24/32/40/48/64/80px)
shape"circle""circle" | "square"形状 (円形/角丸正方形)
statusundefined"online" | "offline" | "busy" | "away"ステータスドットの表示
| Name | Type | Default | Description |
|---|---|---|---|
size | "xs" | "sm" | "default" | "lg" | "xl" | "2xl" | "default" | アバターのサイズ (24/32/40/48/64/80px) |
shape | "circle" | "square" | "circle" | 形状 (円形/角丸正方形) |
status | "online" | "offline" | "busy" | "away" | undefined | ステータスドットの表示 |
Avatar.Image
srcundefinedstring画像のURL
altundefinedstring画像の代替テキスト
onLoadingStatusChangeundefined(status: "idle" | "loading" | "loaded" | "error") => void読み込み状態の変更コールバック
| Name | Type | Default | Description |
|---|---|---|---|
src | string | undefined | 画像のURL |
alt | string | undefined | 画像の代替テキスト |
onLoadingStatusChange | (status: "idle" | "loading" | "loaded" | "error") => void | undefined | 読み込み状態の変更コールバック |
Avatar.Fallback
size"default""xs" | "sm" | "default" | "lg" | "xl" | "2xl"フォントサイズのスケーリング用
nameundefinedstring名前からイニシャル+カラーを自動生成。childrenがある場合はイニシャルを上書き
colorizedundefinedstringカラーのみ自動適用(イニシャルは手動)。nameがある場合はnameが優先
colorVariant"vivid""vivid" | "soft"カラースタイル: vivid (濃い背景+白文字) / soft (淡い背景+濃い文字)
delayMsundefinednumberフォールバック表示の遅延時間 (ms)
| Name | Type | Default | Description |
|---|---|---|---|
size | "xs" | "sm" | "default" | "lg" | "xl" | "2xl" | "default" | フォントサイズのスケーリング用 |
name | string | undefined | 名前からイニシャル+カラーを自動生成。childrenがある場合はイニシャルを上書き |
colorized | string | undefined | カラーのみ自動適用(イニシャルは手動)。nameがある場合はnameが優先 |
colorVariant | "vivid" | "soft" | "vivid" | カラースタイル: vivid (濃い背景+白文字) / soft (淡い背景+濃い文字) |
delayMs | number | undefined | フォールバック表示の遅延時間 (ms) |
Avatar.Group
maxundefinednumber最大表示数。超過分は "+N" で表示
size"default""xs" | "sm" | "default" | "lg" | "xl" | "2xl"子アバターのサイズ ("+N" バッジに適用)
shape"circle""circle" | "square"子アバターの形状 ("+N" バッジに適用)
| Name | Type | Default | Description |
|---|---|---|---|
max | number | undefined | 最大表示数。超過分は "+N" で表示 |
size | "xs" | "sm" | "default" | "lg" | "xl" | "2xl" | "default" | 子アバターのサイズ ("+N" バッジに適用) |
shape | "circle" | "square" | "circle" | 子アバターの形状 ("+N" バッジに適用) |
Customization
name propを渡すだけで、イニシャルとカラーを自動生成できます。
name prop — イニシャル + カラー自動生成
JD
John
EB
Emma
MK
Michael
RS
Rachel
TW
Tina
<Avatar.Fallback name="John Doe" /> {/* → "JD" + color */}
<Avatar.Fallback name="Emma Brown" /> {/* → "EB" + color */}Vivid vs Soft
Vivid (default)
Google / Slack / Teams
JDEBMKRSTW
<Avatar.Fallback name={name} />Soft
Notion / Linear
JDEBMKRSTW
<Avatar.Fallback name={name} colorVariant="soft" />CJK 対応
김민
김민수
→ "김민"
田中
田中太郎
→ "田中"
李明
李明
→ "李明"
<Avatar.Fallback name="김민수" />
<Avatar.Fallback name="田中太郎" />
<Avatar.Fallback name="李明" />画像 + フォールバック
JD
画像あり
JD
フォールバック
<Avatar>
<Avatar.Image src={url} alt={name} />
<Avatar.Fallback name={name} />
</Avatar>Tip:同じnameは常に同じ色になります(決定的ハッシュ)。childrenを渡すと自動イニシャルを上書きできます。
Anatomy
1
2
HJ3
1
Container
円形コンテナ
2
Image / Initials
画像またはフォールバック
3
Status Indicator
ステータスドット(任意)
Best Practices
✓
推奨
- ✓必ずaltテキストを設定する
- ✓画像にはフォールバックを必ず用意する
- ✓グループでは一貫したサイズを使用する
- ✓ステータスは意味のある場面でのみ使用する
✕
避けるべき
- ✗altテキストなしで画像アバターを使用しない
- ✗フォールバックなしでAvatar.Imageを使用しない
- ✗グループ内でサイズを混在させない
- ✗装飾目的のみにアバターを使用しない
Accessibility
キーボード操作
Tabフォーカス移動
ARIA / WCAG
role="img"Radix自動付与altテキストで画像説明- フォールバックでテキスト代替を提供
- ステータスドットは装飾的 (別途テキストで補完推奨)