Tracker | CoUI

Tracker

여러 세그먼트로 구성된 진행 상태를 시각적으로 추적하는 컴포넌트

Tracker#

여러 세그먼트로 구성된 상태를 색상으로 시각화하는 컴포넌트입니다. 업타임 모니터링, 습관 추적, 스트릭 표시 등에 활용됩니다.

Live Preview#

Web
Flutter
Loading Flutter...
class TrackerDefaultExample extends StatefulComponent {
  const TrackerDefaultExample({super.key});

  @override
  State<TrackerDefaultExample> createState() => _TrackerDefaultExampleState();
}

class _TrackerDefaultExampleState extends State<TrackerDefaultExample> {
  @override
  Component build(BuildContext context) {
    return CoTracker(
      segments: [
        CoreTrackerSegment(status: CoreTrackerStatus.fine, tooltip: 'OK'),
        CoreTrackerSegment(status: CoreTrackerStatus.warning, tooltip: 'Slow'),
        CoreTrackerSegment(status: CoreTrackerStatus.critical, tooltip: 'Down'),
      ],
    );
  }
}
class TrackerDefaultExample extends StatefulWidget {
  const TrackerDefaultExample({super.key});

  @override
  State<TrackerDefaultExample> createState() => _TrackerDefaultExampleState();
}

class _TrackerDefaultExampleState extends State<TrackerDefaultExample> {
  @override
  Widget build(BuildContext context) {
    return CoTracker(
      segments: [
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.warning),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.critical),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.unknown),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.warning),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
        CoreTrackerSegment(status: CoreTrackerStatus.fine),
      ],
    );
  }
}

사용 시기 (When to Use)#

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

  • 서비스 업타임/다운타임 이력을 색상 바로 표시할 때
  • 습관 추적, 스트릭, 연속 기록을 시각화할 때

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

  • Progress: 단일 진행률 표시
  • Stat: 숫자 기반 통계 표시

기본 사용법 (Basic Usage)#

CoTracker(
  segments: [
    CoreTrackerSegment(status: CoreTrackerStatus.fine, tooltip: 'OK'),
    CoreTrackerSegment(status: CoreTrackerStatus.warning, tooltip: 'Slow'),
    CoreTrackerSegment(status: CoreTrackerStatus.critical, tooltip: 'Down'),
    CoreTrackerSegment(status: CoreTrackerStatus.unknown, tooltip: 'N/A'),
  ],
)
CoTracker(
  segments: [
    CoreTrackerSegment(status: CoreTrackerStatus.fine, tooltip: 'OK'),
    CoreTrackerSegment(status: CoreTrackerStatus.warning, tooltip: 'Slow'),
    CoreTrackerSegment(status: CoreTrackerStatus.critical, tooltip: 'Down'),
    CoreTrackerSegment(status: CoreTrackerStatus.unknown, tooltip: 'N/A'),
  ],
)

Props / Parameters#

속성타입기본값설명
segments List<CoreTrackerSegment> 필수 세그먼트 데이터 목록
roundedbooltrue모서리 둥글기 적용
itemHeight double? 32px 세그먼트 높이
gapdouble?2px세그먼트 간 간격

CoreTrackerSegment#

속성타입설명
status CoreTrackerStatus 상태 (fine, warning, critical, unknown)
tooltipString?호버 시 툴팁 텍스트

CoreTrackerStatus 색상#

상태색상
finesuccess (green)
warningwarning (orange)
criticalerror (red)
unknownoutlineVariant (gray)

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

항목FlutterWeb
클래스명CoTrackerCoTracker
렌더링 Row + Expanded + Container div flex + flex-1
둥글기 ClipRRect + radiusField CSS rounded-${CoreRadius.scale.field}
툴팁InstantTooltip 위젯HTML title attribute
  • Progress: 단일 진행률 바
  • Stat: 숫자 기반 통계 카드