Progress Bar
진행 막대는 시스템 작업이 얼마나 진행됐는지 보여줘요.
설치
pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/steel/progress-bar.jsonclass-variance-authority 를 설치하고 아래 코드를 components/ui/progress-bar.tsx 에 복사해요.
Examples
Default
기본 진행 막대예요. value 는 0 부터 1 사이 값이고, 범위를 벗어나면 잘라서 표시해요.
Inverse
진한 배경 위에서는 appearance="inverse" 를 써서 대비를 유지해요. 같은 동작을 하는 TransparentProgressBar 도 내보내요.
Success
작업이 끝났음을 알릴 때는 appearance="success" 를 써요.
Indeterminate
완료율을 계산할 수 없을 때는 isIndeterminate 로 막대가 계속 흘러가게 해요. 두 개의 막대가 0.5초 간격으로 2초씩 반복돼요.
Success progress bar
SuccessProgressBar 는 value 가 1 에 도달하는 순간 자동으로 success 색으로 바뀌어요. 보이는 도움말 문구도 함께 갱신해 주세요.
| 내보내기 | 용도 |
|---|---|
ProgressBar | 기본. appearance 로 default·success·inverse 를 골라요. |
SuccessProgressBar | 완료되면 자동으로 success 로 바뀌어요. |
TransparentProgressBar | 진한 배경용. 항상 inverse 예요. |
Usage guidelines
진행 막대는 저장·변경 사항 처리, 파일 업로드·다운로드, 앱 로딩처럼 오래 걸리거나 단계가 복잡한 시스템 작업에 써요. 완료된 양을 계산할 수 있을 때 가장 잘 맞아요.
- 진행 막대는 진행선(채워지는 부분)과 컨테이너(전체 길이)로 이뤄져요. 진행선은 일부 채움, 완료, 불확정 상태를 가져요.
- 대기 시간이 짧다면 진행 막대 대신 Spinner 를 써요.
- 가능하면 막대 아래에 지금 무슨 작업이 진행 중인지 보이는 도움말 문구를 둬요.
- 계속 진행하는 데 필요한 작업이 끝나면 성공 상태를 분명하게 보여줘요.
Do· 작업 상태 표시
로딩 표시나 시스템 작업의 진행 상태를 보여줄 때 써요.
Don't· 데이터 시각화
차트나 비율 지표처럼 데이터를 보여주는 용도로 쓰지 않아요. 이런 경우는 별도 컴포넌트를 만들어요.
문구
- 상태를 뭉뚱그리지 말고 숫자로 구체적으로 써요. "업로드 중" 보다 "파일 10개 중 5개 업로드됨" 이 좋아요.
- 도움말 문구에는 지금 처리 중인 하위 작업 이름을 적어요.
Accessibility
role="progressbar"와aria-valuemin·aria-valuemax(0~1)·aria-valuenow가 자동으로 붙어요. 불확정 상태에서는aria-valuenow가0이에요.ariaLabel에 현재 상태를 구체적으로 적어요. (예: "완료: 이슈 10개 중 3개")- 같은 내용을 화면에도 보이는 문구로 함께 보여주면 모든 사용자가 진행 상황을 알 수 있어요.
- 진행 막대는 포커스를 받지 않아요.
Props
Prop
Type