UIXHERO

Avatar(アバター)

ユーザーやエンティティを表す小さな円形または正方形の画像UI。プロフィール写真・イニシャル・アイコンの3種とフォールバック設計、グループ表示(Avatar Group)の判断基準を解説する。

2026年3月1日
更新: 2026年8月28日
20
by Dengen Yosho(DGYS)

ユーザー・チームメンバー・ブランドなどのエンティティを小さな画像チップで視覚的に識別するコンポーネント。プロフィール写真がない場合のイニシャル表示・フォールバックアイコンの設計と、複数人を重ねて表示する Avatar Group まで扱う。

この記事を読むと、フォールバック設計(画像エラー時のイニシャル・アイコン)・サイズ体系・Avatar Group のオーバーラップ設計・スクリーンリーダー向けの alt テキストが自分でできるようになります。


1. UI例(Preview / Live)

このアバターは、 GUNJO の Avatar 実装です。画像・イニシャルのフォールバック、オンライン状態、重ね表示を確認できます(右上 Code で編集可)。

実装で見る(GunjoUI)

この部品を、デザインシステム GUNJO の実装で確かめられます。

2. 定義(Definition)

ユーザー・組織・ブランドなどのエンティティを小さな円形または正方形の画像チップで表現するUIコンポーネント。画像が読み込めない場合のフォールバック(イニシャル・デフォルトアイコン)と、複数のアバターを重ねて表示する Avatar Group を含む。

Iconとの違い:Iconはシステムの機能や操作を表す記号。Avatarは特定のユーザーやエンティティを表す識別子。Iconはコンテンツに依存しないがAvatarはデータに依存する。

Thumbnailとの違い:Thumbnailはコンテンツ(記事・動画・商品)の縮小プレビュー。AvatarはPersonまたはの識別子。


3. 使い分け(When to use / When NOT to use)

3.1 When to use

  • コメント・チャット・レビューで誰が投稿したかを視覚的に示す
  • メンバー一覧・チームページで複数の人物を並べて表示する
  • バーのログインユーザー自身を示す(プロフィールメニューのトリガー)
  • タスク・チケットの担当者をコンパクトに表示する
  • Avatar Groupでプロジェクト参加メンバーを省スペースで示す

3.2 When NOT to use

  • コンテンツのサムネイル → Image / Media を使う
  • 汎用的な機能アイコン → Icon を使う
  • 会社ロゴ・サービスロゴの表示 → Logoコンポーネント or <img> を直接使う

3.3 代替UI(Alternatives)

  • 記事・動画の縮小表示 → Image / Media(アスペクト比固定のサムネイル)
  • ファビコン・サービスアイコン → <img> + object-fit: contain

4. 設計判断の核(Decision Principles)

Avatarは「誰か」を伝える——画像が読み込めなくてもイニシャルで識別できるフォールバック設計が必須。

判断の優先順位:① フォールバック設計 → ② サイズ選択 → ③ alt / aria-label → ④ Avatar Group の上限

  • フォールバックを必ず設計する<img>onError でイニシャル表示に切り替える。「壊れた画像アイコン」が表示されるのは最悪の
  • イニシャルの文字数は1〜2文字:3文字以上は小さいサイズで読めなくなる。日本語は「姓の1文字」か「姓+名のイニシャル(山T)」にする
  • サイズは用途で決める:リスト内はMD(40px)、コメント内はSM(32px)、プロフィールページはLG以上、Avatar GroupはSM(32px)が基準
  • Avatar Groupは最大5件 + 残数表示:6件以上を重ねると視認性が落ちる。+N で残りを示す

5. 状態設計(States)

5.1 必須状態(Required)

  • Default(画像あり):プロフィール写真を表示
  • Fallback(画像エラー):イニシャルまたはデフォルトアイコンを表示

5.2 条件付き状態(Conditional)

  • Online indicator:オンライン・オフライン状態を右下の色点で示す
  • Hover:クリッカブルなAvatarでホバー時の視覚
  • Loading(Skeleton):データ取得中はスケルトンUIで円形のプレースホルダーを表示
  • Avatar Group overflow:5件以上は +N で省略
