React Resizable Panels

Resizable, draggable panel group layouts for React with keyboard accessibility and SSR support built in

Library
npm
v4.14.8
5,424 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
87 /100 Excellent
Development Activity 96
Maintenance 100
Community 60
Maturity 52
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
87 /100 Excellent
Architecture 90
Code Quality 88
Innovation 85
Learning Curve 85

react-resizable-panels gives React applications a Group/Panel/Separator primitive for building resizable split-pane layouts — code editors, dashboards, admin panels, and file browsers with adjustable columns. Panels register with a shared per-group store that computes flex-based sizing from ResizeObserver measurements, so layouts stay correct across window resizes, conditional panel mounting, and nested groups without manual pixel math.

Built by Brian Vaughn (formerly of the React core team), the library ships draggable separators with full keyboard support, persisted layouts via a pluggable storage interface, collapsible panels with expand/collapse callbacks, and first-class server-side rendering — a common pain point for percentage-based layout libraries. It has no runtime dependencies beyond React itself and includes official integration examples for Next.js, Vite, and Vike.

What You Get

  • Group, Panel, and Separator components composing into horizontal or vertical resizable layouts, including nested groups
  • Draggable separators with full keyboard support (arrow keys, Home/End) and correct ARIA attributes for accessibility
  • Panel size constraints in percent, pixels, em, rem, vh, or vw, plus collapsible panels with expand/collapse callbacks
  • A pluggable LayoutStorage interface for persisting and restoring panel layouts (e.g. to localStorage) across sessions
  • Server-side rendering support that avoids the layout-shift problems common to percentage-based split-pane libraries
  • Imperative handles (useGroupRef, usePanelRef) for programmatic resize, collapse, and expand control outside of props

Common Use Cases

  • Code editor and IDE-style layouts with resizable file trees, editor panes, and terminal/output panels
  • Admin dashboards and data tools where users adjust the width of a sidebar, table, or detail panel
  • Documentation or reference sites with a resizable navigation sidebar next to scrollable content
  • Multi-pane comparison views (diff viewers, before/after previews) where panel proportions need to be user-adjustable

Under The Hood

Architecture — The library centers on a single global, per-document mutable store (lib/global/mutable-state/groups.ts, mountGroup.ts) rather than React state for hot-path layout data. Each Group registers its DOM element with a shared ResizeObserver on mount (mountGroup.ts); the observer recalculates panel constraints and a flex-grow-based layout whenever the group or a panel resizes, then pushes updates to subscribers via useSyncExternalStore. Drag interactions are handled by document-level pointer/keyboard listeners (global/event-handlers/) that compute hit-regions between separators and adjacent panels (calculateHitRegions.ts) and adjust layout deltas (adjustLayoutForSeparator.ts) without triggering React re-renders until a frame is due. This keeps dragging performant even with many panels, at the cost of a more complex mental model than a typical prop-driven React component.

Tech Stack — Pure TypeScript with React 18/19 as a peer dependency and zero runtime dependencies; builds with Vite (vite-plugin-dts for type declarations) targeting both CJS and ESM outputs (dist/react-resizable-panels.cjs / .js). The docs/demo site in src/ uses Tailwind CSS v4, Zustand, and React Router, but none of that ships in the published package. Official framework integrations for Next.js, Vite, and Vike live under integrations/ with their own Playwright end-to-end test suites.

Code Quality — 29 .test.ts/.test.tsx files (roughly 330 individual test cases) cover the core layout math (calculateDefaultLayout, validatePanelGroupLayout, adjustLayoutByDelta), DOM geometry helpers, and component behavior via Vitest and Testing Library. Code is organized into clear components/, global/, hooks/, and utils/ layers with small, single-purpose files, consistent TypeScript typing throughout, and an internal assert() helper used to fail loudly on invariant violations (e.g. duplicate panel ids) rather than degrade silently.

API Design — The public surface is intentionally small: three components plus a handful of hooks (useGroupRef, usePanelRef, useDefaultLayout, useGroupCallbackRef, usePanelCallbackRef) and typed callbacks (onLayoutChange, onResize). Size props accept plain numbers or unit-suffixed strings ("33%", "200px", "50vh") rather than requiring separate props per unit, and every rendered element carries a data-testid for easy testing. The one area with real learning cost is the global-store architecture: it’s invisible in simple layouts but surfaces once consumers reach for imperative handles or custom layout persistence.

Used by 81 apps in this directory

TypeScript
83%
AGPL 3.0

Recordly

Design Tools · Developer Tools · Productivity

34,929

Free, open-source screen recorder and editor for macOS, Windows, and Linux that auto-adds zooms, cursor polish, webcam overlays, and styled frames to your screen captures without any motion-design skills.

View details
84
Repo Health
82
Technical
70
Dependency
Built with
TypeScript 83%
Updated 6 days ago
Rust
72%
Apache 2.0

Rivet

AI Agents · Developer Tools

6,326

Stateful actors as a primitive for AI agents, real-time collaboration, and durable execution — with in-memory state, WebSockets, queues, and scheduling built in.

View details
87
Repo Health
81
Technical
64
Dependency
Built with
Rust 72%
TypeScript 25%
Updated 6 days ago
TypeScript
98%
Apache 2.0

rowboat

AI Assistants · AI Development

18,060

Build, test, and deploy multi-agent AI workflows with a visual editor, RAG data sources, MCP tool integration, and a production-ready REST API.

View details
88
Repo Health
72
Technical
65
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
Python
100%
Other

Sourcebot

AI Code Assistants · Developer Tools · Search

4,005

A self-hosted, AI-powered code search engine that indexes every repo across GitHub, GitLab, Bitbucket, Gitea, Gerrit, and Azure DevOps, so both engineers and coding agents can search, browse, and ask questions about your codebase from one place.

View details
86
Repo Health
83
Technical
61
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
89%
Other

Hexclave

Authentication · Developer Tools

6,877

The open-source user infrastructure platform — authentication, teams, payments, emails, analytics, and more on a single unified user model.

View details
88
Repo Health
80
Technical
66
Dependency
Built with
TypeScript 89%
Updated 6 days ago
TypeScript
92%
Other

Suna

AI Agents

20,306

Turn your company into a git repo — one config, one command center, a workforce of AI agents that runs the real work around the clock.

View details
90
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 92%
Updated 6 days ago
TypeScript
72%
Apache 2.0

Supabase

Authentication · Databases · Developer Tools

113,827

The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.

View details
90
Repo Health
91
Technical
62
Dependency
Built with
TypeScript 72%
MDX 26%
Updated 6 days ago
TypeScript
85%
Apache 2.0

superset

AI Code Assistants · AI Development

15,503

Orchestrate an army of AI coding agents—Claude Code, Codex, Gemini CLI, and more—running simultaneously in isolated git worktrees from a single Electron desktop app.

View details
86
Repo Health
80
Technical
64
Dependency
Built with
TypeScript 85%
Updated 6 days ago
Rust
93%
Other

Tabby

AI Code Assistants

33,924

Self-hosted AI coding assistant — run GitHub Copilot-grade code completion on your own hardware with no cloud dependency.

View details
55
Repo Health
78
Technical
61
Dependency
Built with
Rust 93%
Updated 4 months ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers