본문으로 건너뛰기

ProgressBox

진행 상태를 여러 개의 판이 차례로 채워지는 형태로 표시합니다. Neba 표면 위의 로딩 상태에 어울리는 형태입니다.

tsx
import { ProgressBox } from 'neba';

<ProgressBox />
<ProgressBox value={62} label="마이그레이션 중" showValue />

Props

Prop타입기본값설명
valuenumber | nullnullmin과 max 사이의 진행도. null(기본값)은 진행도를 아직 모르는 상태이며, 빈 막대가 아니라 미정 표시로 그려집니다
minnumber0범위의 시작
maxnumber100범위의 끝
size공통'xs' | 'sm' | 'md' | 'lg' | 'xl''md'판 하나의 크기
color공통'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info''primary'의미론적 색 역할
labelReactNode무엇을 기다리는지. 값과 함께 스크린 리더가 읽습니다
showValuebooleanfalse도형 옆에 값을 글자로 보여 줍니다. format이 없으면 범위에 대한 백분율입니다
formatIntl.NumberFormatOptions값을 어떻게 쓸지. 없으면 min…max에 대한 백분율, 설명되지 않은 범위에서 유일하게 성립하는 표기입니다
countnumber4판의 개수. 넷이면 파도가 파도로 읽히면서도 한눈에 셀 수 있습니다. 기다리는 대상에 실제로 단계가 있다면 그 수를 넣으세요

<div>의 native 속성은 root로 전달됩니다. colorchildren만 위 표와 이름이 겹쳐 제외됩니다.

value · min · max · format · showValueProgressLinear와 동일하게 동작합니다. valuenull이면 판이 순서대로 밝아지는 indeterminate 상태입니다.

예시

count

판의 개수입니다. 값이 있을 때 판은 왼쪽부터 채워지고, 진행 중인 판은 부분적으로 채워집니다. 판 단위로만 채워지면 판 4개로는 0 · 25 · 50 · 75 · 100만 표현할 수 있기 때문입니다.

단계 표시로 쓰기

count를 실제 단계 수에 맞추면 판 하나가 단계 하나가 됩니다. 진행 중인 단계의 판이 채워지는 중으로 표시됩니다.

모션 줄이기

판은 위치가 움직이지 않고 채움과 빛 가장자리만 애니메이션합니다. prefers-reduced-motion에서는 주기가 느려집니다.

접근성

  • role="progressbar"와 값 속성이 적용되고, label이 accessible name이 됩니다.
  • indeterminate 상태는 0이 아니라 미정으로 보고됩니다.

Released under the MIT License