ToggleGroup
여러 토글 버튼을 그룹으로 관리하는 선택 컴포넌트
개요
ToggleGroup은 여러 토글 항목을 그룹으로 묶어 단일 또는 다중 선택을 지원하는 컴포넌트입니다. pill 스타일의 버튼과 커스텀 렌더링을 지원합니다.
주요 특징
- ✅ 단일/다중 선택: multiple prop으로 전환
- ✅ 배치 방향: 수평/수직 레이아웃 옵션
- ✅ 커스텀 렌더링: renderItem으로 자유로운 UI
- ✅ FormItem 통합: 레이블, 설명, 에러 메시지
- ✅ 접근성: role=“group”, aria-checked 지원
- ✅ 디자인 토큰: 테마 커스터마이징 지원
Variants
선택 모드
Preview
배치 방향
Preview
Variant 설명
| Variant | 설명 | 사용 사례 |
|---|---|---|
| multiple | 여러 항목 동시 선택 | 메트릭 태그, 필터 선택 |
| single | 하나만 선택 가능 | 기간 선택, 뷰 모드 전환 |
| horizontal | 가로 배치 | 탭 대체, 필터 바 |
| vertical | 세로 배치 | 사이드바 옵션 |
States
Preview
최소 1개 선택 필요
사용 예시
예시 1: 분석 기간 필터
대시보드에서 데이터 조회 기간을 선택합니다.
Preview
예시 2: 메트릭 태그 선택
차트에 표시할 지표를 다중 선택합니다.
Preview
차트에 표시할 지표를 선택하세요
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
items | ToggleGroupItem[] | - | 토글 항목 배열 (필수) |
value | string[] | - | 선택된 값 (제어) |
defaultValue | string[] | [] | 기본 선택 값 |
onValueChange | (value: string[]) => void | - | 값 변경 핸들러 |
multiple | boolean | true | 다중 선택 모드 |
itemOrientation | "horizontal" | "vertical" | "horizontal" | 항목 배치 방향 |
disabled | boolean | false | 비활성화 여부 |
renderItem | (item: ToggleGroupItem, pressed: boolean, toggle: () => void) => ReactNode | - | 커스텀 렌더 함수 |
label | string | - | 필드 레이블 |
labelWidth | string | number | - | 레이블 너비 |
required | boolean | false | 필수 여부 |
orientation | "horizontal" | "vertical" | "horizontal" | 레이블-필드 배치 방향 |
description | string | - | 설명 텍스트 |
error | string | - | 에러 메시지 |
className | string | - | 추가 CSS 클래스 |
기본 사용법
import { ToggleGroup } from "@vortex/ui-icignal"
// 다중 선택
<ToggleGroup
label="태그"
items={[
{ value: "a", label: "옵션 A" },
{ value: "b", label: "옵션 B" },
]}
defaultValue={["a"]}
/>
// 단일 선택
<ToggleGroup
label="뷰 모드"
multiple={false}
items={[...]}
defaultValue={["table"]}
/>접근성
ARIA 속성
<ToggleGroup
label="기간 선택"
items={[
{ value: "7d", label: "7일" },
{ value: "30d", label: "30일" },
]}
/>권장 사항
- ✅
label을 제공하여 그룹 목적 전달 - ✅ 키보드: Tab으로 이동, Space/Enter로 토글
- ✅
role="group",aria-checked자동 설정 - ❌ 레이블 없이 단독 사용 지양
관련 컴포넌트
- Toggle: 단일 토글 버튼
- CheckboxGroup: 체크박스 다중 선택
- RadioButtonGroup: 라디오 단일 선택
Last updated on