Switch

Switch

켜기/끄기를 표현하는 Switch 컴포넌트입니다. type="checkbox"role="switch"를 사용하며, 기본 너비는 인라인(콘텐츠)이며 switch_block · switch_group_block으로 전체 너비를 사용합니다.

유형

기본은 switch_controlswitch_label 순서입니다. switch_label-end는 레이블 → 스위치 순서이며, 설정 화면에서 자주 사용합니다.

레이블 뒤

switch_label-endswitch_labelswitch_control 순으로 마크업합니다. 전체 너비가 필요하면 switch_block 또는 switch_group_block을 추가합니다.

알림 설정 — switch_group_block

기본

레이블과 보조 설명(switch_hint)을 함께 사용할 수 있습니다.

단독 사용

레이블 없이 스위치만 사용할 수 있습니다. aria-label로 접근 가능한 이름을 지정합니다.

크기

switch_sm · switch(기본) · switch_lg로 트랙·텍스트 크기를 조절합니다.

너비

기본은 인라인(콘텐츠) 너비입니다. switch_block · switch_group_block으로 전체 너비를 사용합니다.

switch_group_block

색상

color_primary(기본) · color_success · color_danger · color_warning으로 켜짐 색을 지정합니다.

상태

켜짐·꺼짐·비활성·오류(is-error) 상태를 지원합니다.

그룹

switch_group으로 관련 스위치를 묶습니다. switch_group_compact로 간격을 줄입니다.

개인정보 설정
접근성 — switch_group_compact

폼 레이아웃

form_vertical · form_horizontal과 함께 사용합니다.

알림
자동 저장

API · Props

Prop타입기본값설명
labelstring라벨 텍스트. default 슬롯으로 대체
checkedboolean제어 켜짐 상태. v-model:checked 지원
default-checkedbooleanfalse비제어 초기 켜짐 상태
disabledbooleanfalse비활성
label-endbooleanfalse라벨을 스위치 뒤에 배치
size'sm' | 'md' | 'lg'mdswitch_sm · switch_lg
aria-labelstring라벨 없을 때 접근성 라벨
ripplebooleantrue클릭 파장(ripple). true 시 data-ripple 활성 · false 비활성. 기본 활성

API · Slots

슬롯설명
default라벨 텍스트 (label prop 대체). switch_content · switch_hint 조합 가능

API · Events

이벤트설명
update:checked켜짐 상태 변경 시. v-model:checked에 사용
change네이티브 input change 이벤트

클래스 · 속성

Vue 컴포넌트가 렌더하는 OOCSS 클래스입니다. HTML 마크업으로 직접 작성할 때 동일하게 조합합니다.

클래스설명
switch스위치 루트 label
switch_sm · switch_lg · switch_label-end크기·레이아웃
switch_control · switch_input · switch_track · switch_thumb입력·트랙
switch_label라벨
switch_group여러 스위치 묶음
data-ripple클릭 파장 활성. data-ripple="surface"는 절대 위치 보조 버튼용
data-ripple="false"해당 요소 ripple 비활성
data-no-ripple하위 전체 ripple 비활성

디자인 토큰

토큰기본값설명
--switch-width · --switch-height2.75rem · 1.5rem트랙 크기 (md)
--switch-width-sm · --switch-width-lg2.25rem · 3.25rem크기 변형
--switch-gap · --switch-radius라벨 간격·모서리