Strongtie Design System
Getting StartedComponents

Search documentation

Search for a command to run or a page to navigate to.

Getting Started
  • Introduction
  • Setup Guide
  • Package Installation
  • Styles Only (CSS)
  • Code Quality Setup
  • Resources
Guides
  • Framework Recommendations
  • Design Standards
  • Design Standards Examples
AI-Assisted Development
  • AI Agent Guide
  • AI Agent Skills
  • AGENTS.md Template
Registry
  • Getting Started
  • Combobox
  • Datepicker
  • MultiSelect
  • Tab Nav
  • Tree
Foundations
  • States
  • Variables
Migrations
  • Migration Guide
  • CDN Migration Guide
  • Telerik Migration
Governance
  • Governance Model
  • Contribution Model
Components
  • Accordion
  • Alert
  • Alert Dialog
  • Avatar
  • Badge
  • Breadcrumb
  • Button
  • Button Group
  • Calendar
  • Card
  • Carousel
  • Chart
  • Checkbox
  • Collapsible
  • Combobox
  • Command
  • Context Menu
  • Date Picker
  • Dialog
  • Drawer
  • Dropdown Menu
  • Empty
  • Field
  • Form
  • Hover Card
  • Input
  • Input Group
  • Input Otp
  • Item
  • Kbd
  • Label
  • Menubar
  • Multi Select
  • Navigation Menu
  • Pagination
  • Popover
  • Progress
  • Radio Group
  • Resizable
  • Scroll Area
  • Select
  • Separator
  • Sheet
  • Sidebar
  • Skeleton
  • Slider
  • Sonner
  • Spinner
  • Switch
  • Tab Nav
  • Table
  • Tabs
  • Textarea
  • Toaster
  • Toggle
  • Toggle Group
  • Tooltip
  • Tree
2026 Simpson Strong-Tie
  1. Docs
  2. Components
  3. Resizable

Resizable

PreviousNext

A container that groups resizable panels together.

Manages the layout and resize behavior for multiple panels. Panels can be arranged horizontally or vertically, and users can drag handles between panels to adjust their sizes dynamically.

Installation

npm install @strongtie/design-system
import { Resizable } from "@strongtie/design-system/resizable"

Components

This module exports the following components:

  • ResizablePanelGroup
  • ResizablePanel
  • ResizableHandle

Props

<ResizablePanel>

PropTypeDefaultDescription
collapsedSizestring | number-Panel size when collapsed; defaults to 0%.
collapsibleboolean-This panel can be collapsed. ℹ️ A collapsible panel will collapse when it's size is less than of the specified minSize
defaultSizestring | number-Default size of Panel within its parent group; default is auto-assigned based on the total number of Panels. ⚠️ Percentage based sizes may cause slight layout shift when server-rendering. For more information see the documentation.
disabledboolean-When disabled, a panel cannot be resized either directly or indirectly (by resizing another panel).
elementRefRef<HTMLDivElement | null>-Ref attached to the root HTMLDivElement.
groupResizeBehaviorpreserve-relative-size | preserve-pixel-size-How should this Panel behave if the parent Group is resized? Defaults to preserve-relative-size. - preserve-relative-size: Retain the current relative size (as a percentage of the Group) - preserve-pixel-size: Retain its current size (in pixels) ℹ️ Panel min/max size constraints may impact this behavior. ⚠️ A Group must contain at least one Panel with preserve-relative-size resize behavior.
maxSizestring | number-Maximum size of Panel within its parent group; defaults to 100%.
minSizestring | number-Minimum size of Panel within its parent group; defaults to 0%.
onResize((panelSize: PanelSize, id: string | number, prevPanelSize: PanelSize) => void) ...-Called when panel sizes change. @param panelSize Panel size (both as a percentage of the parent Group and in pixels) @param id Panel id (if one was provided as a prop) @param prevPanelSize Previous panel size (will be undefined on mount)
panelRefRef<PanelImperativeHandle | null>-Exposes the following imperative API: - collapse(): void - expand(): void - getSize(): number - isCollapsed(): boolean - resize(size: number): void ℹ️ The usePanelRef and usePanelCallbackRef hooks are exported for convenience use in TypeScript projects.

Example

import { Resizable } from "@strongtie/design-system/resizable"
 
export default function Example() {
  return <Resizable>{/* Your content here */}</Resizable>
}

Styling

Components can be styled using the className prop. The design system uses Tailwind CSS for styling.

Classes

CSS classes used by this component:

  • resizable-handle
  • resizable-panel
  • resizable-panel-group

Accessibility

Ensure proper accessibility attributes are added when implementing this component.

Radio GroupScroll Area

On This Page

InstallationComponentsProps<ResizablePanel>ExampleStylingClassesAccessibility

Contribute

  • Report an issue
  • Request a feature
  • Edit this page