Avatar

An image element with a text fallback for representing a user or entity.

Default

An avatar renders an image with a fallback for when the image is unavailable.

JD

tsx

import { Avatar, AvatarImage, AvatarFallback } from "@hummingbirdui/react";

export default function AvatarDefault() {
  return (
    <Avatar>
      <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
      <AvatarFallback>JD</AvatarFallback>
    </Avatar>
  );
}

Sizes

The size prop offers four sizes: xs, sm, md (default), and lg.

JDJDJDJD

tsx

import { Avatar, AvatarImage, AvatarFallback } from "@hummingbirdui/react";

export default function AvatarSizes() {
  return (
    <div className="flex items-center gap-4">
      <Avatar size="xs">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar size="sm">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar size="md">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar size="lg">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
    </div>
  );
}

Status

The status prop adds a presence indicator: online, offline, away, or busy.

JDJDJDJD

tsx

import { Avatar, AvatarImage, AvatarFallback } from "@hummingbirdui/react";

export default function AvatarStatus() {
  return (
    <div className="flex items-center gap-4">
      <Avatar status="online">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar status="offline">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar status="away">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar status="busy">
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User avatar" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
    </div>
  );
}

Fallback

AvatarFallback renders when the image is unavailable — typically the user's initials.

JD

tsx

import { Avatar, AvatarImage, AvatarFallback } from "@hummingbirdui/react";

export default function AvatarFallbackExample() {
  return (
    <Avatar>
      <AvatarImage src="" alt="Jane Doe" />
      <AvatarFallback>JD</AvatarFallback>
    </Avatar>
  );
}

Group

AvatarGroup stacks several avatars into an overlapping row.

JDASMK+3

tsx

import {
  Avatar,
  AvatarImage,
  AvatarFallback,
  AvatarGroup,
} from "@hummingbirdui/react";

export default function AvatarGroupExample() {
  return (
    <AvatarGroup>
      <Avatar>
        <AvatarImage src="https://i.pravatar.cc/150?img=12" alt="User one" />
        <AvatarFallback>JD</AvatarFallback>
      </Avatar>
      <Avatar>
        <AvatarImage src="https://i.pravatar.cc/150?img=32" alt="User two" />
        <AvatarFallback>AS</AvatarFallback>
      </Avatar>
      <Avatar>
        <AvatarImage src="https://i.pravatar.cc/150?img=45" alt="User three" />
        <AvatarFallback>MK</AvatarFallback>
      </Avatar>
      <Avatar>
        <AvatarFallback>+3</AvatarFallback>
      </Avatar>
    </AvatarGroup>
  );
}

API Reference

Avatar, AvatarImage, and AvatarFallback wrap the Radix UI Avatar primitives — see the Radix UI documentation for their props.

Avatar

PropTypeDefaultDescription
size"xs" | "sm" | "md" | "lg""md"Size of the avatar.
status"online" | "offline" | "away" | "busy"Presence indicator shown in the corner.
classNamestringAdditional classes merged with the generated classes.

AvatarGroup

PropTypeDefaultDescription
asChildbooleanfalseRender as a child element instead of the default.
classNamestringAdditional classes merged with the generated classes.

Styling

Hummingbird React avatar is styled entirely through Hummingbird's utility classes and CSS variables.

  • See the full list of available avatar classes in the Class overview.
  • Visit the CSS Variables documentation to explore all available variables.