Steps
화면의 진행 단계를 시각적으로 표시하는 컴포넌트
개요
Steps는 steps 배열과 active 인덱스만으로 진행 단계를 선언적으로 표시하는 데이터 드리븐 스텝 컴포넌트입니다.
주요 특징
- ✅ 데이터 드리븐: steps 배열로 단계를 선언적으로 정의
- ✅ 상태 표시: 완료(체크)·진행 중·대기 상태 자동 인디케이터
- ✅ 단계별 스타일: controlStyle로 색상·폰트 오버라이드 (상태별 자동 파생)
- ✅ 숨김 처리: hidden 플래그로 특정 단계 비표시
- ✅ 컨테이너 제목: title prop으로 상단 제목 표시
- ✅ 표시 제어: visible prop으로 전체 표시/숨김
기본 사용
steps 배열과 active 인덱스를 전달합니다.
Preview
요구사항 분석
설계
3
개발
4
테스트
5
배포
활성 단계 제어
active와 onActiveChange로 현재 단계를 제어합니다.
Preview
1
요구사항 분석
2
설계
3
개발
4
테스트
5
배포
현재 단계: 0
컨테이너 제목
title prop으로 단계 표시줄 위에 제목을 표시합니다.
Preview
프로젝트 진행 현황
요구사항 분석
설계
개발
4
테스트
5
배포
단계별 스타일
각 단계에 controlStyle을 지정하면 상태(완료·진행·대기)에 따라 자동으로 색상이 파생됩니다.
Preview
접수
2
검토
3
승인
숨김 단계
hidden: true인 단계는 렌더링에서 제외됩니다.
Preview
1
단계 1
2
단계 3
스타일 오버라이드
backgroundColor, color로 컨테이너 스타일을 오버라이드합니다.
Preview
요구사항 분석
2
설계
3
개발
4
테스트
5
배포
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
steps | StepItemData[] | [] | 단계 목록 데이터 |
active | number | 0 | 현재 활성 단계 인덱스 (0-based) |
onActiveChange | (index: number) => void | - | 활성 단계 변경 콜백 |
title | string | - | 컨테이너 상단 제목 |
visible | boolean | true | 표시 여부 (false → 렌더 안 함) |
backgroundColor | string | - | 컨테이너 배경색 |
color | string | - | 컨테이너 글자색 |
className | string | - | 컨테이너 CSS 클래스 |
style | CSSProperties | - | 인라인 스타일 |
StepItemData
| Field | Type | Required | Description |
|---|---|---|---|
title | string | ✅ | 단계 제목 |
hidden | boolean | - | true이면 해당 단계를 렌더링에서 제외 |
translate | boolean | - | i18n 번역 적용 여부 |
controlStyle | StepControlStyle | - | 단계별 스타일 오버라이드 (상태에 따라 자동 파생) |
StepControlStyle
| Field | Type | Description |
|---|---|---|
borderColor | string | 인디케이터 테두리 색상 |
borderWidth | string | 인디케이터 테두리 두께 |
color | string | 인디케이터/텍스트 색상 |
fontFamily | string | 폰트 패밀리 |
fontSize | string | 폰트 크기 |
fontWeight | string | 폰트 굵기 |
fontStyle | string | 폰트 스타일 |
textAlign | string | 텍스트 정렬 |
접근성
권장 사항
- ✅ 활성 단계에
aria-current="step"자동 적용 - ✅ 완료 단계에 체크 아이콘 + 시각적 구분 자동 적용
- ✅ 단계 인디케이터에 순서 번호 표시
- ❌ 단계 수가 많은 경우 모바일 대응을 위해 스크롤 또는 축약 표시를 고려
관련 컴포넌트
- Timeline: 시간순 이벤트 표시
Last updated on