v1.0.0 — Production Ready

Build powerful data tables
in minutes

A lightweight, zero-dependency data table with plugin architecture. Sorting, filtering, editing, and more — all in ~32KB.

View Demo Install
~32KB
Minified + Gzipped
0
Dependencies
5+
Plugins Available

Everything you need

Built-in features that cover 90% of use cases, with plugins for the rest.

â†•ī¸

Sorting

Click column headers to sort. Multi-column sorting with shift+click.

🔍

Search & Filter

Global search across all columns with instant filtering.

âœī¸

Inline Editing

Double-click any cell to edit. Supports text, number, boolean, select.

✅

Row Selection

Single or multi-select with checkboxes. Select all with header checkbox.

📄

Pagination

Built-in pagination with configurable page sizes.

âŒ¨ī¸

Keyboard Nav

Full keyboard navigation with arrow keys, Enter to edit, Escape to cancel.

Try it yourself

Interactive demo with all features enabled. Edit cells, sort columns, search.

Employee Directory
💡 Double-click any cell to edit â€ĸ
Double-click Edit cell ⌘K Command palette Ctrl+Z Undo Ctrl+C Copy rows Ctrl+V Paste rows ↑↓←→ Navigate Enter Edit / Save Esc Cancel
â–ļ View Code
Click to expand

Extend with plugins

Install only what you need. Each plugin is a separate package.

â†Šī¸

History

Undo/Redo with Ctrl+Z, Ctrl+Y

import { HistoryPlugin } from '@bw-ui/datatable-history';

table.use(HistoryPlugin);
table.undo();
table.redo();
📊

Export

Download as JSON, CSV, or copy

import { ExportPlugin } from '@bw-ui/datatable-export';

table.use(ExportPlugin);
table.exportCSV();
table.exportJSON();
🔗

URL State

Shareable links with sort, filter, page

import { UrlStatePlugin } from '@bw-ui/datatable-url-state';

table.use(UrlStatePlugin);
// URL: ?page=2&sort=name:asc
📋

Clipboard

Copy/Paste with Excel compatibility

import { ClipboardPlugin } from '@bw-ui/datatable-clipboard';

table.use(ClipboardPlugin);
// Ctrl+C to copy, Ctrl+V to paste
⌘

Command Palette

Cmd+K for quick actions

import { CommandPlugin } from '@bw-ui/datatable-command';

table.use(CommandPlugin);
// Cmd+K opens command palette
🚀

Virtual Scroll

Handle 100k+ rows smoothly

import { VirtualPlugin } from '@bw-ui/datatable-virtual';

table.use(VirtualPlugin, {
  rowHeight: 40
});

Simple & intuitive API

Get started in under a minute with our clean, chainable API.

import { BWDataTable } from '@bw-ui/datatable';
import { HistoryPlugin } from '@bw-ui/datatable-history';
import { ExportPlugin } from '@bw-ui/datatable-export';
import '@bw-ui/datatable/dist/bw-datatable.min.css';

// Create table with plugins
const table = new BWDataTable('#my-table', {
  data: employees,
  editable: true,
  selectable: true,
  pageSize: 10,
})
  .use(HistoryPlugin)
  .use(ExportPlugin);

// That's it! Full featured table ready.
Installation

Get started in seconds

Install via npm or use the CDN for quick prototyping.

npm install @bw-ui/datatable