Tiro
Tiro Design
Components

Avatar

사용자 식별용 원형 이미지/이니셜 컴포넌트.

Mobile

순수 시각 primitive — 플랫폼 분기 없음. Web 명세 그대로 mobile에 적용.

Preview

Variants

  • image — 프로필 이미지 로드 성공
  • initials — 이름 첫 글자 (로드 실패 / 이미지 없음)
  • icon — 익명/시스템 (User 아이콘)

States

default · loading · online · offline · error

Sizes

지원 사이즈: sm · md · lg · xl

Default: md (40×40)

Foundation Sizes 매핑 따름. Tiro에서 TopBar/리스트 md, profile page xl 사용.

SizeDimensionsPrimary use
sm32 × 32Dense 리스트 인라인, 리스트 행 leading
md40 × 40Default. 리스트 행, 헤더
lg48 × 48카드 프로필, 큰 리스트
xl56 × 56Profile page, Avatar detail

Token Mapping

TokenValueDescription
radiusrounded-full원형
borderborder border-border기본
initials bgbg-{lime/blue/rose/amber/purple/cyan/pink/yellow}-100화자 colorIndex 8 순환 (SpeakerChip 동일)
initials texttext-{…}-700Bold
status dot size25% of avatar size우하단
online dotbg-lime-500
offline dotbg-muted-foreground

Props

type AvatarProps = {
  src?: string
  name?: string           // alt + initials 추출
  size?: 20 | 24 | 32 | 40 | 48
  status?: 'online' | 'offline'
  colorIndex?: number     // speaker color 고정용
}

Usage

<Avatar src={user.imageUrl} name={user.name} size={40} />

<Avatar name="Plato Kim" size={32} />  // initials fallback

A11y

  • 사용자 식별 맥락: alt={name} 필수
  • Decorative: aria-hidden

Do / Don't

  • Do: 사용자 식별 맥락에서만 사용
  • Do: 이미지 로드 실패 시 initials fallback
  • Don't: name 없이 initials 생성 금지

On this page