fetaUI
GitHub

Data Table

Sort, search, filter, page and act in bulk on one set of records, with Data Table Header and Table Toolbar on the tray.

FreeWeb and MobileMotion

Preview

npx shadcn add @fetaui/data-table
Playground
Projects240
OwnerDue
Docs refreshMarcus JohnsonDoneSep 1897
Aurora redesignEmma CollinsIn reviewOct 292
Billing migrationNoah WilliamsOn trackOct 1486
Mobile onboardingAri SinghOn trackNov 678
Cinder analyticsInez ParkAt riskSep 2864
Docs refresh97
DoneMarcus Johnson · Sep 18
Aurora redesign92
In reviewEmma Collins · Oct 2
Billing migration86
On trackNoah Williams · Oct 14
Mobile onboarding78
On trackAri Singh · Nov 6
Cinder analytics64
At riskInez Park · Sep 28
Sorted
Projects5
OwnerDue
Docs refreshMarcus JohnsonDoneSep 1897
Aurora redesignEmma CollinsIn reviewOct 292
Billing migrationNoah WilliamsOn trackOct 1486
Mobile onboardingAri SinghOn trackNov 678
Cinder analyticsInez ParkAt riskSep 2864
Docs refresh97
DoneMarcus Johnson · Sep 18
Aurora redesign92
In reviewEmma Collins · Oct 2
Billing migration86
On trackNoah Williams · Oct 14
Mobile onboarding78
On trackAri Singh · Nov 6
Cinder analytics64
At riskInez Park · Sep 28
Selected
OwnerDue
Docs refreshMarcus JohnsonDoneSep 1897
Aurora redesignEmma CollinsIn reviewOct 292
Billing migrationNoah WilliamsOn trackOct 1486
Mobile onboardingAri SinghOn trackNov 678
Cinder analyticsInez ParkAt riskSep 2864
Docs refresh97
DoneMarcus Johnson · Sep 18
Aurora redesign92
In reviewEmma Collins · Oct 2
Billing migration86
On trackNoah Williams · Oct 14
Mobile onboarding78
On trackAri Singh · Nov 6
Cinder analytics64
At riskInez Park · Sep 28
2 of 5 selected
Loading
Projects5
OwnerDue
Loading projects…
Empty
Projects0 of 5

No projects match these filters

Remove a filter or search for something else.

No projects match these filters

Remove a filter or search for something else.

Filtered
Projects2 of 5
Status: On track
OwnerDue
Billing migrationNoah WilliamsOn trackOct 1486
Mobile onboardingAri SinghOn trackNov 678
Billing migration86
On trackNoah Williams · Oct 14
Mobile onboarding78
On trackAri Singh · Nov 6
Data Table Header
Projects5
Table Toolbar
No filters
Status: In reviewOwner: Emma Collins
Rows
Icons animation
Motion

Installation

Terminal· bash
 npx shadcn add @fetaui/data-table

Accessibility

  • Real table semantics, with aria-sort on the sorted header and aria-selected on rows.
  • The bulk bar is a labelled toolbar.
  • Mobile cards repeat the same checkboxes with the same names.
  • Status is a label and a mark, never color alone.

Motion

  • Sorting toggles asc, desc, off. Rows slide 300 ms by transform and jump past 200 rows.
  • The header crossfades into bulk actions with a 4 px slide over 200 ms.
  • Chips scale from 0.9 on a spring.
  • Skeleton rows shimmer on a 1,200 ms loop that pauses offscreen.
  • With reduced motion, rows reorder at once and the skeleton is static.

Responsive behavior

  • Only the current page renders, so long lists stay fast.
  • Under 520 px rows become stacked cards by container width.
  • Search folds into an icon button and actions become round icon buttons.

Performance

  • Only the current page renders, so long lists stay fast.
  • Matching and sorting are memoized on their inputs.

Note for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Import DataTable, DataTableHeader and TableToolbar. Required: title, columns, rows, getId.
  • A column's value drives sort, search and filters, and render draws the cell. card places it on Mobile.
  • Sorting and filtering run on the client, on the rows you pass. Server paging needs the header and Table pieces instead.
  • actions run on selected ids through onSelect, and action is the one Primary. In the demo neither is connected.

Related