dockview
Version:
Docking layout manager — tabs, groups, grids, splitviews, drag and drop, floating panels
94 lines (70 loc) • 3.29 kB
Markdown
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/dockview/dockview/blob/HEAD/static/img/dockview-lockup-dark.svg?raw=true">
<img src="https://github.com/dockview/dockview/blob/HEAD/static/img/dockview-lockup-light.svg?raw=true" alt="Dockview" width="480">
</picture>
<h1>dockview</h1>
<p>Zero dependency layout manager supporting tabs, groups, grids and splitviews</p>
[](https://www.npmjs.com/package/dockview)
[](https://www.npmjs.com/package/dockview)
[](https://github.com/dockview/dockview/actions?query=workflow%3ACI)
[](https://sonarcloud.io/summary/overall?id=dockview_dockview)
[](https://sonarcloud.io/summary/overall?id=dockview_dockview)
[](https://bundlephobia.com/result?p=dockview)
</div>
---

Please see the website: https://dockview.dev
## Features
- Serialization / deserialization with full layout management
- Support for split-views, grid-views and 'dockable' views
- Themeable and customizable
- Tab and Group docking / Drag n' Drop
- Touch & mobile support
- Popout Windows
- Floating Groups
- Edge Groups
- Tab Groups
- Extensive API
- Supports Shadow DOMs
- High test coverage
- Documentation website with live examples
- Transparent builds and Code Analysis
- Security in mind - verified publishing and builds through GitHub Actions
## Quick Start
`dockview` is the JavaScript package. Using a framework? Install the
matching bindings instead: [`dockview-react`](https://www.npmjs.com/package/dockview-react),
[`dockview-vue`](https://www.npmjs.com/package/dockview-vue) or
[`dockview-angular`](https://www.npmjs.com/package/dockview-angular).
Install from [npm](https://www.npmjs.com/package/dockview):
```
npm install dockview
```
Import the stylesheet:
```css
@import 'dockview/dist/styles/dockview.css';
```
Create a dockview instance and pass a theme:
```ts
import { DockviewComponent, themeDark } from 'dockview';
const element = document.getElementById('app');
const dockview = new DockviewComponent(element, {
theme: themeDark,
createComponent: (options) => {
switch (options.name) {
case 'my-component':
return {
init: (params) => {
params.containerElement.textContent = 'Hello World';
},
};
}
},
});
dockview.addPanel({
id: 'panel_1',
component: 'my-component',
});
```
See the [documentation](https://dockview.dev) for full examples.
Want to verify our builds? Go [here](https://www.npmjs.com/package/dockview#Provenance).