fetaUI
GitHub

Table

Native table parts on one cell component, in Compact or Comfortable density and Plain or Grid style.

FreeWeb and MobileMotion

Preview

npx shadcn add @fetaui/table
Playground
Invoices5 PAID OF 7
InvoiceStatusMethod
INV001PaidCredit card$250.00
INV002PendingMobile wallet$150.00
INV003UnpaidBank transfer$350.00
INV004PaidCredit card$450.00
INV005PaidMobile wallet$550.00
Total$1,750.00

A list of your recent invoices.

Actions
Products3 ITEMS
ProductPriceActions
Wireless mouse$29.99
Mechanical keyboard$129.99
USB C hub$49.99

Row actions open a menu from the more button.

Usage
UsageOCT 2026
ModelRequestsTokensCost
Aster Max1,2048.2M$412.10
Aster Core9,88041.6M$624.00
Aster Mini22,31058.9M$73.60
Embeddings4,40212.3M$1.23
Total37,796121M$1,110.93

Striped rows help scan long numbers.

Plain, Comfortable
TypeCell
TextRegular ink
TitleMedium ink
MutedSecondary
Number1,240
Amount$1,240.00
Monoa4f2c1
AvatarEmma Collins
BadgeDraft
Checkbox
Action
Treeapi-produs-east-1
SelectedInk ring and fill handle
EditingLifted with a caret
ElevatedSurface and 8% ring
Grid, Compact
TypeCell
TextRegular ink
TitleMedium ink
MutedSecondary
Number1,240
Amount$1,240.00
Monoa4f2c1
AvatarEmma Collins
BadgeDraft
Checkbox
Action
Treeapi-produs-east-1
SelectedInk ring and fill handle
EditingLifted with a caret
ElevatedSurface and 8% ring
Density
Style
Icons animation
Striped
Motion

Installation

Terminal· bash
 npx shadcn add @fetaui/table

Accessibility

  • Real table, thead, th and td elements, so screen readers announce rows and columns.
  • Sorted columns set aria-sort. Sort controls are real buttons.
  • Selected rows set aria-selected.
  • Selection is a wash and a checkbox, never color alone.

Motion

  • Selection is instant, so keyboard work stays fast.
  • Sorting slides rows to their new place in 240 ms by transform.
  • Rows jump instead of sliding past 200 rows.
  • The sort arrow turns over 150 ms and the column wash appears with it.
  • With reduced motion, rows reorder at once.

Responsive behavior

  • Scrolls sideways inside its own frame when columns need more room.
  • 14 px text on Web and 15 px on Mobile. Rows grow to 52.
  • Tree chevrons and sort buttons grow to 44 on Mobile.

Performance

  • Native table markup with no Motion. Sideways scroll sits in its own frame.
  • useRowReorder slides rows with a transform. Past 200 rows they jump, so big tables stay instant.

Note for AI

Give your coding assistant the Markdown reference instead of screenshots.

  • Import Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCard and useRowReorder.
  • TableCell type sets the content: text, title, muted, number, amount, mono, avatar, badge, checkbox, action, tree.
  • Sorting is yours: TableHead takes sort and onSort, and you reorder the rows. Pass rowKey to slide them.
  • Use noScroll when row menus must float past the table.

Related