Tanstack Table

A powerful datatable for your app built with TanStack Table.

Source code

Click to see the source code for this component on GitHub. Feel free to copy it and adjust it for your own use.

Installation

Usage

Regular

ID
Amount
Status
Email
Q4eIFcEyON$39.00
processing
josefina_nader8@hotmail.com
a3B9PqRVb4$356.00
success
tommy.west@yahoo.com
92rjn1Qh3P$286.00
failed
julien28@gmail.com
yDtMA9eGSL$214.00
success
felicia.considine45@gmail.com
vQPYBpCfX5$533.00
processing
fabian.schiller50@gmail.com
Rows per page:
Page 1 of 20

Basic

NameEmailLocationStatusBalance
Stella Turcottegordon.bernier@yahoo.comFort Guillermostad
Inactive
$355.59
Roger Predovicisaac_senger29@gmail.comGustavofield
Active
$438.53
Mrs. Kara Hermann-Trompstuart65@hotmail.comBuckridgeton
Inactive
$488.91
Dr. Willard Buckridge-Gloverdamaris20@hotmail.comFort Tyronebury
Inactive
$646.24
Camylle Blockjeffrey_kirlin38@gmail.comNorth Helenburgh
Active
$992.71
Total$2,921.98

Basic data table made with TanStack Table

Filters

Keyword
Intents
Volume
CPC
Traffic
Link
react components
I
N
2.5K2.588https://www.originui.com
buy react templates
C
T
1.9K4.7565https://www.originui.com/templates
react ui library
I
C
3.2K3.25112https://www.originui.com/docs
tailwind components download
T
8901.9545https://www.originui.com/download
react dashboard template free
C
T
4.1K5.5156https://www.originui.com/templates/dashboard
how to use react components
I
1.2K1.2542https://www.originui.com/tutorials
react ui kit premium
C
T
7606.828https://www.originui.com/pricing
react component documentation
I
N
9501.835https://www.originui.com/docs/components

Data table with filters made with TanStack Table

Simple (Auto-Generated Columns)

Shows zero-config usage with automatic column generation from data keys.

Id
Date
Status
Email
Amount
46002024-03-11T15:30:00paidjames.anderson@example.com594
45992024-03-11T10:10:00failedmia.white@example.com276
45982024-03-11T08:50:00refundedwilliam.brown@example.com315
45972024-03-10T19:45:00paidemma.davis@example.com529
45962024-03-10T15:55:00paidethan.harris@example.com639
Rows per page:
Page 1 of 1

Custom Columns

Custom column definitions with formatted cells and styled badges.

#
Date
Status
Email
Amount
#4600Mar 11, 15:30Paidjames.anderson@example.com
$594.00
#4599Mar 11, 10:10Failedmia.white@example.com
$276.00
#4598Mar 11, 08:50Refundedwilliam.brown@example.com
$315.00
#4597Mar 10, 19:45Paidemma.davis@example.com
$529.00
#4596Mar 10, 15:55Paidethan.harris@example.com
$639.00
Rows per page:
Page 1 of 1

With Slots

Using slots to customize cell rendering with avatars and dropdowns.

User
Email
Role

Lindsay Walton

@lindsayw

lindsay.walton@example.comMember

Courtney Henry

@courtneyh

courtney.henry@example.comAdmin

Tom Cook

@tomc

tom.cook@example.comMember

Whitney Francis

@whitneyf

whitney.francis@example.comAdmin
Rows per page:
Page 1 of 1

Table footer with column totals using aggregation functions.

#
Description
Qty
Amount
1Web Design
3
$1,200.00
2Development
5
$2,400.00
3Consulting
2
$800.00
4Support
4
$600.00
Total
14
$5,000.00
Rows per page:
Page 1 of 1

Clean table without footer controls for simple layouts.

Name
Email
Status
John Doejohn@example.comActive
Jane Smithjane@example.comActive
Bob Johnsonbob@example.comInactive

Loading State

Table with loading indicator - includes custom loader slot support.

ID
Product
Category
Price
Stock
8184Refined Marble CheeseBooks
$395.83
51
1713Tasty Rubber HatOutdoors
$409.91
9
4065Awesome Aluminum ShoesOutdoors
$66.42
72
2329Electronic Ceramic KeyboardIndustrial
$326.53
31
3077Gorgeous Gold SoapHome
$197.68
28
Rows per page:
Page 1 of 3

Server-Side Pagination

Manual pagination with server-side data fetching and search. Enable manual-pagination prop and listen to the @update:pagination event.

