Progress | CoUI

Progress

진행률 표시 컴포넌트

Progress#

작업 진행률을 시각적으로 표시하는 컴포넌트입니다. 직선형(CoProgress)과 원형(CoRadialProgress)을 지원합니다.

Live Preview#

사용 시기 (When to Use)#

이 컴포넌트를 사용하세요:

  • 파일 업로드, 다운로드 등 작업 진행률을 표시할 때
  • 목표 달성률, 스토리지 사용량 등 비율을 시각화할 때

대신 다른 컴포넌트를 사용하세요:

  • Loading: 단순 로딩 스피너가 필요할 때
  • Skeleton: 콘텐츠 로딩 플레이스홀더가 필요할 때
  • Slider: 사용자가 값을 조절해야 할 때

기본 사용법 (Basic Usage)#

// 기본 진행률 바 (0.0 ~ 1.0 범위)
CoProgress(value: 0.65)

// 커스텀 min/max 범위 지정
CoProgress(value: 75, min: 0, max: 100)

// 색상 커스터마이징
CoProgress(
  value: 0.5,
  color: Colors.green,
  backgroundColor: Colors.green.withOpacity(0.2),
)

// 원형 진행률
CoRadialProgress(
  value: 75,
  showValueText: true,
)
// 기본 진행률 바 (0.0 ~ 1.0 범위)
CoProgress(value: 0.65)

// 커스텀 min/max 범위 지정
CoProgress(value: 75, min: 0, max: 100)

// 원형 진행률
CoRadialProgress(
  value: 75,
  showValueText: true,
)

Props / Parameters#

CoProgress (직선형)#

속성타입기본값설명
value double? null 진행률 (0.0~1.0)
mindouble0.0최소값
maxdouble1.0최대값
disableAnimation bool false 애니메이션 비활성화
color Color? / CoreColor? primary 인디케이터 색상
backgroundColor Color? / CoreColor? primary/20 트랙 배경 색상
borderRadius double? CoreRadius.field 모서리 둥글기
minHeight double? 8px 높이 (두께)

CoRadialProgress (원형)#

속성타입기본값설명
valuedouble필수진행률 (0~100)
showValueText bool false 퍼센트 텍스트 표시
sizedouble?80px원 지름
strokeWidthdouble?8px링 두께
color Color? / CoreColor? primary 진행 색상
backgroundColor Color? / CoreColor? surfaceContainer 트랙 색상
child Widget? / Component? null 중앙 커스텀 콘텐츠

동작 스펙 (Behavior)#

직선형#

  • value 변경 시 부드러운 width 애니메이션 (300ms ease-in-out)
  • 인디케이터에 borderRadius 적용 — 양쪽 둥근 모양
  • 트랙 배경 기본값: primary 색상의 20% 투명도

원형#

  • 12시 방향(-π/2)에서 시작하는 원형 아크
  • strokeCap: round — 양쪽 끝 둥근 형태
  • showValueText: true 시 중앙에 "75%" 형태 표시

사용 가이드라인 (Usage Guidelines)#

Do#

원형 진행률은 대시보드 통계에 적합합니다.

CoRadialProgress(
  value: 75,
  showValueText: true,
)

공간이 제한된 카드에서 목표 달성률을 효과적으로 표시합니다.

Don't#

진행률이 멈춘 상태에서 아무 피드백 없이 두지 마세요.

진행이 느리면 "대용량 파일 처리 중..." 같은 텍스트를 추가하세요.

접근성 (Accessibility)#

ARIA 속성#

  • Web: role="progressbar", aria-valuenow, aria-valuemin, aria-valuemax 자동 적용
  • Flutter: Semantics 노드에 진행률 값 전달

크로스 플랫폼 차이점 (Platform Differences)#

항목FlutterWeb
클래스명 CoProgress / CoRadialProgress CoProgress / CoRadialProgress
값 범위0.0~1.0 (기본)0.0~1.0 (기본)
직선형 렌더링 Container + AnimatedContainer div + inline style
원형 렌더링CustomPaintCSS radial-progress
애니메이션AnimatedContainer 300msCSS transition 300ms
  • Loading: 로딩 스피너
  • Skeleton: 콘텐츠 플레이스홀더
  • Slider: 값 조절 (Progress는 읽기 전용)