アバター
アバターコンポーネントは、ユーザーを表すために使用され、プロフィール写真、イニシャル、またはフォールバックアイコンを表示します。
インストール
npx nextui-cli@latest add avatar
上記のコマンドは、個別インストール専用です。もし、すでに @nextui-org/react
がグローバルにインストールされている場合は、この手順をスキップしても構いません。
インポート
NextUI は、アバター関連のコンポーネントを3つエクスポートしています。
- Avatar:アバターを表示するためのメインコンポーネント。
- AvatarGroup:アバターのグループを表示するためのラッパーコンポーネント。
- AvatarIcon:画像のロードに失敗した場合のフォールバックとして使用されるデフォルトのアイコン。
使い方
サイズ
無効化
ボーダー
角丸
色
アバターのフォールバック
アバターのsrc
のロード中にエラーが発生した場合、2つのフォールバックがあります。
name
プロパティがある場合、イニシャルとランダムなアクセス可能な背景色を生成するために使用します。name
プロパティがない場合は、デフォルトのアバターを使用します。
showFallback
が渡されない場合、フォールバックは表示されません。
カスタムフォールバック
src
のロードに失敗した場合に表示するカスタムフォールバックコンポーネントを提供することもできます。
カスタム実装
アバターをさらにカスタマイズする必要がある場合は、useAvatar
フックを使用して、独自の実装を作成できます。
カスタムイニシャルロジック
getInitials
プロパティに関数を渡すことで、イニシャルを生成するために使用するロジックをカスタマイズできます。デフォルトでは、name
プロパティ内の各単語の最初の文字を結合します。
アバターグループ
グループ無効
グループ最大数
max
プロパティをAvatarGroup
コンポーネントに渡すことで、表示されるアバターの数を制限できます。
グループ総数
total
プロパティをAvatarGroup
コンポーネントに渡すことで、アバターの総数を表示できます。
グループカスタム数
NextUIは、total
プロパティが渡されたときに表示される数をカスタマイズするためのrenderCount
プロパティを提供します。
グループグリッド
isGrid
プロパティをAvatarGroup
コンポーネントに渡すことで、アバターがグリッドレイアウトで表示されます。
グループカスタム実装
アバターグループをさらにカスタマイズする必要がある場合は、useAvatarGroup
フックとAvatarGroupProvider
を使用して独自の実装を作成できます。
スロット
- base: アバターのラッパー。フォーカスリング、位置、および一般的な外観のスタイルが含まれます。
- img: アバター内の画像要素。不透明度遷移とサイズのスタイルが含まれます。
- fallback: 画像の読み込みに失敗した場合、または画像が提供されていない場合のフォールバックコンテンツ。コンテンツを中央に配置するためのスタイルが含まれます。
- name: 画像が提供されていない場合、または読み込みに失敗した場合に表示されるイニシャル。フォント、テキストの配置、および継承のスタイルが含まれます。
- icon: アバター内のアイコン要素。コンテンツの中央配置、テキストの継承、およびサイズのスタイルが含まれます。
カスタムアバタースタイル
classNames
プロパティを使用すると、アバターの任意の部分をカスタマイズできます。各slot
には独自のclassName
があります。
データ属性
Avatar
のbase
要素には次の属性があります。
- data-hover: アバターがホバーされているとき。 useHover に基づきます。
- data-focus: アバターがフォーカスされているとき。 useFocusRing に基づき、
isFocusable
がtrue
の場合、またはas
プロパティにbutton
が割り当てられている場合に適用されます。 - data-focus-visible: キーボードでアバターがフォーカスされているとき。 useFocusRing に基づき、
isFocusable
がtrue
の場合、またはas
プロパティにbutton
が割り当てられている場合に適用されます。
API
アバターのプロパティ
属性 | 型 | 説明 | デフォルト |
---|---|---|---|
src | string | 表示する画像のソースURL。 | - |
color | default | primary | secondary | success | warning | danger | アバターの背景色を設定します。 | default |
radius | none | sm | md | lg | full | アバターのボーダー半径を設定します。 | full |
size | sm | md | lg | アバターのサイズを設定します。 | md |
name | string | 画像が提供されていない場合、または読み込みに失敗した場合にイニシャルを表示します。 | - |
icon | ReactNode | アバター内にカスタムアイコンを表示します。 | - |
fallback | ReactNode | 画像の読み込みに失敗した場合に表示するカスタムフォールバックコンポーネント。 | - |
isBordered | boolean | true の場合、アバターの周囲にボーダーを追加します。 | false |
isDisabled | boolean | true の場合、アバターを無効にし、無効時のスタイルを適用します。 | false |
isFocusable | boolean | true の場合、キーボードナビゲーションでアバターをフォーカス可能にします。 | false |
showFallback | boolean | true の場合、画像の読み込みに失敗したときにフォールバックアイコンまたはイニシャルを表示します。 | false |
ImgComponent | React.ElementType | 画像要素として使用するコンポーネント。 | img |
imgProps | ImgComponentProps | 画像要素に渡されるプロパティ。 | - |
classNames | Record<"base"| "img"| "fallback"| "name"| "icon", string> | アバタースロットのカスタムクラス名を設定できます。 | - |
アバターグループのプロパティ
属性 | 型 | 説明 | デフォルト |
---|---|---|---|
max | number | 表示するアバターの最大数 | 5 |
total | number | 非表示のアバター数を制御します | - |
size | AvatarProps['size'] | アバターのサイズ | - |
color | AvatarProps['color'] | アバターの色 | - |
radius | AvatarProps['radius'] | アバターの半径 | - |
isGrid | boolean | アバターをグリッド表示するかどうか | false |
isDisabled | boolean | アバターを無効にするかどうか | - |
isBordered | boolean | アバターにボーダーがあるかどうか | - |
renderCount | (count: number) => ReactNode | カスタムカウントコンポーネントをレンダリングできます。 | - |
classNames | Record<"base"| "count", string> | アバターグループのスロットのカスタムクラス名を設定できます。 | - |