Progress

파일 업로드나 가져오기처럼 진행 중인 작업의 완료 정도를 보여 줄 때 사용합니다.

미리보기

백분율·개수·대기 상태

Registry 빌드 82%, 테마 토큰 12/16개, 값을 기다리는 진행 표시를 비교합니다.

Registry 빌드82%
x
테마 토큰12 / 16
x
데이터 대기 중—
x

설치

Registry를 처음 사용한다면 기본 설정과 공통 스타일 설치 을 먼저 완료하세요.

npx shadcn@latest add @neumorphism-ui/progress

공통 base를 한 번 설치한 뒤 CLI로 필요한 컴포넌트와 의존성을 추가합니다.

Registry JSON

사용법

현재 value와 전체 max를 전달하고 aria-label 또는 aria-labelledby로 작업 이름을 제공하세요. 실제 작업에서는 고정된 예시 수치 대신 진행 상태에 표시 값을 연결합니다.

"use client";

import { Progress } from "@/components/ui/progress";

export default function Example() {
  return <Progress value={72} aria-label="File upload" />;
}

API 레퍼런스

Base UI Progress의 progressbar 시맨틱을 사용합니다. 유효한 max와 value를 정규화하며 value가 없거나 유효하지 않으면 indeterminate 상태로 전달합니다.

컴포넌트속성타입기본값설명
Progressvaluenumber | nullnull현재 진행 값이며 0과 max 사이로 정규화됩니다.
Progressmaxnumber1000보다 큰 전체 범위입니다. 유효하지 않으면 100을 사용합니다.
Progressaria-label / aria-labelledbystring—진행 중인 작업의 접근 가능한 이름입니다.
ProgressgetAriaValueText(formattedValue: string, value: number | null) => string—수치 외 설명이 필요한 경우 aria-valuetext를 만듭니다.

접근성

  • 01

    Progress에는 '파일 업로드'처럼 작업을 설명하는 aria-label 또는 aria-labelledby가 필요합니다.

  • 02

    화면에 백분율을 표시해도 progressbar와 자동 연결되지 않으므로 명시적으로 레이블을 연결합니다.

  • 03

    value를 null로 두면 indeterminate 상태이며 완료 비율 텍스트를 함께 표시하지 않습니다.