Ark Logo

Avatar

A graphical representation of the user, often used in profile sections.

JD

Anatomy

To set up the avatar correctly, you'll need to understand its anatomy and how we name its parts.

Each part includes a data-part attribute to help identify them in the DOM.

Examples

Learn how to use the Avatar component in your project. Let's take a look at the most basic example:

import { Avatar } from '@ark-ui/react'

export const Basic = () => (
  <Avatar.Root>
    <Avatar.Fallback>PA</Avatar.Fallback>
    <Avatar.Image src="https://i.pravatar.cc/300" alt="avatar" />
  </Avatar.Root>
)

Handling Events

Avatar allows you to listen for loading state changes.

import { Avatar } from '@ark-ui/react'

export const Events = () => {
  const handleStatusChange = (details: Avatar.StatusChangeDetails) => {
    console.log(details.status)
  }
  return (
    <Avatar.Root onStatusChange={handleStatusChange}>
      <Avatar.Fallback>PA</Avatar.Fallback>
      <Avatar.Image src="https://i.pravatar.cc/3000" alt="avatar" />
    </Avatar.Root>
  )
}

API Reference

Root

PropDefaultType
asChild
boolean

Render as a different element type.

id
string

The unique identifier of the machine.

ids
Partial<{ root: string; image: string; fallback: string }>

The ids of the elements in the avatar. Useful for composition.

onStatusChange
(details: StatusChangeDetails) => void

Functional called when the image loading status changes.

Fallback

PropDefaultType
asChild
boolean

Render as a different element type.

Data AttributeValue
[data-scope]avatar
[data-part]fallback
[data-state]"hidden" | "visible"

Image

PropDefaultType
asChild
boolean

Render as a different element type.

Data AttributeValue
[data-scope]avatar
[data-part]image
[data-state]"visible" | "hidden"