shadcn-remix
GitHub

Avatar

An image element with a fallback for representing the user.

CNER
CNLRER
import { css } from 'remix/component'

import { Avatar, AvatarFallback, AvatarImage } from '#app/ui/avatar.tsx'

export function AvatarDemo() {
  return () => (
import { css } from 'remix/component'

import { Avatar, AvatarFallback, AvatarImage } from '#app/ui/avatar.tsx'

export function AvatarDemo() {
  return () => (
    <div
      mix={css({
        display: 'flex',
        flexDirection: 'row',
        flexWrap: 'wrap',
        alignItems: 'center',
        gap: '3rem',
      })}
    >
      <Avatar>
        <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
        <AvatarFallback>CN</AvatarFallback>
      </Avatar>
      <Avatar mix={css({ borderRadius: 'var(--radius)' })}>
        <AvatarImage src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
        <AvatarFallback>ER</AvatarFallback>
      </Avatar>
      <div
        mix={css({
          display: 'flex',
          '& > :not(:last-child)': { marginInlineEnd: '-0.5rem' },
          '& > [data-slot="avatar"]': {
            boxShadow: '0 0 0 2px var(--background)',
            filter: 'grayscale(100%)',
          },
        })}
      >
        <Avatar>
          <AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
          <AvatarFallback>CN</AvatarFallback>
        </Avatar>
        <Avatar>
          <AvatarImage src="https://github.com/maxleiter.png" alt="@maxleiter" />
          <AvatarFallback>LR</AvatarFallback>
        </Avatar>
        <Avatar>
          <AvatarImage src="https://github.com/evilrabbit.png" alt="@evilrabbit" />
          <AvatarFallback>ER</AvatarFallback>
        </Avatar>
      </div>
    </div>
  )
}

Installation

$ pnpm dlx shadcn@latest add https://www.shadcn-remix.com/r/avatar.json

Usage

import { Avatar, AvatarFallback, AvatarImage } from '#app/ui/avatar.tsx'
<Avatar>
  <AvatarImage src="https://github.com/shadcn.png" />
  <AvatarFallback>CN</AvatarFallback>
</Avatar>

Composition

Use the following composition to build an Avatar:

Avatar
├── AvatarImage
├── AvatarFallback
└── AvatarBadge

AvatarGroup
├── Avatar
└── AvatarGroupCount

API Reference

Avatar

The root <span> that wraps the avatar image and fallback.

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

AvatarImage

The avatar <img>. Renders only after the image has loaded.

PropTypeDefault
srcstring-
altstring-
onLoadingStatusChange(status: "idle" | "loading" | "loaded" | "error") => void-
mixMixValue-

AvatarFallback

Rendered while the image is loading or when it fails to load.

PropTypeDefault
delayMsnumber-
mixMixValue-

AvatarBadge

A badge indicator at the bottom right of the avatar.

PropTypeDefault
mixMixValue-

AvatarGroup

A group of overlapping avatars.

PropTypeDefault
mixMixValue-

AvatarGroupCount

A count indicator in an avatar group.

PropTypeDefault
mixMixValue-