The DataTable component provides a set of composable, semantic HTML table primitives for displaying structured data. Each sub-component maps to a native table element with consistent styling, hover states, and dark mode support.
Import
} from '@nim-ui/components' ;
Basic Usage
Basic Table
View Code
< DataTableHead >Name</ DataTableHead >
< DataTableHead >Email</ DataTableHead >
< DataTableHead >Role</ DataTableHead >
< DataTableCell >Alice Johnson</ DataTableCell >
< DataTableCell >Admin</ DataTableCell >
< DataTableCell >Bob Smith</ DataTableCell >
< DataTableCell >Editor</ DataTableCell >
< DataTableCell >Carol Davis</ DataTableCell >
< DataTableCell >Viewer</ DataTableCell >
Use DataTableFooter to add summary rows such as totals or aggregates.
Table with Footer Product Qty Price Widget A 3 $30.00 Widget B 1 $45.00 Total 4 $75.00
View Code
< DataTableHead >Product</ DataTableHead >
< DataTableHead >Qty</ DataTableHead >
< DataTableHead >Price</ DataTableHead >
< DataTableCell >Widget A</ DataTableCell >
< DataTableCell >3</ DataTableCell >
< DataTableCell >$30.00</ DataTableCell >
< DataTableCell >Widget B</ DataTableCell >
< DataTableCell >1</ DataTableCell >
< DataTableCell >$45.00</ DataTableCell >
< DataTableCell >Total</ DataTableCell >
< DataTableCell >4</ DataTableCell >
< DataTableCell >$75.00</ DataTableCell >
Props
DataTable
Name
Type
Default
Description
className string - Additional CSS classes to apply to the table element children * ReactNode - DataTableHeader, DataTableBody, and DataTableFooter components
Name
Type
Default
Description
className string - Additional CSS classes for the thead element children * ReactNode - DataTableRow components containing DataTableHead cells
DataTableBody
Name
Type
Default
Description
className string - Additional CSS classes for the tbody element children * ReactNode - DataTableRow components containing DataTableCell cells
Name
Type
Default
Description
className string - Additional CSS classes for the tfoot element children * ReactNode - DataTableRow components for footer content
DataTableRow
Name
Type
Default
Description
className string - Additional CSS classes for the tr element children * ReactNode - DataTableHead or DataTableCell components
DataTableHead
Name
Type
Default
Description
className string - Additional CSS classes for the th element children * ReactNode - Header cell content
DataTableCell
Name
Type
Default
Description
className string - Additional CSS classes for the td element children * ReactNode - Cell content
Usage Examples
Dynamic Data Rendering
function UsersTable ({ users } : { users : User [] }) {
< DataTableHead >Name</ DataTableHead >
< DataTableHead >Email</ DataTableHead >
< DataTableHead >Role</ DataTableHead >
< DataTableRow key = {user.id}>
< DataTableCell >{user.name}</ DataTableCell >
< DataTableCell >{user.email}</ DataTableCell >
< DataTableCell >{user.role}</ DataTableCell >
Order Summary Table
function OrderSummary ({ items , total } : { items : OrderItem []; total : string }) {
< DataTableHead >Item</ DataTableHead >
< DataTableHead >Qty</ DataTableHead >
< DataTableHead >Price</ DataTableHead >
< DataTableRow key = {item.id}>
< DataTableCell >{item.name}</ DataTableCell >
< DataTableCell >{item.quantity}</ DataTableCell >
< DataTableCell >{item.price}</ DataTableCell >
< DataTableCell colSpan = { 2 }>Total</ DataTableCell >
< DataTableCell >{total}</ DataTableCell >
DataCard - Metric display card for KPIs
Badge - Status indicators for table cells
CartItem - Shopping cart line items