선택
드롭다운 형태로 옵션을 선택할 수 있는 컴포넌트입니다.
기본 사용법
select는 여러 옵션 중 하나를 선택할 수 있는 드롭다운 요소입니다.
HTML
<select>
<option value="" disabled selected>옵션을 선택하세요</option>
<option value="1">옵션 1</option>
<option value="2">옵션 2</option>
<option value="3">옵션 3</option>
</select>실제 예제:
플레이스홀더
선택되지 않은 상태를 표시하기 위해 플레이스홀더를 사용할 수 있습니다.
HTML
<select>
<option value="" disabled selected>카테고리를 선택하세요</option>
<option value="electronics">전자제품</option>
<option value="fashion">패션</option>
<option value="food">식품</option>
</select>실제 예제:
아이콘
select에 아이콘을 추가할 수 있습니다.
HTML
<div class="with-icon">
<i class="icon-user"></i>
<select>
<option value="" disabled selected>사용자 역할 선택</option>
<option value="admin">관리자</option>
<option value="user">사용자</option>
<option value="guest">게스트</option>
</select>
</div>
<div class="with-icon">
<i class="icon-globe"></i>
<select>
<option value="" disabled selected>언어 선택</option>
<option value="ko">한국어</option>
<option value="en">English</option>
<option value="ja">日本語</option>
</select>
</div>실제 예제:
상태
select는 기본, 비활성화, 다중 선택 상태를 지원합니다.
실제 예제:
SCSS 스타일
podo-ui의 믹스인을 사용하여 select 스타일을 적용할 수 있습니다.
component.module.scss
@use 'podo-ui/mixin' as *;
.customSelect {
padding: s(3) s(7) s(3) s(5);
border: 1px solid color(border);
border-radius: r(3);
background: color(bg-block);
color: color(default-deep-base);
outline: none;
appearance: none;
cursor: pointer;
// 커스텀 화살표 (자동 포함됨)
background-image: url('data:image/svg+xml,...');
background-repeat: no-repeat;
background-position: right 11px center;
&:focus-visible:not(:disabled) {
outline: 4px solid color(primary-outline);
}
&:disabled {
color: color(text-action-disabled);
background-color: color(bg-disabled);
cursor: not-allowed;
}
}
// 아이콘과 함께 사용
.withIcon {
position: relative;
display: inline-block;
> i {
position: absolute;
left: s(3);
top: 50%;
transform: translateY(-50%);
color: color(text-action);
pointer-events: none;
}
> select {
padding-left: s(8);
}
}