Skip to Content
ComponentsCalsColorPicker

ColorPicker

색상 선택 팝업을 통해 색상을 지정하는 컴포넌트


개요

Cals ColorPicker는 Foundation ColorPicker 프리미티브를 합성하여 CALS 제품의 색상 선택 UI를 선언적으로 구현하는 컴포넌트입니다. 투명도 슬라이더, 사전 정의 색상 목록, 폼 레이블 연동 등을 prop으로 제공합니다.

주요 특징

  • controlled / uncontrolled: value/onChange 또는 defaultValue로 값 관리
  • 투명도 지원: showAlpha로 투명도 슬라이더 표시/숨김
  • 사전 정의 색상: predefineColors로 자주 쓰는 색상 빠르게 선택
  • FormItem 내장: label/required/description/error prop으로 폼 레이블 자동 래핑
  • 라벨 도움말: labelTooltip으로 레이블 옆 도움말 아이콘 표시
  • 가시성/포커스 제어: visible prop, ref.focus()/blur()/element
  • 디자인 토큰: 조건부 토큰 오버라이드 (prop이 있을 때만 적용)

기본 사용

색상 트리거를 클릭하면 색상 선택 팝업이 열립니다.


크기

size prop으로 트리거 크기를 지정합니다. xs / sm / md / lg / xl을 지원합니다.


읽기 전용 / 비활성화

readOnly 또는 disabled를 설정하면 팝업을 열 수 없습니다.


투명도

showAlpha를 true로 설정하면 알파 슬라이더가 표시됩니다.


사전 정의 색상

predefineColors로 자주 사용하는 색상 목록을 제공할 수 있습니다. 팝업 하단에 색상 스와치로 표시됩니다.


레이블

title 또는 label prop으로 폼 레이블을 표시합니다. orientation으로 레이블 위치를 제어합니다.


API

Props

PropTypeDefaultDescription
valuestring-색상 값 (controlled)
defaultValuestring-초기 색상 값 (uncontrolled)
size"xs" | "sm" | "md" | "lg" | "xl""md"트리거 크기
visiblebooleantrue표시 여부 (false → 렌더링 안 함)
disabledboolean-비활성화
readOnlyboolean-읽기 전용
showAlphabooleanfalse투명도 슬라이더 표시 여부
predefineColorsstring[]-사전 정의 색상 목록
placeholderstring-값 없을 때 안내 문구
titlestring-레이블 텍스트 (label 대체)
showLabelbooleanfalse빈 레이블 공간 표시
labelTooltipstring-레이블 도움말 (Tooltip)
payloadEncryptboolean-전송 데이터 암호화 플래그 (메타데이터)
borderColorstring-테두리 색상 토큰 오버라이드
colorstring-텍스트 색상 토큰 오버라이드
borderWidthstring-테두리 두께
classNamestring-컴포넌트 컨테이너 CSS 클래스
formClassNamestring-FormItem 래퍼 CSS 클래스
labelReactNode-FormItem 레이블
orientation"horizontal" | "vertical"-FormItem 레이블 방향
requiredboolean-필수 입력 표시
descriptionReactNode-FormItem 설명
errorReactNode-FormItem 에러 메시지

Events

EventTypeDescription
onChange(value: string) => void색상 변경 시 호출 (hex)
onOpenChange(open: boolean) => void팝업 열림/닫힘 시 호출

Ref

메서드/속성TypeDescription
focus()() => void트리거에 포커스
blur()() => void포커스 해제
elementHTMLElement | null트리거 DOM 요소

접근성

권장 사항

  • ✅ label 또는 aria-label로 색상 선택기의 목적을 명확히 제공하세요.
  • ✅ 필수 입력은 required로 설정하여 스크린 리더에 전달하세요.
  • ✅ 팝업 내 색상 선택은 키보드로 조작 가능합니다.

관련 컴포넌트

Last updated on