状態必須何を伝えるか
Default(画像)エンティティの顔
Fallback(イニシャル)画像なしでも誰かを識別できる
Fallback(アイコン)名前も画像もない場合の最終フォールバック
Online indicator現在のオンライン状態
Skeletonデータ読み込み中
Avatar Group overflow5件以上のメンバーを省略表示

6. バリエーション設計(Variants)

Avatarのバリアントは「形状」と「フォールバック種別」で分かれる。

バリアント目的
円形(Circle)人物・ユーザーの識別(最も一般的)
角丸正方形(Rounded Square)ブランド・組織・ボットの識別
イニシャルアバター画像なしユーザーの識別
アイコンアバター匿名・削除済みユーザーの最終フォールバック
Avatar Group複数ユーザーのコンパクト表示

禁止パターン:Avatar Groupで全員を重ねて表示し、誰が誰か分からない状態にする → 最大4〜5件 + 残数表示(+N)にして、ホバー時にTooltipで名前を表示する。


7. パターン集(Good / Bad / How to fix)

7.0 よく崩れる設計パターン(3つ)

  • フォールバック未設計:画像が404になると壊れた画像アイコンが表示され、誰が誰か分からなくなる
  • alt属性なし:スクリーンリーダーが user-photo-3748.jpg などのファイル名を読み上げる
  • Avatar Groupを無制限に重ねる:20人以上のアバターを全員重ねると視覚的な意味がなくなり、レイアウトも崩れる

7.1 Bad(典型3つ)

  • <img src={user.avatar} /> のみで onError ハンドラーも alt も設定せず、画像エラー時に壊れた画像アイコンが表示される
  • Avatar Groupで15人全員を -ml-3 で重ね、どのアバターも識別できない
  • オンラインインジケーターの色点に aria-label がなく、色のみでオンライン状態を伝えている

7.2 Good(対になる3つ)

  • <img src={user.avatar} alt={${user.name}のプロフィール写真} onError={() => setShowFallback(true)} /> でエラー時にイニシャル表示へ切り替える
  • Avatar Groupは最大4件 + +N の残数表示にし、ホバーで全員の名前をTooltipで表示する
  • <span class="online-dot" aria-label="オンライン" /> で色点に aria-label を付与し色だけに頼らない

7.3 How to fix(手順)

  1. <img>onError ハンドラーを追加し、エラー時はイニシャルコンテナを表示する
  2. <img>alt={${name}のプロフィール写真} を付与する
  3. Avatar Groupの表示上限を5件に設定し、超過分は +N ボタンにする
  4. オンラインインジケーターに aria-label を付与する

7.4 GUNJO 実装で見る(Bad / Good)

同じ GUNJO の Avatar を、フォールバック無しの崩れた使い方と正しい使い方で


8. ルール(Must / Better)

Must(守らないと壊れる)

Better(品質が跳ねる)


9. アクセシビリティ要件(必須)

Keyboard

  • クリッカブルなAvatar(プロフィールメニューのトリガーなど)は Tab キーでフォーカスできること
  • Enter / Space でアクションが実行されること

Focus

  • クリッカブルなAvatarにのみフォーカスリングを表示する(非インタラクティブなAvatarには不要)

Screen Reader

  • <img> には必ず alt={${name}のプロフィール写真} を付与する
  • 装飾的なオンラインインジケーター(色点)は aria-hidden="true" にしつつ、ステータス情報は aria-label で別途伝える
  • Avatar GroupのオーバーフローボタンはDivではなく <button aria-label="他N名のメンバー">+N</button> にする
<!-- 単体アバター(画像あり) -->
<img
  src="/users/yamada.jpg"
  alt="山田 太郎のプロフィール写真"
  class="avatar"
  onError="handleFallback()"
/>

<!-- フォールバック(イニシャル) -->
<span class="avatar-initials" aria-label="山田 太郎">山T</span>

