Free
Pro

Splitter

Divide a layout into two resizable panes. Drag the gutter, use arrow keys when focused, or double-click the gutter to reset to 50%. Project panes with base-splitter-start and base-splitter-end.

Pro

Splitter — part of Base UI Pro

Unlock it plus 90 pro blocks, widgets & layouts — $99 one-time. Lifetime updates, 14-day money-back guarantee.

Unlock Pro

Horizontal

Default orientation places panes side by side. Bind [(size)] to the primary (start) pane percentage.

Start pane

Navigation, filters, or a file tree.

End pane

Main content area. Primary size: 35%.


HTML

Vertical

Stack panes with orientation="vertical". Give the host a height.

Top pane

Preview or toolbar region (40%).

Bottom pane

Details, logs, or a console.


HTML

Nested

Place another splitter inside a pane for IDE-style layouts.

Sidebar

30%

Editor

Top of the right column (55%).

Terminal

Bottom of the right column.


HTML

Min / Max & Disabled

Constrain the primary pane with min / max. Use [disabled]="true" to lock the gutter.

Constrained (min 20%, max 40%)

Narrow start pane (25%)

Wide end pane

Disabled

Locked start

Locked end


HTML

Installation

Run the following command to add this component to your project:

bash

npx base-ui-cli add splitter

API Reference

For AI agents

Copy a prompt with the registry name, CLI install, and import — or add the Base UI MCP server.

bash

npx -y base-ui-mcp

Base UI provides standalone components. Import the exact elements you want to use into your component.

typescript (Example)

// Install: npx base-ui-cli add splitter
// Paths are relative to aliases.components (default: src/app/components)
import { SplitterComponent } from './splitter/splitter.component';

@Component({
  selector: 'app-your-component',
  imports: [
    SplitterComponent
  ],
  template: `...`
})
export class YourComponent {}

API for splitter — generated from JSDoc in the library source.

API reference for splitter
APIMemberTypeDefaultDescription
base-splittersizenumber50Primary pane size as a percentage of the track (0–100).
base-splitterorientationSplitterOrientation'horizontal'`horizontal` = side-by-side panes; `vertical` = stacked panes.
base-splitterminnumber10Minimum primary pane size (%).
base-splittermaxnumber90Maximum primary pane size (%).
base-splitterstepnumber2Keyboard arrow step in percent.
base-splitterdisabledbooleanfalseWhen true, dragging and keyboard resize are disabled.
base-splitterariaLabelunknown'Resize panels'Accessible name for the separator.
base-splitterclassstring''Extra host classes merged via `cn()`.