A table component for displaying tabular data. Powered by @tanstack/react-table under the hood.
| Alice Martin | Engineer | Active |
| Bob Chen | Designer | Active |
| Carol Kim | Manager | Inactive |
import { DataGrid } from '@ontoui/react';
import type { ColumnDef } from '@tanstack/react-table';
const columns: ColumnDef<Person, unknown>[] = [
{ accessorKey: 'name', header: 'Name' },
{ accessorKey: 'role', header: 'Role' },
{ name: 'Alice', role: 'Engineer' },
{ name: 'Bob', role: 'Designer' },
<DataGrid data={data} columns={columns} />;
Alternates background color on odd rows for easier scanning.
| Alice Martin | Engineer | Active |
| Bob Chen | Designer | Active |
| Carol Kim | Manager | Inactive |
<DataGrid data={data} columns={columns} striped />
Adds vertical borders between columns.
| Alice Martin | Engineer | Active |
| Bob Chen | Designer | Active |
| Carol Kim | Manager | Inactive |
<DataGrid data={data} columns={columns} bordered />
Shows a loading indicator while data is being fetched.
<DataGrid data={[]} columns={columns} loading />
Displays a message when there is no data to show.
<DataGrid data={[]} columns={columns} emptyText="No results found" />
| Prop | Type | Default |
className? | string | — |
data | TData[] | — |
columns | ColumnDef<TData, unknown>[] | — |
loading? | boolean | false |
emptyText? | string | No data |
striped? | boolean | false |
bordered? | boolean | false |
stickyHeader? | boolean | false |
style? | CSSProperties | — |
onRowClick? | (row: Row<TData>) => void | — |