Checkbox
항목을 체크하거나 해제하는 컨트롤이에요. 알림 채널이나 약관 동의처럼 여러 항목 중 여러 개를 고를 때 써요. 하나만 고를 때는 RadioGroup을 써요.
사용 예시
옵션
Field로 감싸면 라벨이 연결돼서 라벨을 눌러도 체크돼요.
tsx
권장
누르는 즉시 적용되는 설정에는 Switch를 써요.
지양
Checkbox는 체크한 뒤 저장 버튼을 한 번 더 눌러야 적용될 것처럼 보여요.
여러 항목 고르기
여러 Checkbox의 값을 배열 하나로 관리할 때 CheckboxGroup으로 감싸요. 그 안에서는 화살표 키로도 Checkbox 사이를 이동할 수 있어요.
channels = ["push"]
tsx
권장
Checkbox마다 다른 value를 줘요.
지양
value가 없으면 체크해도 CheckboxGroup의 value에 추가되지 않아요.
모두 고르기
checked와 indeterminate는 하위 항목의 상태로 계산해서 따로 넘겨요. 상위 Checkbox를 누르면 하위 항목을 한꺼번에 바꿔요.
tsx
틀린 값
색만으로 알리지 말고 해야 할 일을 FieldError로 함께 적어요.
체크해야 지울 수 있어요.
tsx
다음에 열 때 다시 로그인하지 않아요.
권장
안내는 FieldHelp로 Field 안에 바로 둬요. Checkbox가 라벨과 같은 줄에 정렬돼요.
다음에 열 때 다시 로그인하지 않아요.
지양
div로 한 번 더 감싸면 Checkbox가 라벨과 안내의 가운데에 정렬되고 코드도 길어져요.
비활성
조건이 맞지 않아 고를 수 없는 항목은 숨기지 말고 비활성으로 둬요.
tsx
컨트롤
값
["email"]tsx
명세
| 이름 | 값 | 기본 |
|---|---|---|
| CheckboxGroup | ||
| value | string[] | - |
| 호출하는 쪽에서 체크한 값을 관리해요. 순서는 체크한 순서예요. | ||
| defaultValue | string[] | 빈 배열 |
| 처음 값이에요. | ||
| onValueChange | (value: string[], eventDetails) => void | - |
| 체크한 값이 바뀌면 호출돼요. | ||
| disabled | boolean | false |
| 안의 Checkbox가 모두 비활성이 돼요. | ||
| className | string | - |
| 모든 하위 컴포넌트에 쓸 수 있어요. | ||
| Checkbox | ||
| checked | boolean | - |
| 호출하는 쪽에서 체크 상태를 관리해요. | ||
| defaultChecked | boolean | false |
| 처음에 체크해 둘지 정해요. | ||
| onCheckedChange | (checked: boolean, eventDetails) => void | - |
| 체크 상태가 바뀌면 호출돼요. | ||
| indeterminate | boolean | false |
| 체크 표시 대신 가로 막대가 보여요. | ||
| value | string | - |
| CheckboxGroup 안에서 체크하면 배열에 추가되는 값이에요. | ||
| color | neutral, info, success, warning, danger | neutral |
| 의미에 맞는 색이 있을 때만 바꿔요. | ||
| disabled | boolean | false |