Get StartedFoundationsComponentsPatternsRulesDevelopAI & ToolsUpdates

Progress Circle

작업이 진행 중임을 알리거나 작업 시간을 시각적으로 나타내는 컴포넌트예요.

설치

pnpm dlx shadcn@latest add https://rebar.conmarket-landing.workers.dev/r/progress-circle.json

Anatomy

Progress Circle은 Circle Track과 Progress Indicator(Range)로 구성돼요.

Properties

Behavior

Indeterminate는 대기 시간이 얼마나 남았는지 모를 때 사용하고, 계속해서 회전해요. value 를 지정하지 않으면 Indeterminate로 동작해요.

Determinate는 대기 시간이 얼마나 남았는지 알 때 사용하고, 진행 상황에 맞춰 원을 채워요. value, minValue, maxValue 로 진행률을 지정해요.

Size

24, 40 두 가지 사이즈를 제공해요. 주로 전체 페이지 로딩에는 40을, 특정 요소 안에서는 24를 사용해요.

Tone

뒷배경의 색상과 로딩 맥락에 따라 Tone을 설정해 사용할 수 있어요. 기본 Tone에서 벗어나야 할 때는 tone="inherit" 로 지정하고 --track-color, --range-color CSS 변수를 직접 넣어요.

With Overlay

로딩 아이콘이 배경에 묻혀 잘 보이지 않을 때, 반투명한 배경(Overlay)을 추가하면 선명하게 만들 수 있어요.

Guidelines

Progress Circle의 위치

Progress Circle의 위치는 로딩 범위를 나타내요. 페이지 중앙에 있으면 전체 페이지가 로딩 중이라는 뜻이고, 이미지 위에 표시되면 해당 이미지만 로딩 중이라는 뜻이에요.

일반적으로 다음 위치에 사용해요.

  • 전체 화면
  • 버튼 안 또는 입력 필드 안
  • 시트, 모달 위

상황에 맞는 Tone 사용하기

Tone설명
Neutral가장 보편적으로 사용해요. 스타일보다 로딩 상태를 알아차리는 것이 더 중요할 때 사용해요.
Brand화면에서 중요도가 높고, 사용자 경험의 초기 단계에서 브랜드 컬러로 주요 전환점을 강조할 때 사용해요.
Static White화면 전체를 어둡게 덮는 Overlay 위에 로딩 상태를 표시할 때 주로 사용해요.
Custom기본 세 가지 색상에서 벗어나 놓인 배경에 따라 색상이 유연하게 바뀌어야 할 때 사용해요. 대표적으로 Ghost 버튼의 로딩 상태에 활용해요.

콘텐츠 여부에 따라 Overlay 표시 결정하기

화면에 콘텐츠가 있는 상태에서 로딩이 발생하면 Overlay를 함께 표시해요. 뒤 영역을 조작할 수 있으면 작은 Overlay를, 조작할 수 없으면 화면 전체를 덮는 Overlay를 사용해요.

콘텐츠가 없는 첫 로딩에서는 Progress Circle만 화면 중앙에 표시해서 로딩 상태를 보여줘요.

Do· 콘텐츠 위에서는 Overlay와 함께

콘텐츠 위에 표시할 때는 Overlay로 대비를 확보해요.

Don't· 콘텐츠에 묻힌 로딩

배경과 대비가 낮으면 로딩 중인지 알아차리기 어려워요.

Skeleton과의 차이

콘텐츠의 구조를 미리 보여줘야 한다면 Skeleton을 사용해요. Progress Circle은 콘텐츠 형태와 상관없이 '지금 작업 중'이라는 상태를 짧은 로딩(1~4초) 동안 알려줄 때 적합해요.

접근성

role="progressbar" 와 aria-valuenow, aria-valuemin, aria-valuemax 가 자동으로 지정돼요. 무엇을 불러오는지 알 수 있도록 aria-label 을 함께 지정해요.

Props

Prop

Type

On this page