ToggleGroup
Toggle 여러 개를 모아 그중 하나나 여럿을 고르는 컴포넌트예요. 우선순위, 요일, 필터처럼 짧은 값을 한눈에 보이고 바로 누를 때 써요. 이어진 트랙 안에서 보기 방식을 바꾸면 SegmentedControl을, 하나만 켜고 끄면 Toggle을 써요.
사용 예시
하나 고르기
multiple 없이 쓰면 하나만 골라요. 고른 항목을 다시 눌러도 고르기가 풀리지 않아요.
tsx
여럿 고르기
반복 요일처럼 여러 값을 함께 고를 때 multiple을 적어요.
tsx
목록 필터
여러 조건을 함께 적용하는 필터를 한 값으로 관리할 때 써요.
tsx
SegmentedControl과 구분
권장
떨어진 pill 여러 개 중에 값을 고를 때 써요.
지양
같은 내용의 보기 방식을 바꾸면 이어진 트랙 안에서 고르는 SegmentedControl을 써요.
Toggle 여러 개와 구분
권장
ToggleGroup이 고른 값을 관리해서 늘 하나만 골라져요.
지양
Toggle은 하나씩 따로 켜져서 둘이 함께 켜질 수 있어요.
아이콘
아이콘만 쓰면 shape를 square나 circle로 두고 항목마다 aria-label을 적어요.
tsx
항목 색
고른 값에 의미가 있으면 그 항목에만 color를 적어요.
tsx
배경에 따라
행은 ToggleGroup을 두는 배경, 열은 surface 값이에요.
barewellpanel
bg
well
panel
tsx
비활성
지금 고를 수 없는 항목만 막거나, ToggleGroup 전체를 막아요.
항목 하나
전체
tsx
유형
크기와 모양
행은 shape, 열은 size예요.
pill
circle
square
tsx
컨트롤
값
"normal"tsx
명세
| 이름 | 값 | 기본 |
|---|---|---|
| ToggleGroup | ||
| multiple | boolean | false |
| 여러 개를 고를 때 적어요. 값의 타입이 string[]로 바뀌어요. | ||
| value | string | null, string[] | - |
| 호출하는 쪽에서 고른 값을 관리해요. multiple이면 배열이에요. | ||
| defaultValue | string | null, string[] | null, [] |
| 처음에 고를 값이에요. | ||
| onValueChange | (value, eventDetails) => void | - |
| 고른 값이 바뀌면 호출돼요. value는 하나만 고르면 string | null, multiple이면 고른 값 전체를 담은 string[]이에요. | ||
| size | sm, md, lg | sm |
| 높이는 sm h-8, md h-9, lg h-10이에요. 같은 크기의 Button과 높이가 같아요. | ||
| shape | pill, circle, square | pill |
| circle과 square는 너비가 높이와 같아서 글자 한두 자나 아이콘만 둘 때 써요. | ||
| surface | bare, well, panel | bare |
| 꺼진 항목의 배경이에요. Toggle과 같은 값이에요. | ||
| disabled | boolean | false |
| 모든 항목을 비활성으로 만들어요. | ||
| aria-label | string | - |
| 무엇을 고르는지 적어요. 화면에 보이는 제목이 없을 때 꼭 적어요. | ||
| className | string | - |
| ToggleGroupItem에도 쓸 수 있어요. 항목 사이 간격은 8px이고 넘치면 다음 줄로 넘어가요. | ||
| ToggleGroupItem | ||
| value | string | - |
| 이 항목을 고르면 넘어가는 값이에요. | ||
| color | neutral, brand, info, success, warning, danger | neutral |
| 고른 상태의 색이에요. neutral은 solid, 나머지는 weak 배경과 글자색이에요. | ||
| disabled | boolean | false |
| aria-label | string | - |
| 아이콘만 쓰면 꼭 적어요. | ||