95 total users
ID
Name
Email
Role
Department
Status
#NO68RInez Shanahan Jr.morton_mccullough8@yahoo.comAdminEngineeringInactive
#F5LEVBob Sanfordadelia20@gmail.comMemberSalesActive
#O7AOIUlises Lubowitzjanie.aufderhar74@hotmail.comViewerMarketingActive
#ZLLHFBrad Russelbeverly17@gmail.comAdminSupportActive
#1Z5LUGino Lang Ihope50@hotmail.comMemberEngineeringActive
#ITOWCJeannette Blickbrice.hickle99@gmail.comViewerSalesInactive
#8ZTOAAnnabell Kovacekjaycee.rippin@yahoo.comAdminMarketingActive
#IZR06Alexandria Marks-Schummleda.connelly86@yahoo.comMemberSupportActive
#92GOONash Hintzgerry.steuber@yahoo.comViewerEngineeringActive
#DN3CFDr. Monte Volkman Jr.fae.mitchell@hotmail.comAdminSalesActive
Rows per page:
Page 1 of 10

Expansion

Expandable rows to display additional details using the expansion feature.

Name
Email
Role
Status
Curtis Treutelali81@gmail.comViewerActive
Mrs. Marcelino Schulistbobbie_brown34@gmail.comMemberInactive
Marcellus Heaneychauncey.dicki@yahoo.comAdminActive
Lora Dibbertgertrude1@yahoo.comAdminActive
Ms. Demond Krajcik IIjayson11@yahoo.comViewerActive
Leland Bartolettiamanda.bauch@yahoo.comViewerActive
Robb Haneines67@gmail.comMemberActive
Eden Purdyleanne.emard@gmail.comMemberActive
Ethel Thielbettye28@yahoo.comMemberActive
Dorcas Jacobsonnorman74@yahoo.comAdminActive
Rows per page:
Page 1 of 2

Row Pinning

Pin rows to the top or bottom. The table emits update:rowPinning and row-pin so parents can sync state.

Use the pin menu to choose top, bottom, or unpin.
Pin
Name
Email
Department
Status
Tamara Powlowski IVkelley61@gmail.comMarketingActive
Miss Kathleen Cummerataodie_hirthe@yahoo.comSupportActive
Jacquelyn Bodecarrie.wiza63@yahoo.comSupportActive
Irwin Wymancarson.kutch@gmail.comMarketingActive
Ms. Durward Adamsalice2@yahoo.comMarketingInactive
Ramon Hoegerrupert_murphy25@gmail.comEngineeringActive
Webster Jerdemarsha25@yahoo.comSalesInactive
Shany McGlynnedmond91@gmail.comSalesActive
Gabe Rutherfordgeraldine.hane@gmail.comSupportActive
Ms. Deon Schoenchandler.cronin@gmail.comSupportInactive
Rows per page:
Page 1 of 2

Column Pinning

Opt-in header pin buttons let you pin columns left or right. Pinned columns are sticky to the table edges; override --ui-table-pinned-bg in CSS if you need a different background. Use enable-column-pinning and show-column-pin-buttons to render the controls, and listen to update:columnPinning / column-pin if you need to sync state.

Pin columns with the header menu: choose left, right, or unpin.
ID
First Name
Last Name
Email
Phone
Address
Department
Status
63WBRGAngeloBernierangelo_bernier@gmail.com(553) 706-401213867 Krajcik Canyon Suite 750SalesInactive
MWGFXCTraceyNicolastracey.nicolas0@yahoo.com(945) 680-853856050 Sally Court Apt. 785SalesInactive
4BM8TUGrahamNikolausgraham_nikolaus@hotmail.com(617) 969-592268096 Waylon Square Suite 710MarketingInactive
WFDTFQAdaKoelpin-Gusikowskiada.koelpin-gusikowski28@gmail.com(574) 372-7305715 N 3rd Street Suite 926EngineeringActive
1VV5WTSophieBogansophie.bogan@yahoo.com(449) 451-8162791 Langworth Causeway Suite 996SupportInactive
AAPIUXBeverlyLittlebeverly.little8@gmail.com(631) 878-710758797 Elna Loop Suite 686EngineeringActive
5BSAXFCordiaRuntecordia.runte@gmail.com(277) 806-404325495 Ned Estate Suite 528EngineeringInactive
NWJ8WRJerroldRolfsonjerrold_rolfson96@hotmail.com(502) 687-5974932 Barn Close Suite 476SalesInactive
Rows per page:
Page 1 of 1
Pinned columns
None

Context Menu

Name
Email
Role
Department
Status
Ayana Fisherdeon_hansen@gmail.comAdminSalesInactive
Mr. Rodney O'Connerhilda.smith-schuster@yahoo.comMemberSalesInactive
Mr. Ira Littel-Wolffkelsi.kling44@yahoo.comMemberSalesInactive
Adella Heaneyedwina_haley5@gmail.comAdminEngineeringActive
Erma Stokescaleb.wisoky26@gmail.comAdminSalesInactive
Shaun Schmittrudy.dicki40@yahoo.comViewerEngineeringInactive
Mr. Jordan Wunschbradford88@gmail.comAdminSupportInactive
Lorraine Huelnorman83@yahoo.comMemberEngineeringInactive
Hugo Gerholdsandra_larson@yahoo.comMemberMarketingInactive
Karlie Schinnerjess.halvorson29@gmail.comAdminSalesActive
Rows per page:
Page 1 of 2