Resizable
A component that allows users to resize a container by dragging, supporting 2D resizing, aspect ratio locking, and panel splitting.
Component Features
- ↔️ 8 Resize Directions: Supports
top,bottom,left,right, and their corner combinations. - 📐 Aspect Ratio Lock: Supports locking aspect ratio during resize.
- 📊 Grid Snapping: Supports grid-based snapping for precise alignment.
- ⌨️ Keyboard Resize: Supports keyboard-based resize operations.
- 📋 Panel Splitting: Supports drag-to-split panels with resize handles.
- 📏 Size Constraints: Supports
minWidth,maxWidth,minHeight,maxHeightconstraints. - 🎨 Theme Customization: Based on
BrConfigProviderfor global theming and TailwindCSS local overrides.
Basic Usage
Supports resizing in horizontal or vertical directions, or simultaneously in multiple directions.
Aspect Ratio Locking
You can lock the aspect ratio during resizing by setting the lock-aspect-ratio prop.
Panel Splitting
Combine BrResizableSplit and BrResizableSplitPane to create a multi-panel split layout.
Integration with Table
The Resizable component can be easily integrated with the Table component to create adaptive data grids.
Integration with Card
Place a Card inside a resizable container and utilize internal scroll areas for more content.
API
Resizable Props
Resizable Emits
ResizableHandle Props
ResizableSplit Props
Based on SplitterGroup from radix-vue. Passes through all its props.
ResizableSplitPane Props
Based on SplitterPanel from radix-vue. Passes through all its props.