# What Tabulator is and when to use it
# Core capabilities
- Data loading: accept JSON, arrays, or fetch via AJAX.
- High performance: virtual DOM rendering for large tables.
- Column features: sorting, resizing, hiding, pinning, and auto-scaling to fit data or the container.
- Cell features: custom formatters (including images), alignment, tooltips, and custom editors via configuration.
- Interaction: multi-level context menus, click and context event handlers on rows/columns, and callbacks at many stages of processing and rendering.
- Theming and layout: multiple stylesheet options plus layout modes such as fitData and fitColumns.
# Installation and basic setup Install with package managers or include distributed files.
- Yarn: yarn add tabulator-tables
- npm: npm i tabulator-tables
- 1Create a container element for the table, for example.
- 2Define your data as an array of objects. Example data in the documentation shows rows with fields like id, name, age, col, dob.
- 3Instantiate Tabulator with a container selector and options object that at minimum includes data and columns. Example columns include title and field mappings and optional formatter parameters.
# Example features shown in the documentation The documentation demonstrates concrete features and configuration options:
- Row-level context menus including nested submenus and actions that can hide columns or perform custom actions.
- Layout options: height, minHeight, maxHeight, and layout modes (fitColumns, fitData, fitDataTable).
- Column sizing rules: columnMinWidth, columnMaxWidth, resizableColumns flag.
- Data reactivity: reactiveData option to enable reactive updates.
- Tooltips on cells and headers, plus tooltip generation modes.
- Initial sort and filter options and header filter support.
- Clipboard support and copy configuration, including whether to include column headers and groups.
The docs list many additional configuration keys such as index field name, keybindings, row creation behavior, and invalid option warnings.
# Packaging and license Tabulator is available as a standalone distribution and as an npm/yarn package. The project is licensed under MIT.
# When Tabulator fits your project Choose Tabulator if you need a client-side table component that accepts JSON data sources, requires flexible column and cell behavior, and must remain performant with larger datasets. It supports direct DOM inclusion, module imports, and an optional jQuery wrapper for legacy codebases.
# Alternatives mentioned alongside Tabulator The same source lists alternatives with different trade-offs: dgtable (virtual scrolling for extremely large sets) and Handsontable (spreadsheet-style editing and advanced cell types) for cases requiring specialized virtual rendering or spreadsheet-like editing features.