Ada Lovelace
Engineer
Active
$4,200
Alan Turing
Researcher
Active
$5,800
Grace Hopper
Architect
Pending
$3,100
Linus Torvalds
Maintainer
Archived
$2,750
Margaret Hamilton
Lead
Active
$6,400
5 of 5 entries
Installation
npx shadcn@latest add @iconiq/tableProps
Table
3 props
Root provider for the animated table primitives. It sets the shared column template so header and body rows stay aligned.
children
ReactNodeRequired
Compose TableHeader, TableBody, TableRow, TableHead, TableCell, and optional helper primitives inside the root.
columns
stringDefault
"minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)"Shared grid-template-columns value applied to every header and body row so custom layouts stay aligned.
className
stringMerged onto the root wrapper when you need to adjust width, spacing, or placement.
Notes
The canonical JSX export is `Table`, and the lowercase `table` alias still ships for backward compatibility.
The file also exports `TABLE_DEFAULT_COLUMNS`, `TableAlign`, `TableRowVariant`, and `TableSortDirection` for stronger TypeScript reuse in app code.
The registry component no longer owns demo data, search state, or add/remove actions. Those behaviors are expected to live in app code.
Semantic roles default to a div-based table structure (`table`, `rowgroup`, `row`, `columnheader`, and `cell`) so the installed primitive is more accessible without changing the visual layout.
TableToolbar
2 props
Optional layout helper for the control row above the table, matching the original spacing and alignment treatment.
children
ReactNodeRequired
Usually a search field, actions, filters, or bulk controls placed above the table.
className
stringMerged onto the toolbar wrapper.
TableHeader
2 props
Top shell for the header area. It preserves the original top border before the first row.
children
ReactNodeRequired
Usually one header TableRow.
className
stringMerged onto the header wrapper.
TableBody
2 props
Body wrapper that adds LayoutGroup and AnimatePresence so row insertions, removals, and reordering stay animated.
children
ReactNodeRequired
One or more TableRow elements, plus optional TableEmpty when no rows are visible.
className
stringMerged onto the body wrapper.
Notes
Exit animations for removed rows only run when body rows are rendered as direct children of TableBody.
TableRow
5 props
Motion-enabled row primitive used for both header and body layouts.
variant
"header" | "body"Default
bodyHeader rows skip mount and exit motion, while body rows use the original spring-based row transitions.
index
numberDefault
0Optional row index used to apply a subtle stagger to body row entry motion.
hoverable
booleanWhen true, body rows keep the original muted hover wash. Defaults to false for header rows and true for body rows.
className
stringMerged onto the row shell for spacing or color overrides.
Motion div props
ComponentPropsWithoutRef<typeof motion.div>Additional motion.div props such as layout, transition, whileHover, and exit can still be passed directly.
Notes
Every row reads the shared columns string from Table and applies it as grid-template-columns.
Rows expose `data-slot="table-row"`, plus `data-variant` and `data-hoverable`, which makes local styling overrides easier after installation.
TableHead
3 props
Header cell wrapper for labels, sort buttons, and right-aligned controls.
align
"left" | "right"Default
leftControls left or right alignment for the header cell content.
children
ReactNodeRequired
Header label or a custom control such as TableSortButton.
className
stringMerged onto the header cell wrapper.
TableCell
3 props
Body cell wrapper for row content, status pills, numeric values, and row actions.
align
"left" | "right"Default
leftControls left or right alignment for the cell content.
children
ReactNodeRequired
Rendered cell content.
className
stringMerged onto the cell wrapper.
TableCaption
2 props
Low-emphasis caption line below the table, matching the original entry count styling.
children
ReactNodeRequired
Caption copy, summary text, or count information.
className
stringMerged onto the caption paragraph.
TableEmpty
2 props
Animated empty-state block for zero-result or no-data states inside TableBody.
children
ReactNodeRequired
Empty-state copy or a richer no-data message.
Motion div props
ComponentPropsWithoutRef<typeof motion.div>You can still override animate, initial, transition, or className when customizing the empty state.
TableSortButton
5 props
Optional header helper that preserves the original label-plus-chevron treatment and direction animation.
active
booleanDefault
falseStrengthens the icon opacity and enables the active sort direction treatment.
direction
"asc" | "desc"Default
ascRotates the chevron when the current active sort direction is descending.
align
"left" | "right"Default
leftKeeps the sort button aligned with the header cell it lives in.
children
ReactNodeRequired
Visible sort label.
className
stringMerged onto the button wrapper.
Notes
The helper defaults to type='button', so it stays safe inside forms.