Dead simple panes splitter control based on flexbox.
- Declarative.
Just add an attribute to the DOM element. Don't need to write any JavaScript. - Lightweight.
JS + CSS ~ 1.2kB (gzipped) with no dependencies.
npm (with a module bundler)
$ npm i flex-splitter-directive
import "flex-splitter-directive"
import "flex-splitter-directive/styles.min.css"
CDN (jsDelivr)
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/styles.min.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]"></script>
- Load CSS and JS.
- Set
data-flex-splitter-horizontal
(ordata-flex-splitter-vertical
for vertical) attribute to the parent element of the panes.- Optionally, specify the
keyboard-movement
option, as indata-flex-splitter-horizontal="keyboard-movement:10"
.
- Optionally, specify the
- Insert
<div role="separator" tabindex="1"></div>
between each pane. - Set the following styles for each pane as required:
width
/height
for the initial size.min-width
/min-height
for the minimum size.max-width
/max-height
for the maximum size.flex: auto
for filling space.