Tiro
Tiro Design
Components

Progress

선형 진행률 표시.

Mobile

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

Preview


States

기본 fill 색은 brown-800. 상태에 따른 색 변경은 className으로 오버라이드합니다.

StateValueFill
idle0%— (빈 트랙)
progressing1–79%brown-800
warning≥80%amber-500 (via className)
error / over limit≥100%rose-500 (via className)
complete100%brown-800

Sizes

기본 h-2 (8px). className으로 오버라이드합니다.

용도className높이
Top-of-screen indicatorh-0.52px
Defaulth-28px
명시적 진행 (quota 등)h-312px

Token Mapping

TokenValue
track bgstone-100
fill (default)brown-800
fill (warning)amber-500
fill (error)rose-500
radiusrounded-full
heighth-2 (8px)
animationtransition-all

Props

interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {
  value?: number  // 0 이상, default: 0
  max?: number    // default: 100
}

className으로 fill 색을 오버라이드할 때는 [&>div]:bg-{color} 패턴을 사용합니다.


Usage

{/* 기본 */}
<Progress value={65} />

{/* max 지정 */}
<Progress value={usedMinutes} max={quotaMinutes} />

{/* 경고 상태 (사용량 80% 이상) */}
<Progress
  value={usedMinutes}
  max={quotaMinutes}
  className="[&>div]:bg-amber-500"
/>

{/* 초과 상태 */}
<Progress
  value={usedMinutes}
  max={quotaMinutes}
  className="[&>div]:bg-rose-500"
/>

A11y

  • role="progressbar" + aria-valuenow / aria-valuemin / aria-valuemax 설정
  • 퍼센트 또는 진행 상태를 인접 텍스트로 병행 제공

Do / Don't

  • Do: 결정된 진행률에만 사용 — indefinite 로딩은 Spinner
  • Do: 경고/초과 상태는 색 변경과 함께 텍스트로도 전달 (색맹 대응)
  • Don't: 진행률 없이 애니메이션 목적으로만 사용 금지

On this page