Skip to Content

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로 입력 전 안내 문구를 표시합니다.

기본값 설정

defaultValue로 초기 기본값을 지정합니다.


크기

size prop으로 입력란 크기를 지정합니다. xs / sm / md / lg / xl을 지원합니다.


비활성화 / 읽기 전용

disabled, readOnly 모두 비활성화 외관으로 표시되며 편집할 수 없습니다.


레이블

label prop으로 레이블을 표시하고, required로 필수 표시 기호를 추가합니다.

레이블 위치

orientation=“horizontal”이면 레이블이 왼쪽에 배치됩니다.

라벨 도움말

labelTooltip 지정 시 레이블 옆 아이콘에 마우스를 올리면 도움말이 표시됩니다.


글자 수 제한

maxLength 초과 입력은 차단되고, minLength는 유효성 검사 기준으로 전달됩니다.


오류 상태

error prop으로 입력란 외곽을 강조하고 오류 메시지를 표시합니다.


스타일 오버라이드

backgroundColor, color, borderColor 등으로 디자인 토큰을 오버라이드합니다.


Props

PropTypeDefault설명
valuestring-입력 값 (controlled)
defaultValuestring-초기 기본값 (uncontrolled)
onChange(value: string) => void-값 변경 콜백
placeholderstring-입력 전 안내 문구
showPlaceholderbooleantrue안내 문구 표시 여부
size"xs" | "sm" | "md" | "lg" | "xl""md"입력란 크기
visiblebooleantrue표시 여부
disabledboolean-비활성화
readOnlyboolean-읽기 전용 (disabled와 동일 처리)
maxLengthnumber-최대 글자 수
minLengthnumber-최소 글자 수
labelReactNode-레이블
requiredboolean-필수 입력 표시
errorReactNode-오류 메시지
showLabelbooleanfalse빈 레이블 공간 표시 여부
labelTooltipstring-레이블 도움말
titlestring-HTML title (native tooltip)
backgroundColorstring-배경색 토큰 오버라이드
colorstring-텍스트 색상 토큰 오버라이드
borderColorstring-테두리 색상 토큰 오버라이드
borderWidthstring-테두리 두께
fontSizestring-폰트 크기
fontWeightstring | number-폰트 굵기
fontFamilystring-폰트 패밀리
fontStylestring-폰트 스타일
textAlignstring-텍스트 정렬
classNamestring-컴포넌트 컨테이너 className
formClassNamestring-FormItem 래퍼 className
styleReact.CSSProperties-인라인 스타일

Ref

PasswordRef 인터페이스:

interface PasswordRef { focus: () => void blur: () => void element: HTMLInputElement | null }
Last updated on