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로 바꾸지 않음, Tab 포커스 받음). 주지 않으면 감싸는 Form·ToolbarForm의 readOnly를 따른다
maxLengthnumber-최대 글자 수
minLengthnumber-최소 글자 수
labelReactNode-라벨. ""이면 정렬용 빈 자리만 두고 입력란에 잇지 않는다 (이름은 aria-label로 준다, labelTooltip 무시)
requiredboolean-필수 입력. FormItem *와 aria-required만 켠다 (HTML required는 붙이지 않음)
errorReactNode-오류 문구. 주면 오류 상태(aria-invalid)도 켠다
aria-invalidboolean-오류 상태. true면 문구 없이 상태만 켜고, false면 error가 있어도 상태와 문구를 끈다
labelTooltipstring-라벨 도움말 (아이콘 hover 시 표시). label에 글자가 있을 때만 나온다
titlestring-HTML title (native tooltip)
backgroundColorstring-배경색 토큰 오버라이드
colorstring-텍스트 색상 토큰 오버라이드
borderColorstring-테두리 색상 토큰 오버라이드
borderWidthstring-테두리 두께
fontSizestring-폰트 크기
fontWeightstring | number-폰트 굵기
fontFamilystring-폰트 패밀리
fontStylestring-폰트 스타일
textAlignstring-텍스트 정렬
classNamestring-FormItem 루트 className
inputClassNamestring-입력란(input) className
styleReact.CSSProperties-인라인 스타일

Ref

PasswordRef 인터페이스:

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