Skip to content

수량 스핀 버튼

spin-button은 좌우 증감 버튼과 input[type="number"]를 결합한 수량 선택 웹 컴포넌트입니다. Shadow DOM을 사용하며, 값 변경 시 valuechange 이벤트를 발생시킵니다.

기본 사용법

<script type="module">
if (!window.customElements.get("spin-button")) {
import("/ui/element/spin-button.js");
}
</script>
<spin-button value="1" min="1" max="10"></spin-button>
<script>
const el = document.querySelector("spin-button");
el.addEventListener("valuechange", (e) => console.log("value:", e.detail.value));
</script>

속성 (Attributes)

속성타입기본값설명
valueNumber현재 값
minNumber1최솟값
maxNumber999최댓값
stepNumber1증감 단위
maxlengthNumber입력 가능한 최대 자릿수
disabledBooleanfalse비활성화 여부

이벤트

이벤트설명
valuechange값이 변경될 때마다 발생 (증감 버튼 클릭, 사용자 입력, Enter/blur 검증 포함). detail.value에 현재 값이 담깁니다.

프로퍼티

  • value: get/set — 현재 값 (attribute와 동기화)

CSS 변수

스타일 조정: --spin-button-width, --spin-button-height, --spin-button-font-size, --spin-button-border, --spin-button-border-radius, --spin-button-btn-width, --spin-button-btn-color 등.