Resizable
그리드 레이아웃에서 컴포넌트의 너비·높이를 단위(Unit) 값으로 드래그 조절하는 래퍼 컴포넌트
개요
그리드 셀 단위로 배치되는 컴포넌트를 감싸, 우측/하단/우하단 핸들 드래그로 크기를 단위 값으로
조절합니다. 조절된 단위는 grid-column/grid-row span 스타일로 반영되며, 리사이즈 중에는 커서
주변에 현재 단위 값 툴팁이 표시됩니다.
Foundation의
ResizablePanelGroup/Panel/Handle은 패널 분할(react-resizable-panels)용으로 이 컴포넌트와는 용도가 다릅니다.
주요 특징
- ✅ 단위 기반 크기 관리: widthUnit/heightUnit → grid span 반영
- ✅ 3방향 핸들: 우측(너비), 하단(높이), 우하단(대각 동시 조절)
- ✅ 범위 제한: min/max 단위로 조절 범위 제한
- ✅ 리사이즈 중 툴팁: 커서 주변에
W × H단위 실시간 표시 - ✅ 활성화 제어: resizable / enableWidth / enableHeight로 기능 제어
- ✅ 접근성: 핸들 role=“slider” + 키보드 화살표 조절
- ✅ controlled / uncontrolled 모두 지원
기본 사용
그리드 컨테이너 안에서 핸들을 드래그하면 단위가 변경됩니다. (핸들은 hover 시 표시)
Preview
핸들을 드래그하세요
고정 셀
고정 셀
활성화 제어
방향별(enableWidth/enableHeight) 또는 전체(resizable)로 리사이즈 기능을 제어할 수 있습니다.
Preview
너비만 조절
리사이즈 불가
Controlled 단위 제어
widthUnit/heightUnit과 onWidthUnitChange/onHeightUnitChange로 외부 상태와 동기화합니다.
Preview
widthUnit: 2 / heightUnit: 1
controlled
Props
| Prop | Type | Default | 설명 |
|---|---|---|---|
widthUnit | number | - | 너비 단위 (controlled) |
heightUnit | number | - | 높이 단위 (controlled) |
defaultWidthUnit | number | 1 | 초기 너비 단위 (uncontrolled) |
defaultHeightUnit | number | 1 | 초기 높이 단위 (uncontrolled) |
minWidthUnit | number | 1 | 최소 너비 단위 |
maxWidthUnit | number | ∞ | 최대 너비 단위 |
minHeightUnit | number | 1 | 최소 높이 단위 |
maxHeightUnit | number | ∞ | 최대 높이 단위 |
unitWidth | number | 측정값 | 단위당 픽셀 너비 (미지정 시 요소 크기로 측정) |
unitHeight | number | 측정값 | 단위당 픽셀 높이 |
onWidthUnitChange | (unit: number) => void | - | 너비 단위 변경 콜백 |
onHeightUnitChange | (unit: number) => void | - | 높이 단위 변경 콜백 |
onResizeStart | () => void | - | 리사이즈 시작 콜백 |
onResizeEnd | (units: ResizableUnits) => void | - | 리사이즈 종료 콜백 (최종 단위) |
resizable | boolean | true | 리사이즈 기능 전체 활성화 |
enableWidth | boolean | true | 너비 조절 활성화 |
enableHeight | boolean | true | 높이 조절 활성화 |
showTooltip | boolean | true | 리사이즈 중 크기 툴팁 표시 |
applyGridSpan | boolean | true | gridColumn/gridRow span 적용 여부 |
visible | boolean | true | 표시 여부 |
Last updated on