Pricing

An image element with a fallback for representing the user.

CNER
CNLRER
+3
import {
  Avatar,
  AvatarBadge,
  AvatarFallback,
  AvatarGroup,

Installation

pnpm slabui add avatar

Usage

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
<Avatar>
  <AvatarImage src="https://github.com/slabui.png" />
  <AvatarFallback>John Doeh</AvatarFallback>
</Avatar>

Composition

Use the following composition to build an Avatar:

Avatar
โ”œโ”€โ”€ AvatarImage
โ”œโ”€โ”€ AvatarFallback
โ””โ”€โ”€ AvatarBadge

Use the following composition to build an AvatarGroup:

AvatarGroup
โ”œโ”€โ”€ Avatar
โ”‚   โ”œโ”€โ”€ AvatarImage
โ”‚   โ”œโ”€โ”€ AvatarFallback
โ”‚   โ””โ”€โ”€ AvatarBadge
โ”œโ”€โ”€ Avatar
โ”‚   โ”œโ”€โ”€ AvatarImage
โ”‚   โ”œโ”€โ”€ AvatarFallback
โ”‚   โ””โ”€โ”€ AvatarBadge
โ””โ”€โ”€ AvatarGroupCount

Examples

Basic

A basic avatar component with an image and a fallback.

CN
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"

export function AvatarDemo() {
  return (
    <Avatar>

Badge

Use the AvatarBadge component to add a badge to the avatar. The badge is positioned at the bottom right of the avatar.

CN
import {
  Avatar,
  AvatarBadge,
  AvatarFallback,
  AvatarImage,

Use the className prop to add custom styles to the badge such as custom colors, sizes, etc.

<Avatar>
  <AvatarImage src="https://github.com/slabui.png" alt="@slabui" />
  <AvatarFallback>CN</AvatarFallback>
  <AvatarBadge className="bg-green-600 dark:bg-green-800" />
</Avatar>

Badge with Icon

You can also use an icon inside <AvatarBadge>.

PP
import { PlusIcon } from "lucide-react"

import {
  Avatar,
  AvatarBadge,

Avatar Group

Use the AvatarGroup component to add a group of avatars.

CNLRER
import {
  Avatar,
  AvatarFallback,
  AvatarGroup,
  AvatarImage,

Avatar Group Count

Use <AvatarGroupCount> to add a count to the group.

CNLRER
+3
import {
  Avatar,
  AvatarFallback,
  AvatarGroup,
  AvatarGroupCount,

Avatar Group Count

Use <AvatarGroupCount> to add a count to the group.

DK
ML
ER
JW
import { cn } from "@/lib/cn"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip"

const avatars = [

Avatar Group Hover

Avatar group with hover effect and tooltips.

CNLRER
import { PlusIcon } from "lucide-react"

import {
  Avatar,
  AvatarFallback,

Sizes

Use the size prop to change the size of the avatar.

CNCNCN
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"

export function AvatarSizeExample() {
  return (
    <div className="flex flex-wrap items-center gap-2 grayscale">

You can use the Avatar component as a trigger for a dropdown menu.

"use client"

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Button } from "@/components/ui/button"
import {

API Reference

Avatar

The Avatar component is the root component that wraps the avatar image and fallback.

PropTypeDefault
size"default" | "sm" | "lg""default"
classNamestring-

AvatarImage

The AvatarImage component displays the avatar image. It accepts all Base UI Avatar Image props.

PropTypeDefault
srcstring-
altstring-
classNamestring-

AvatarFallback

The AvatarFallback component displays a fallback when the image fails to load. It accepts all Base UI Avatar Fallback props.

PropTypeDefault
classNamestring-

AvatarBadge

The AvatarBadge component displays a badge indicator on the avatar, typically positioned at the bottom right.

PropTypeDefault
classNamestring-

AvatarGroup

The AvatarGroup component displays a group of avatars with overlapping styling.

PropTypeDefault
classNamestring-

AvatarGroupCount

The AvatarGroupCount component displays a count indicator in an avatar group, typically showing the number of additional avatars.

PropTypeDefault
classNamestring-

For more information about Base UI Avatar props, see the Base UI documentation.