ResizeHandle manages a numeric size and exposes a focusable separator. The application applies that size to the panel; the handle does not resize another element automatically.
Usage
Useaxis="y" for height or axis="x" for width. Give the handle a specific accessible name and use aria-controls to identify the panel.
Uncontrolled state
onValueChange copies the latest size to the panel layout without controlling the handle. defaultValue only sets the initial size.
Controlled state
value and defaultValue separate and retain the same ownership mode throughout the component’s lifetime.
Keyboard and bounds
Foraxis="y", Down increases the size and Up decreases it. For axis="x", Right increases and Left decreases in left-to-right content; the directions reverse under TextDirectionProvider with direction="rtl".
Arrow keys use step, which defaults to 10. Home moves to min, and End moves to max. Pointer dragging uses the pixel movement and is not snapped to step. Both interactions stay within the bounds. disabled prevents resizing and removes the handle from the tab order.
The separator orientation describes the dividing edge: horizontal for height resizing and vertical for width resizing.
Custom handle
children replaces the visible grip; it does not replace the separator behavior. render can replace the root element. Custom wrappers must forward the supplied props and ref so focus, pointer capture, keyboard handlers, and accessibility attributes reach the same element.
Props
"x" | "y"
default:"y"
Pointer movement axis:
y for height or x for width.number | (readonly string[] & number)
default:"150"
Initial size when the handle owns its state.
boolean
default:"false"
Disables resizing and removes the handle from the tab order.
number
default:"500"
Maximum allowed size.
number
default:"50"
Minimum allowed size.
((value: number) => void)
Called with the bounded size after pointer or keyboard interaction.
ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, {}>
Allows you to replace the component’s HTML element
with a different tag, or compose it with another component.Accepts a
ReactElement or a function that returns the element to render.number
default:"10"
Keyboard arrow increment. Pointer movement uses the pixel delta.
number
Controlled size. Apply the value to the element being resized.