@material-table/core
v8.0.3
Published
Datatable for React based on https://material-ui.com/api/table/ with additional features
Readme
@material-table/core
A highly customizable datatable for React, built on Material UI — forked from mbrn/material-table
💾 Installation • 🎉 Basic Usage • 📖 Documentation • ⚙️ Demos
✅ Why this repo exists? • 🗺️ Roadmap
✨ Features
- Sorting & multi-column sorting — client- or server-side
- Filtering & search — per-column filters (text, numeric, boolean, date, lookup) plus global search
- Pagination — normal or stepped, fully localizable
- Inline editing — row, cell and bulk editing with validation
- Grouping — drag & drop column grouping with persistent groupings
- Selection — row selection with parent/child (tree) support
- Tree data & detail panels — nested rows and expandable panels
- Column resizing, reordering and hiding
- Remote data — plug in any backend via a simple query callback
- Export — pluggable export menu (CSV, PDF, custom)
- Styling & theming — Material UI theme aware, custom components for every part of the table
- Localization — every label and aria attribute is overridable
📦 Requirements
| Peer dependency | Version |
| --------------- | ------- |
| react / react-dom | >= 19 |
| @mui/material | v9 |
Built with modern tooling: Vite 8 library build (tree-shakeable, per-module ESM output), Vitest 4 test suite, ESLint 9 flat config. The package ships as ESM; CommonJS consumers are covered by Node's require(esm) support (Node >= 20.19).
🛠️ Installation
npm install @material-table/core
# or
yarn add @material-table/coreRefer to the installation guide for more information and advanced usage.
💡 Basic Usage
import MaterialTable from '@material-table/core';
function MyTable() {
return (
<MaterialTable
title="Simple Table"
columns={[
{ title: 'Name', field: 'name' },
{ title: 'Age', field: 'age', type: 'numeric' }
]}
data={[
{ name: 'John', age: 30 },
{ name: 'Jane', age: 25 }
]}
options={{
sorting: true,
filtering: true
}}
/>
);
}Explore more features and advanced usage in the documentation and live demos.
🧑💻 Development
npm install
npm start # Vite dev server with the demo playground
npm test # build + run the Vitest suite
npm run lint # ESLint + type-check of the TypeScript definitions
npm run build # build the library to dist/🙌 Sponsorship
We appreciate contributions and sponsorships! You can support this project through GitHub Sponsors or Open Collective. Your support helps us maintain and improve the project.
🚀 Contributing
Thank you for considering contributing to the project! Areas where help is especially welcome:
- Refactoring — migrate the remaining class components to hooks
- Documentation — help us improve the docs
- Tests — extend the Vitest suite to improve stability
We appreciate all contributions, big or small. Check out the contributing guide for more details.
