Input

Input

텍스트·숫자·날짜 등 단일 행 입력을 위한 Input 컴포넌트입니다. form_field · input_field · input_group · input_split · input_otp를 조합해 레이블, 힌트, 애드온, 분할·인증 입력을 구성합니다.

기본

레이블과 힌트 텍스트가 포함된 폼 필드입니다.

2~20자 이내로 입력해 주세요.

단독 사용

form_field 래퍼 없이 input_field로 레이블과 input을 묶을 수 있습니다. 접근 가능한 이름은 반드시 지정합니다. 보이는 레이블이 있으면 label.form_field-label + htmlFor를, 아이콘만 있는 검색창·툴바 등에는 label.input_group으로 input을 감싸고 input_group-label_hidden으로 이름을 제공합니다.

아이콘만 있는 툴바 검색은 label.input_group으로 input을 감싸고, 화면에 보이지 않는 input_group-label_hidden으로 접근 가능한 이름을 지정합니다.

입력 타입

HTML input type에 따라 브라우저 기본 UI가 적용됩니다. class="input"은 모든 타입에 공통으로 사용합니다.

0~100 사이 정수

입력 종류

결제·본인인증·사업자 정보 등 도메인별 입력 패턴입니다. 예시는 부모 너비 100%를 기본으로 하며, 필요 시 form_field_fit · input_fit으로 최대 너비를 제한할 수 있습니다. input_split · input_otp · input_group · input_row를 조합해 구성합니다.

뒤 8자리는 마스킹 처리할 수 있습니다.

카드 뒷면 3자리

문자 메시지로 받은 6자리 번호를 입력하세요.

+82

인증번호가 오지 않으면 재요청해 주세요.

뒷자리는 보안을 위해 마스킹합니다.

천 단위 구분은 표시용으로 별도 포맷팅합니다.

크기

input_sm · input(기본) · input_lg로 padding·font-size를 조절합니다. 너비와는 별개이며 input_fit 등과 자유롭게 조합할 수 있습니다.

너비

크기와 독립적으로 너비를 제어합니다. 기본은 부모 100%, input_fit · input_field_fit · form_field_fit · form_fit으로 --input-max-width(320px)까지 제한합니다.

Input Group

input_group으로 앞뒤에 텍스트·아이콘 애드온을 붙일 수 있습니다.

KRW

필수 필드

required 속성과 form_field-required로 필수 입력을 표시합니다.

업무용 이메일을 입력해 주세요.

상태

disabled · readonly · is-error · is-success로 입력 상태를 표현합니다. 오류·성공 메시지는 색상만으로 전달하지 않고 텍스트와 aria 속성을 함께 사용합니다.

disabled 속성으로 편집을 막습니다.

입력 삭제

input_clearable 래퍼로 값이 있을 때 우측에 지우기 버튼을 표시합니다. readonly · disabled 상태에서는 버튼이 나타나지 않습니다.

조합 예시

유효성 검사 후 성공·실패 상태를 조합한 로그인 폼입니다. aria-invalid · aria-describedby · role="alert" · role="status"로 스크린 리더에 피드백을 전달합니다.

영문·숫자 4~16자

사용 가능한 아이디입니다.

API · Props

Prop타입기본값설명
refReact.Ref<HTMLInputElement>실제 input DOM 참조 (prefix · suffix 사용 시에도 input을 가리킴)
valuestring제어 컴포넌트 값 (Vue model-value 대응)
defaultValuestring''비제어 초기 값
typestringtextinput type 속성
size'sm' | 'md' | 'lg'mdinput_sm · input_lg
placeholderstringplaceholder 속성
disabledbooleanfalse비활성
errorbooleanfalse오류 상태 (is-error, aria-invalid)
blockbooleanfalse부모 너비 100% (input_block)
classNamestringinput 또는 input_group 루트에 추가 클래스
onChange(event) => void값 변경 콜백 (Vue update:modelValue 대응)

선언되지 않은 HTML 속성·이벤트(id,autoComplete, onBlur 등)는 루트 input 요소에 그대로 전달됩니다.

API · Children

Children설명
prefix앞쪽 애드온 (Vue #prefix → input_group-addon)
suffix뒤쪽 애드온 (Vue #suffix → input_group-addon)

API · Events

이벤트설명
onChange입력 값 변경 시 (Vue update:modelValue 대응). React change 이벤트를 전달합니다.
onPaste붙여넣기 시. data-input-split · data-input-otp 내부에서는 값을 각 칸에 분배합니다.
onKeyDown키 입력 시. 분할 입력의 Backspace 이동과 OTP 좌우 방향키 이동을 지원합니다.

클래스 · 속성

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

클래스설명
input텍스트 입력 루트
input_sm · input_lg · input_block크기·너비
input_masked마스킹 입력값 표시 시 자동 적용 (type="password" + 값 있음)
input_group · input_group-addon애드온 묶음
input_clearable · input_clear지우기 버튼 — input_clear에 data-ripple="surface"
is-error · is-disabled상태
data-ripple클릭 파장 활성. data-ripple="surface"는 절대 위치 보조 버튼용
data-ripple="false"해당 요소 ripple 비활성
data-no-ripple하위 전체 ripple 비활성

디자인 토큰

토큰기본값설명
--input-max-width320px데모·폼 최대 너비
--input-clear-size · --input-clear-offset클리어 버튼
--input-font-masked · --input-masked-letter-spacing마스킹 입력