MRT logoMaterial React Table

About Material React Table

Want to join the development discussion? Join the Discord server to ask questions, or talk about the general direction of the project.

License

Material React Table is licensed under the MIT License and is free to use in both personal and commercial projects.

Motivation

material-react-table started out as an attempt to upgrade the once popular material-table library to Material UI v5 and TypeScript, since that project seemed to have become abandoned. However, after a few frustrating weeks, it was discovered that it would be easier and more fun to write a new advanced Material UI table library from scratch. React Table naturally seemed like a great basis for the underlying API and therefore was chosen as the foundation for the project.

Project Goals

  • Stick to material design principles

  • Fully enable all features of the TanStack Table API (as much as reasonably possible)

  • Favor performance and bundle size over over-the-top built-in features

  • Enable full customization easily (CSS, layout, icons, localization, etc.)

  • Be unit-test-friendly

Features

✅ < 38kb gzipped - Bundlephobia

✅ Advanced TypeScript Generics Support (TypeScript Optional)

✅ Aggregation and Grouping (Sum, Average, Count, etc.)

✅ Click To Copy Cell Values

✅ Column Action Dropdown Menu

✅ Column Hiding

✅ Column Ordering via Drag'n'Drop

✅ Column Pinning (Freeze Columns)

✅ Column Resizing

✅ Customize Icons

✅ Customize Styling of internal Mui Components

✅ Data Editing (4 different editing modes)

✅ Density Toggle

✅ Detail Panels (Expansion)

✅ Filtering (supports client-side and server-side)

✅ Full Screen Mode

✅ Global Filtering (Search across all columns, rank by best match)

✅ Header Groups & Footers

✅ Localization (i18n) support

✅ Manage your own state or let the table manage it internally for you

✅ Pagination (supports client-side and server-side)

✅ Row Actions (Your Custom Action Buttons)

✅ Row Numbers

✅ Row Ordering via Drag'n'Drop

✅ Row Selection (Checkboxes)

✅ SSR compatible

✅ Sorting (supports client-side and server-side)

✅ Theming (Respects your Material UI Theme)

✅ Toolbars (Add your own action buttons)

✅ Tree Data / Expanding Sub-rows

✅ Virtualization (react-virtual)

Contributors

Kevin Van Cott

Kevin Van Cott

Maintainer, Developer

Ryan Kholousi

Ryan Kholousi

UI/UX Designer

Daniel Humphrey

Daniel Humphrey

UI/UX, Technical Writer

Important Links

NPM

NPM

Source Code

Source Code

GitHub Issues

GitHub Issues

Discord

Discord

Storybook

Storybook