Checkbox
레이블을 포함한 체크박스 입력 컴포넌트
개요
iCignal Checkbox는 Foundation Checkbox를 래핑하여 레이블 기능을 추가한 컴포넌트입니다.
주요 특징
- ✅ 레이블 통합: 체크박스 우측에 레이블 자동 배치
- ✅ 다양한 크기: xs, sm, md, lg, xl 5단계 크기 지원
- ✅ 읽기 전용: readOnly 상태에서 조회만 가능
- ✅ 오류 상태: aria-invalid를 통한 시각적 오류 표시
- ✅ 접근성: ARIA 속성 자동 적용
- ✅ 디자인 토큰: 테마 커스터마이징 지원
Sizes
Preview
사용 예시
기본 상태
단일 항목의 선택 또는 해제를 위한 입력 요소입니다.
Preview
체크 상태 표시
선택 시 Checked 상태를 시각적으로 표시합니다.
Preview
읽기 전용 상태
읽기 전용 상태에서는 조회만 가능하며 선택 및 변경이 제한됩니다.
Preview
오류 상태 표시
오류 발생 시 aria-invalid 속성으로 시각적 피드백을 제공합니다.
Preview
레이블 제공
체크박스에 레이블을 제공하며, 레이블은 체크박스 우측에 배치됩니다. 레이블 클릭 시에도 토글이 동작합니다.
Preview
레이블 없이 사용
레이블 없이 체크박스만 단독으로 사용할 수도 있습니다.
Preview
API Reference
Props
| Prop | Type | Default | Description |
|---|---|---|---|
label | ReactNode | - | 체크박스 우측 레이블 |
size | "xs" | "sm" | "md" | "lg" | "xl" | "md" | 체크박스 크기 |
checked | boolean | - | 체크 상태 (제어 모드) |
defaultChecked | boolean | - | 초기 체크 상태 (비제어 모드) |
indeterminate | boolean | - | 부분 선택 상태 |
disabled | boolean | - | 비활성화 여부 |
readOnly | boolean | - | 읽기 전용 여부 |
value | string | - | 폼 제출 시 전달되는 값 |
name | string | - | 폼 필드 이름 |
className | string | - | 추가 CSS 클래스 |
Events
| Event | Type | Description |
|---|---|---|
onCheckedChange | (checked: boolean) => void | 체크 상태 변경 콜백 |
기본 사용법
import { Checkbox } from "@vortex/ui-icignal"
<Checkbox label="동의합니다" />
<Checkbox label="선택됨" defaultChecked />
<Checkbox label="읽기 전용" readOnly defaultChecked />
<Checkbox label="비활성" disabled />접근성
ARIA 속성
Base UI Checkbox가 자동으로 제공합니다:
// role="checkbox" 자동 적용
// aria-checked="true" | "false" | "mixed" 자동 적용
// aria-disabled 자동 적용
<Checkbox label="이용약관 동의" />권장 사항
- ✅
labelprop을 통해 레이블을 제공 - ✅ 레이블 없이 사용할 경우
aria-label추가 - ✅ 에러 상태 시
aria-invalid속성 추가 - ❌ 라벨 없이 단독 사용 지양
관련 컴포넌트
- Checkbox (Foundation): Foundation 레이어 체크박스
- CheckboxGroup: 여러 체크박스를 그룹으로 관리
- Switch: 즉시 적용되는 ON/OFF 토글
- RadioButtonGroup: 단일 선택 옵션 그룹
Last updated on