Get startedFoundationsComponentsPatternsRules

Avatar

아바타는 사람이나 프로젝트·스페이스 같은 대상을 이미지로 보여줘요.

설치

pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/steel/avatar.json

Examples

Appearance

대상의 종류에 맞춰 모양을 골라요. 사람은 circle, 프로젝트·저장소·스페이스 같은 대상은 square, AI 에이전트는 hexagon 을 써요.

Appearance용도
circle사람 (기본값)
square프로젝트, 저장소, 스페이스 같은 대상
hexagonAI 에이전트

Size

size 로 크기를 정해요. 기본값은 medium(32px) 이에요.

Size픽셀쓰임
xxlarge128px프로필 페이지의 대표 이미지
xlarge96px프로필 카드, 설정 화면
large40px댓글, 활동 피드
medium32px목록, 표, 대부분의 화면
small24px이슈 카드의 담당자처럼 촘촘한 곳
xsmall16px본문 속 멘션처럼 아주 작은 곳 (presence·status 미지원)

Presence

presence 는 오른쪽 아래에 접속 상태를 보여줘요. online, busy, focus, offline 중에서 골라요. small ~ xlarge 크기에서만 보여요.

Status

status 는 오른쪽 위에 승인(approved)·거절(declined)·잠김(locked)·주의(warning) 같은 맥락 정보를 보여줘요. presence 와 함께 주면 status 가 우선해요.

States

onClick 이나 href 를 주면 버튼·링크로 바뀌어 hover·pressed 오버레이와 포커스 링이 생겨요. 마우스를 올리면 아바타가 스프링 곡선(250ms, motion.avatar.hovered)으로 1.12배 살짝 커져요. 육각형은 테두리 레이어까지 함께 커져요. isDisabled 는 아바타를 40% 로 흐리게 하고 클릭을 막아요.

기본 이미지

src 가 없거나 이미지를 불러오지 못하면 모양에 맞는 기본 아바타(사람·로켓·에이전트 아이콘)를 보여줘요.

Tooltip

툴팁은 포커스할 수 있는 상호작용 아바타에만 붙이고, 내용은 아바타의 이름과 같게 써요.

Avatar item

AvatarItem 은 아바타 옆에 이름(primaryText)과 보조 정보(secondaryText)를 붙인 한 줄이에요. 담당자 선택 목록처럼 이름을 함께 보여줘야 할 때 써요.

Skeleton

Skeleton 은 아바타를 불러오는 동안 같은 크기의 자리를 잡아 레이아웃이 흔들리지 않게 해요.

Usage guidelines

아바타는 사람이나 대상을 시각적으로 나타내요. 사용자는 보통 자기 사진을 올리고, 올리지 않았으면 기본 이미지가 보여요.

아바타는 세 부분으로 이뤄져요.

  • 본문: 이미지. 원형·정사각형·육각형 중 하나예요.
  • Status: 오른쪽 위의 상태 아이콘
  • Presence: 오른쪽 아래의 접속 표시
Do· 대상에 맞는 모양
사람은 원형, AI 에이전트는 육각형, 프로젝트·저장소·스페이스는 정사각형으로 보여줘요.
Don't· 상호작용 없는 아바타에 툴팁
클릭할 수 없거나 비활성인 아바타에 툴팁을 달면 키보드·스크린 리더 사용자가 내용을 볼 수 없어요.
  • 대상의 종류와 화면 맥락에 맞춰 모양·크기·부가 표시를 골라요.
  • presence 나 status 는 정말 도움이 되는 맥락일 때만 붙여요. 모든 아바타에 붙이면 정보가 아니라 소음이 돼요.
  • 비활성 상태는 접근성 문제를 만들 수 있어요. 꼭 필요할 때만 써요.

Accessibility

  • name 은 스크린 리더가 읽는 대체 텍스트예요. 상호작용이 없는 아바타는 role="img" 로 노출되고 name(과 presence·status 값)을 읽어요.
  • 옆에 이름이 이미 보이는 장식용 아바타는 name 을 비워서 스크린 리더가 건너뛰게 해요.
  • onClick 이 있으면 <button>, href 가 있으면 <a> 로 렌더링되어 Tab 으로 포커스하고 Enter·Space 로 실행할 수 있어요. 이름은 label → name 순서로 정해져요.
  • 메뉴를 여는 트리거로 쓸 때는 aria-haspopup, aria-expanded, aria-controls 를 넘겨요. aria-haspopup 만 있어도 버튼으로 렌더링돼요.
  • presence·status 아이콘은 aria-hidden 이에요. 문자열 값은 자동으로 이름에 붙고, 직접 그린 노드를 넘기면 label 로 설명을 채워요.

Props

Avatar

Prop

Type

AvatarItem

Prop

Type

Skeleton

Prop

Type

On this page