Progress Circle
작업이 진행 중임을 알리거나 작업 시간을 시각적으로 나타내는 데 사용됩니다.

Progress Circle은 작업의 진행 상태를 시각적으로 나타내는 원형 컴포넌트로, 진행 상황을 퍼센트로 표시하거나 불특정 시간 동안의 로딩 상태를 나타낼 수 있습니다.
Differences from V2

- Spinner가 Progress Circle의 Indeterminate로 변경되었습니다.
- Type: 진행 상황을 표현할 수 있는 Progress Circle의 Determinate가 추가되었습니다.
Type
Indeterminate
프로세스가 진행 중이라는 것을 보여주지만, 얼마나 걸릴지를 알릴 필요가 없을 때 사용합니다.

Determinate
이는 작업의 시작과 끝이 명확하고, 사용자가 작업의 상태를 파악해야 하는 경우에 유용합니다. 예를 들어, 파일 다운로드 혹은 업로드와 같이 사용자가 남은 시간을 예측할 수 있도록 도와줍니다.

Size
Progress Circle은 24, 40으로 두 사이즈를 제공합니다.
주로 전체 페이지 로딩에 40을 사용하고, 특정 요소 안에서 사용하는 경우 24를 사용하고 있습니다.

Tone
Neutral
Neutral의 경우 가장 보편적으로 사용되며 다운로드, 업로드, 처리 등과 같이 기능적 역할을 하고, 스타일보다는 로딩 상태의 인식이 더 중요한 경우 자주 사용됩니다.

Brand
Brand의 경우 화면 내에서 중요도가 높고, 사용자 경험의 초기 단계에서 브랜드 컬러를 통해 주요 전환점을 강조할 때 사용할 수 있습니다.
피드에서 더 많은 글을 탐색하려고 할 때, 당근 첫 진입시 등과 같은 상황일 때 사용될 수 있습니다.

Static White
Static White의 경우 overlay 레이어 위에서 사용하거나, progress cirle이 잘 표현되지 않을 화면의 경우 사용합니다.
이를 사용할 경우 사용자가 쉽게 인지할 수 있을 만큼 배경이 충분한 대비를 제공하는지 확인합니다.

Placement

Progress Circle은 위치에 따라 로딩 범위가 결정됩니다.
페이지 중앙에 있으면 전체 페이지가 로딩 중임을 의미하고, 시트 중앙에 있으면 시트 내용이 로딩 중임을 나타냅니다. 이미지 위에 있으면 개별 이미지가 로딩 중임을 알 수 있습니다.
버튼에 위치하는 경우
버튼 내에서 Progress Circle을 사용할 때는 사용자의 행동과 시스템의 반응을 고려하는 것이 중요합니다. 특히, 사용자가 진행 중인 작업을 취소할 수 있는 기능을 제공할지 여부는 사용자 경험에 큰 영향을 미칩니다.
예를 들어, '구매하기'와 같은 중요한 액션의 경우, 사용자가 구매를 시작한 후 취소할 수 있는 옵션을 제공하면 사용자에게 유연성을 제공할 수 있습니다. 이는 사용자가 작업을 중단하거나 수정할 수 있는 기회를 제공하여 사용자 경험을 개선하는 데 도움이 됩니다.

Best Practice


Related Articles
개요
옵션 테이블
속성 | 값 | 기본값 |
---|---|---|
size | 40, 24 | 40 |
tone | neutral, brand, static white | neutral |
indeterminate | true, false |
링크
스펙
size=40
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | root | size | |
thickness | 5px |
size=24
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | root | size | |
thickness | 3px |
indeterminate=false
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | range | lengthDuration | 300ms |
lengthTimingFunction | cubic-bezier(0, 0, 0.15, 1) |
indeterminate=true
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | range | lengthDuration | 1.2s |
rotateDuration | 1.2s | ||
headTimingFunction | cubic-bezier(0.35, 0, 0.65, 1) | ||
tailTimingFunction | cubic-bezier(0.35, 0, 0.65, 0.6) | ||
rotateTimingFunction | cubic-bezier(0.35, 0.25, 0.65, 0.75) |
tone=neutral
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | track | color | |
range | color |
tone=brand
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | track | color | |
range | color |
tone=staticWhite
상태 | 슬롯 | 속성 | 값 |
---|---|---|---|
enabled | track | color | |
range | color |