아바타

아바타 (Avatar)

사용자의 프로필 사진이나 이니셜(initials)을 나타내는 데 사용하는 컴포넌트예요. 프로필 이미지가 없거나 로드에 실패했을 때의 폴백(fallback) 처리도 지원해요.

출처: 문서

본문

사용법 (Usage)

import { Avatar, AvatarGroup } from "@chakra-ui/react"
<AvatarGroup>
  <Avatar.Root>
    <Avatar.Fallback />
    <Avatar.Image />
  </Avatar.Root>
</AvatarGroup>

:::info

닫힌 컴포넌트 조합(closed component composition)을 선호한다면, 아래 스니펫을 확인해 보세요.

:::

예제 (Examples)

크기 (Sizes)

size prop을 사용해 아바타의 크기를 바꿀 수 있어요.

변형 (Variants)

variant prop을 사용해 아바타의 변형을 바꿀 수 있어요.

모양 (Shape)

shape prop을 사용해 아바타의 모양을 rounded에서 square로 바꿀 수 있어요.

색상 (Colors)

colorPalette prop을 사용해 아바타의 색상을 바꿀 수 있어요.

폴백 (Fallback)

이름이 제공되지 않았거나 이미지 로드에 실패했을 때 Avatar.Icon을 폴백으로 렌더링해요.

랜덤 색상 (Random Color)

colorPalette prop을 커스텀 로직과 결합해 아바타의 색상을 동적으로 바꿀 수 있어요.

링 (Ring)

outline* prop들을 사용해 아바타 주위에 링을 추가할 수 있어요.

그룹 (Group)

Group 컴포넌트를 사용해 여러 아바타를 함께 묶을 수 있어요.

겹치기 (Stacking)

AvatarGroup 컴포넌트를 사용할 때, stacking prop으로 아바타들의 겹침 순서를 바꿀 수 있어요.

페르소나 (Persona)

Avatar 컴포넌트를 사용해 사용자 페르소나를 표시하는 예시예요.

배지 (Badge)

Float와 Circle 컴포넌트를 조합해 아바타 오른쪽 모서리에 배지를 보여줄 수 있어요.

넘침 처리 (Overflow)

Menu와 Avatar 컴포넌트를 조합해 아바타가 넘치는 상황을 처리하는 예시예요.

Next.js

아바타를 Next.js 이미지와 함께 조합하는 예시예요.

import { getImageProps } from "next/image"

function Demo() {
  const imageProps = getImageProps({
    src: "/image.png",
  })
  return (
    <Avatar.Root>
      <Avatar.Fallback name="Segun Adebayo" />
      <Avatar.Image {...imageProps} />
    </Avatar.Root>
  )
}

스토어 (Store)

아바타 상태와 메서드에 접근하는 또 다른 방법으로, RootProvider 컴포넌트와 useAvatar 스토어 훅을 사용할 수 있어요.

닫힌 컴포넌트 (Closed Component)

Avatar를 닫힌 컴포넌트 조합으로 설정하는 방법이에요.

닫힌 컴포넌트를 프로젝트에 자동으로 추가하려면 다음 명령을 실행하세요:

npx @chakra-ui/cli snippet add avatar

Props

Root

Fallback

Image

탐색기 (Explorer)

Avatar 컴포넌트의 파트들을 인터랙티브하게 탐색해 보세요. 사이드바에서 파트를 클릭하면 미리보기에서 해당 파트가 강조 표시돼요.

더 알아보기 (Learn more)