Resizable
basecn/resizableFreeComponent
Accessible resizable panel groups and layouts with keyboard support.
Live preview
live · rendered by the registry
Rendered by basecn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://basecn.dev/r/resizable.jsonSource
1"use client";23import * as React from "react";4import { GripVerticalIcon } from "lucide-react";5import * as ResizablePrimitive from "react-resizable-panels";67import { cn } from "@/lib/utils";89function ResizablePanelGroup({10 className,11 ...props12}: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) {13 return (14 <ResizablePrimitive.PanelGroup15 data-slot="resizable-panel-group"16 className={cn(17 "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",18 className19 )}20 {...props}21 />22 );23}2425function ResizablePanel({26 ...props27}: React.ComponentProps<typeof ResizablePrimitive.Panel>) {28 return <ResizablePrimitive.Panel data-slot="resizable-panel" {...props} />;29}3031function ResizableHandle({32 withHandle,33 className,34 ...props35}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {36 withHandle?: boolean;37}) {38 return (39 <ResizablePrimitive.PanelResizeHandle40 data-slot="resizable-handle"41 className={cn(42 "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",43 className44 )}45 {...props}46 >47 {withHandle && (48 <div className="bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border">49 <GripVerticalIcon className="size-2.5" />50 </div>51 )}52 </ResizablePrimitive.PanelResizeHandle>53 );54}5556export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
What it pulls in
npm packages
Files it writes
More from basecn
All 56 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | basecn | Components | Free | 2 deps | |
| Alertalert | basecn | Components | Free | 1 dep | |
| Alert Dialogalert-dialog | basecn | Components | Free | 1 dep | |
| Aspect Ratioaspect-ratio | basecn | Components | Free | no deps | |
| Autocompleteautocomplete | basecn | Components | Free | 2 deps | |
| Avataravatar | basecn | Components | Free | 1 dep | |
| Badgebadge | basecn | Components | Free | 2 deps | |
| Breadcrumbbreadcrumb | basecn | Components | Free | 2 deps |
