Skip to Content

ZipCodeKR

한국 우편번호 검색 컨트롤 — 읽기전용 입력 필드 + 검색 버튼 구성


개요

Cals ZipCodeKR은 한국 우편번호 검색을 위한 전용 컨트롤입니다. 우편번호 입력 필드는 항상 읽기전용이며, 검색 아이콘 버튼을 클릭하여 주소를 조회합니다. 검색 결과는 콜백을 통해 상위 컴포넌트에 전달됩니다.

주요 특징

  • 읽기전용 입력: 우편번호 값은 검색 결과로만 설정
  • 검색 버튼: 아이콘 버튼으로 주소 검색 팝업 트리거
  • FormItem 래핑: label, required, orientation 등 폼 기능 지원
  • 스타일 오버라이드: backgroundColor, color, border 등 커스터마이징
  • 가시성/비활성: visible, disabled prop
  • 크기: xs ~ xl 5단계 크기 지원

기본 사용


레이블 + 필수 표시


수평 레이아웃


비활성 상태

disabled 시 검색 버튼이 비활성화됩니다. 입력 필드는 항상 읽기전용입니다.


오류 상태


스타일 오버라이드


Kakao 주소 검색 연동 예시

import { ZipCodeKR } from "@vortex/ui-cals" function AddressForm() { const [zipcode, setZipcode] = useState("") const [address, setAddress] = useState("") const handleSearch = () => { new window.kakao.Postcode({ oncomplete(data) { setZipcode(data.zonecode) setAddress(data.roadAddress) }, }).open() } return ( <div className="space-y-2"> <ZipCodeKR label="우편번호" value={zipcode} onSearchClick={handleSearch} /> <input value={address} readOnly placeholder="도로명 주소" /> </div> ) }

API Reference

Props

PropTypeDefaultDescription
valuestring-우편번호 값
defaultValuestring-초기 우편번호 값
placeholderstring-안내 텍스트
showPlaceholderbooleantrueplaceholder 표시 여부
visiblebooleantrue표시 여부
disabledbooleanfalse검색 버튼 비활성
size"xs"|"sm"|"md"|"lg"|"xl""md"크기
onSearchClick() => void-검색 버튼 클릭 콜백
onComplete(data: ZipCodeResult) => void-주소 선택 완료 콜백
onChange(value: string) => void-값 변경 콜백
searchButtonLabelstring"주소 검색"검색 버튼 aria-label
searchIconReactNode-커스텀 검색 아이콘
labelReactNode-FormItem 레이블
showLabelbooleanfalse빈 레이블 공간 표시
labelTooltipstring-레이블 도움말
orientation"horizontal"|"vertical"-레이블 위치
requiredbooleanfalse필수 입력 표시
errorReactNode-오류 메시지
backgroundColorstring-배경색
colorstring-텍스트/아이콘 색상
borderColorstring-테두리 색상
borderWidthstring-테두리 두께
fontSizestring-폰트 크기
fontWeightstring | number-폰트 굵기
fontFamilystring-폰트 패밀리
fontStylestring-폰트 스타일
textAlignstring-텍스트 정렬
classNamestring-컨테이너 className
formClassNamestring-FormItem 래퍼 className

Ref

Property/MethodTypeDescription
focus()() => void검색 버튼에 포커스
blur()() => void포커스 해제
elementHTMLElement | null컨테이너 DOM 요소

ZipCodeResult

PropertyTypeDescription
zonecodestring우편번호
roadAddressstring도로명 주소
jibunAddressstring지번 주소
rawunknown전체 원본 데이터

접근성

권장 사항

  • ✅ group role 컨테이너로 렌더링됩니다.
  • ✅ 검색 버튼에 aria-label이 자동 설정됩니다.
  • ✅ disabled 시 검색 버튼에 disabled 속성이 적용됩니다.
  • ✅ error 시 input에 aria-invalid 속성이 설정됩니다.

관련 컴포넌트

Last updated on