Navigation & disclosure@neumorphism-ui/resizable

Resizable

Uses react-resizable-panels for size calculation and separator accessibility. Neumorphism styles only the panel boundary and handle instead of reimplementing panel state.

@neumorphism-ui/resizable
Registry JSON

Preview

List
Details

Installation

Installation: resizablenpx shadcn@latest add @neumorphism-ui/resizable

The CLI resolves npm dependencies, base tokens, utilities, and component source in order.

New to this Registry? Set up the namespace before continuing.

Usage

Import

Resizable import code
"use client";
import {
  ResizableHandle,
  ResizablePanel,
  ResizablePanelGroup,
} from "@/components/ui/resizable";

Example

Resizable usage code
export default function Example() {
  return <ResizablePanelGroup orientation="horizontal" className="h-48 max-w-lg">
    <ResizablePanel defaultSize={40} minSize={25}><div className="grid h-full place-items-center p-4">List</div></ResizablePanel>
    <ResizableHandle withHandle />
    <ResizablePanel defaultSize={60} minSize={30}><div className="grid h-full place-items-center p-4">Details</div></ResizablePanel>
  </ResizablePanelGroup>;
}

API Reference

ComponentPropTypeDefaultDescription
ResizablePanelGrouporientationrequired"horizontal" | "vertical"—Sets the panel split direction.
ResizablePaneldefaultSizenumber | string—Sets the initial panel size.
ResizablePanelminSize / maxSizenumber | string—Constrains how far a panel may shrink or grow.
ResizableHandlewithHandlebooleanfalseShows a visual grip in the middle of the separator.
ResizableHandledisabledbooleanfalseKeeps the separator visible while disabling resizing.

Accessibility

  • 01

    ResizableHandle relies on the library separator semantics and current size values; do not add a fake slider.

  • 02

    Keyboard users can focus the separator and change panel size with arrow keys.

  • 03

    The visual grip is aria-hidden while the separator itself owns the interaction meaning.