Password
비밀번호 입력 전용 단일 행 컴포넌트. 입력 값은 항상 마스킹되어 표시됩니다.
개요
Cals Password는 Foundation Input(type="password")을 래핑하여 CALS 제품의 비밀번호 입력 UI를 선언적으로 구현하는 컴포넌트입니다.
주요 특징
- ✅ controlled / uncontrolled: value/onChange 또는 defaultValue로 값 관리
- ✅ FormItem 내장: label/required/description/error prop으로 폼 레이블 자동 래핑
- ✅ 라벨 도움말: labelTooltip으로 레이블 옆 도움말 아이콘 표시
- ✅ 가시성/포커스 제어: visible prop, ref.focus()/blur()/element
- ✅ 디자인 토큰: 조건부 토큰 오버라이드 (prop이 있을 때만 적용)
기본 사용
placeholder로 입력 전 안내 문구를 표시합니다.
Preview
기본값 설정
defaultValue로 초기 기본값을 지정합니다.
Preview
크기
size prop으로 입력란 크기를 지정합니다. xs / sm / md / lg / xl을 지원합니다.
Preview
비활성화 / 읽기 전용
disabled, readOnly 모두 비활성화 외관으로 표시되며 편집할 수 없습니다.
Preview
레이블
label prop으로 레이블을 표시하고, required로 필수 표시 기호를 추가합니다.
Preview
레이블 위치
orientation=“horizontal”이면 레이블이 왼쪽에 배치됩니다.
Preview
라벨 도움말
labelTooltip 지정 시 레이블 옆 아이콘에 마우스를 올리면 도움말이 표시됩니다.
Preview
글자 수 제한
maxLength 초과 입력은 차단되고, minLength는 유효성 검사 기준으로 전달됩니다.
Preview
오류 상태
error prop으로 입력란 외곽을 강조하고 오류 메시지를 표시합니다.
Preview
비밀번호를 입력하세요
스타일 오버라이드
backgroundColor, color, borderColor 등으로 디자인 토큰을 오버라이드합니다.
Preview
Props
| Prop | Type | Default | 설명 |
|---|---|---|---|
value | string | - | 입력 값 (controlled) |
defaultValue | string | - | 초기 기본값 (uncontrolled) |
onChange | (value: string) => void | - | 값 변경 콜백 |
placeholder | string | - | 입력 전 안내 문구 |
showPlaceholder | boolean | true | 안내 문구 표시 여부 |
size | "xs" | "sm" | "md" | "lg" | "xl" | "md" | 입력란 크기 |
visible | boolean | true | 표시 여부 |
disabled | boolean | - | 비활성화 |
readOnly | boolean | - | 읽기 전용 (disabled와 동일 처리) |
maxLength | number | - | 최대 글자 수 |
minLength | number | - | 최소 글자 수 |
label | ReactNode | - | 레이블 |
required | boolean | - | 필수 입력 표시 |
error | ReactNode | - | 오류 메시지 |
showLabel | boolean | false | 빈 레이블 공간 표시 여부 |
labelTooltip | string | - | 레이블 도움말 |
title | string | - | HTML title (native tooltip) |
backgroundColor | string | - | 배경색 토큰 오버라이드 |
color | string | - | 텍스트 색상 토큰 오버라이드 |
borderColor | string | - | 테두리 색상 토큰 오버라이드 |
borderWidth | string | - | 테두리 두께 |
fontSize | string | - | 폰트 크기 |
fontWeight | string | number | - | 폰트 굵기 |
fontFamily | string | - | 폰트 패밀리 |
fontStyle | string | - | 폰트 스타일 |
textAlign | string | - | 텍스트 정렬 |
className | string | - | 컴포넌트 컨테이너 className |
formClassName | string | - | FormItem 래퍼 className |
style | React.CSSProperties | - | 인라인 스타일 |
Ref
PasswordRef 인터페이스:
interface PasswordRef {
focus: () => void
blur: () => void
element: HTMLInputElement | null
}Last updated on