Progress
진행률을 시각적으로 표시하는 프로그레스 바 컴포넌트
개요
트랙(외부 바)과 인디케이터(내부 바)로 구성되어 0~100% 진행률을 표시합니다. 정적 표시와 점진 애니메이션을 모두 지원합니다.
주요 특징
- ✅ 정적/애니메이션: 값을 즉시 반영하거나 시작값→목표값으로 점진 증가
- ✅ imperative 제어:
ref.goToPercentage(from, to, speed)로 애니메이션 실행 - ✅ 지연 동기화 라벨: 표시 퍼센트가 지연 갱신되며 100% 도달 시 즉시 반영
- ✅ 커스터마이징: 바 색상, 트랙 색상, 높이, 모서리 둥글기 설정
- ✅ 디자인 토큰: Foundation Progress 토큰 시스템 호환
기본 사용
percentage로 진행률을, showPercentage로 퍼센트 텍스트를 표시합니다.
Preview
정적 퍼센트 표시
percentage를 지정하면 애니메이션 없이 즉시 진행률을 반영합니다.
Preview
애니메이션 진행 (imperative)
ref.goToPercentage(from, to, speed)로 시작값에서 목표값까지 점진 애니메이션을 실행합니다.
Preview
애니메이션 진행 (animated)
animated가 true이면 percentage 변경 시 현재 값에서 목표값까지 애니메이션합니다.
Preview
커스텀 색상
barColor(인디케이터), trackColor(트랙 배경)로 색상을 지정합니다.
Preview
모서리 둥글기 (radius)
radius로 모서리 둥글기를 조절합니다. 미지정 시 완전 둥근 형태입니다.
Preview
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
percentage | number | 0 | 목표 진행률(0~100, 범위 밖은 clamp) |
animated | boolean | false | 현재 값→percentage까지 점진 증가 |
animationInterval | number | 16 | 애니메이션 갱신 간격(ms) |
animationStep | number | 1 | 애니메이션 회당 증가 폭(%) |
showPercentage | boolean | false | 퍼센트 텍스트 오버레이 표시 |
labelDelay | number | 70 | 표시 텍스트 갱신 지연(ms), 100%는 즉시 |
height | number | string | - | 바 높이 (미지정 시 기본 8px) |
barColor | string | - | 인디케이터(내부 바) 색상 |
trackColor | string | - | 트랙(외부 바) 배경색 |
radius | number | string | - | 모서리 둥글기 (미지정 시 완전 둥근 형태) |
visible | boolean | true | 표시 여부 (false면 렌더링 안 함) |
className | string | - | 컨테이너에 적용할 CSS 클래스 |
style | CSSProperties | - | 인라인 스타일 |
Ref
| 메서드/속성 | Type | Description |
|---|---|---|
goToPercentage | (from: number, to: number, speed?: number) => void | from→to까지 speed(ms) 간격 애니메이션 |
element | HTMLDivElement | null | 컨테이너 DOM 요소 |
접근성
권장 사항
- ✅
role="progressbar"와 aria-value 속성이 자동 제공됨 - ✅ 진행 상태를 텍스트로도 전달 (showPercentage 또는 인접 레이블)
- ❌ 색상만으로 상태를 구분하지 않기
관련 컴포넌트
- Foundation Progress: 기본 Progress
- Steps: 단계별 진행 표시 컴포넌트
Last updated on