<!-- Avatar Group -->
<div role="group" aria-label="5名のメンバー">
  <img src="..." alt="山田 太郎" />
  <img src="..." alt="佐藤 花子" />
  <button aria-label="他3名のメンバー">+3</button>
</div>

Touch / Pointer

  • クリッカブルなAvatarのは最低44×44pxを確保する(Avatarが小さい場合は透明な padding で拡張する)
  • 非インタラクティブなAvatarに cursor: pointer を付けない

Contrast / Readability

  • イニシャルアバターのテキストと色のコントラスト比は4.5:1以上を確保する
  • 薄い背景色(パステル系)には濃いテキスト色を組み合わせる

10. 実装メモ(Implementation Notes)

  • shadcn/ui の Avatar コンポーネントは AvatarImageAvatarFallback の組み合わせで実装済み。AvatarFallback は画像読み込みエラー時に自動表示される
  • イニシャルの背景色を一貫させるには、名前やの文字コードの合計を COLORS.length で割った余りでインデックスを決める(ハッシュ方式)
  • Avatar Groupの z-index はCSSの isolation: isolate + 後の要素に小さい z-index を割り当てる方法で重なり順を制御する
  • スケルトンUIは animate-pulse クラス(Tailwind)+ 円形の div で実装できる

11. 関連リンク


12. まとめ

Avatarの設計は「フォールバックを必ず用意する」と「alt / aria-label で誰かを伝える」の2点が最低ラインです。迷ったら 4. 設計判断の核 に戻り、フォールバック優先順位(画像 → イニシャル → デフォルトアイコン)とサイズ体系(用途ごとに統一)を確認してください。Avatar Groupは「最大5件 + 残数表示」が乱れにくい設計の基準点です。

更新のお知らせ

サイトに載せていない実例や、新しい記事のお知らせはこちらで出しています。

読んだ内容を、自分の画面に当てるとき

UIXHEROは、記事を書くほかに、画面の検品・判定、デザインシステムの構築、実装と改善の伴走を受けています。何を頼めばいいか決まっていない段階の相談も、同じ窓口で受けます。

UIXHEROに頼めることを見る

※ 記事の内容についての質問や、書いてほしいテーマの要望も同じ窓口で受けています

記事をシェア

メールでお知らせを受け取る

最終更新: 2026年8月28日

この記事を書いた人

Dengen Yosho(DGYS)

Dengen Yosho(DGYS)

UI/UXデザイナー兼デザインエンジニア デザイン歴25年以上 情報設計〜UIデザイン〜React/TypeScriptによる実装までを一気通貫で担当 大手企業のDXプロジェクトや決済アプリ領域で、デザインリードとして改善と構築を経験 現在はフリーランスとして、プロダクトのUI/UX改善とデザインシステム構築を支援 長年の実務の中で感じてきたのは、 「良いUI」はセンスではなく、再現可能な判断の積み重ねであるということ UIXHEROは、 心理学や行動科学の知見を、現場で使える設計言語に翻訳するための場所 関心領域は「ユーザーの行動が変わるUI」 人の認知・注意・意思決定の構造を理解し、 “なぜそのUIが機能するのか”を言語化することを目指している

あわせて読みたい

この記事に関連する記事をご紹介します

Bar Chart(棒グラフ)

カテゴリごとの量を棒の長さで比べるチャート。ゼロ基線の扱い、並び順、縦横の選び方、しきい値の見せ方という設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
18

Donut Chart(ドーナツチャート)

中央をくり抜いた円で構成比を示すチャート。中央に置く値の選び方、円グラフとの使い分け、リングの太さ、凡例の作りという設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
17

Gauge Chart(ゲージチャート)

1つの値を範囲の中に置いて示す半円のチャート。範囲の両端に意味があるかという条件、しきい値の帯の設計、色だけで良否を伝えない書き方という設計判断とアクセシビリティ要件を解説する。

2026年8月27日
16

もっと深く知りたいですか?

ここに掲載されていないトピックについても、リクエストがあれば解説記事を追加します。 わかりにくい点や、具体的な事例について知りたいことがあれば教えてください。

リクエストを送る