tomkp/react-split-pane

React split-pane component

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 20th, 2026
Created on March 6th, 2015
Open Issues & Pull Requests: 12 (+0)
GitHub issues: Enabled
Number of forks: 409
Total Stargazers: 3,391 (+0)
Total Subscribers: 34 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 2
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 162 days
Stale 30+ days: 2
Stale 90+ days: 2

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • enhancement (7)
  • good first issue (6)
  • help wanted (5)
  • question (5)
  • bug (4)
  • documentation (2)
  • bug: unconfirmed (1)
  • cleanup (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

React Split Pane is a React component that provides resizable split pane layouts for dividing UI space between multiple content areas.

The component solves the problem of creating flexible, draggable dividers between panes in a React application. It uses a hooks-based architecture with TypeScript for type safety and implements keyboard navigation with arrow keys, shift modifiers, and home/end keys for accessibility. The divider can be resized through mouse drag, touch input, or keyboard control, with support for snap points that cause the divider to lock to specific pixel positions. The component works in both horizontal (side-by-side) and vertical (top-bottom) orientations and supports nesting multiple split panes to create complex layouts.

Developers should choose this tool if they need accessible, keyboard-navigable split pane layouts with full TypeScript support and mobile touch compatibility. It suits projects requiring flexible UI division with minimal bundle size impact. The component supports both controlled and uncontrolled modes, allowing integration into different state management patterns. A usePersistence hook is available for saving and restoring pane sizes to localStorage or sessionStorage with configurable debouncing. The tool is lightweight at under 5KB gzipped and uses requestAnimationFrame throttling for performant resizing.

The project maintains active development with regular updates and demonstrates attention to accessibility standards through comprehensive keyboard navigation support and ARIA attributes. The codebase is written in TypeScript with full type definitions provided out of the box. Documentation includes live examples and detailed API reference tables covering all component props, pane configuration options, and advanced features like snap points and custom dividers.