토글
켜기/끄기 스위치를 제공하는 토글 컴포넌트입니다.
기본 사용법
토글은 체크박스의 변형으로, 켜기/끄기 상태를 시각적으로 표현합니다.
HTML
<label>
<input type="checkbox" class="toggle" />
토글 옵션
</label>
<label>
<input type="checkbox" class="toggle" checked />
켜짐 상태
</label>
<label>
<input type="checkbox" class="toggle" disabled />
비활성화
</label>
<label>
<input type="checkbox" class="toggle" checked disabled />
켜짐 (비활성화)
</label>실제 예제:
실용적인 예제
실제 설정 화면에서 토글을 활용한 예제입니다.
알림 설정
이메일 알림중요한 업데이트를 이메일로 받습니다
푸시 알림모바일 기기로 알림을 받습니다
SMS 알림문자 메시지로 알림을 받습니다
마케팅 수신 동의프로모션 및 이벤트 정보를 받습니다
접근성
토글은 키보드 포커스와 Space/Enter 키로 조작할 수 있습니다.
키보드 조작 데모 (Tab으로 이동, Space로 토글)
SCSS 스타일
podo-ui의 믹스인을 사용하여 토글 스타일을 적용할 수 있습니다.
component.module.scss
@use 'podo-ui/mixin' as *;
.toggleWrapper {
display: flex;
align-items: center;
gap: s(3);
label {
display: flex;
align-items: center;
gap: s(2);
cursor: pointer;
user-select: none;
}
}
// 커스텀 토글 스타일
.toggle {
appearance: none;
position: relative;
border-radius: r(full);
width: 33px;
height: 20px;
background-color: color(bg-toggle);
cursor: pointer;
transition: 0.15s;
&::before {
content: '';
position: absolute;
left: 3px;
top: 2px;
width: 16px;
height: 16px;
border-radius: 50%;
background-color: #ffffff;
transition: 0.15s;
}
&:checked {
background-color: color(info);
&::before {
left: auto;
right: 3px;
}
}
&:disabled {
background-color: color(bg-disabled);
cursor: not-allowed;
&::before {
background-color: color(bg-toggle);
}
}
&:focus-visible:not(:disabled) {
outline: 4px solid color(primary-outline);
}
}다크 모드
다크 모드에서도 자동으로 적절한 스타일이 적용됩니다.