@fragiola/dockable · React

Dockable panels, without a single line of CSS from us.

A headless layout manager: tabs, tabsets, splitters, drag and drop and popout windows. It ships the behaviour and the accessibility. Every pixel is yours.

Same markup, five themes:See the code →

Behaviour

Resize, drag and drop between tabsets and to the edges, popout windows, maximize, undo/redo.

Accessibility

The APG tabs pattern, keyboard splitters with ARIA values, focus management, layout paths for tests.

A JSON model

The layout is data: load it, save it, intercept every change with onAction.

Primitives

Root, Row, TabSet, Tab, Panel, Splitter… each renders only what you give it, with render instead of asChild.

What it never ships

  • CSS
  • Icons
  • Text
  • Rendered menus
  • A design system

The state is exposed as data-* attributes and ARIA, so any styling solution works: Tailwind, plain CSS, CSS modules, CSS-in-JS. The examples use Fragiola UI and its palettes.