Table
A responsive table component for displaying structured tabular data.
| Invoice | Status | Method | Amount |
|---|---|---|---|
| INV001 | Paid | Credit Card | $250.00 |
| INV002 | Pending | PayPal | $150.00 |
| INV003 | Unpaid | Bank Transfer | $350.00 |
| INV004 | Paid | Credit Card | $450.00 |
| INV005 | Paid | PayPal | $550.00 |
import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table/table";
export default function TableDemo() {
const invoices = [
{
invoice: "INV001",
paymentStatus: "Paid",
totalAmount: "$250.00",
paymentMethod: "Credit Card",
},
{
invoice: "INV002",
paymentStatus: "Pending",
totalAmount: "$150.00",
paymentMethod: "PayPal",
},
{
invoice: "INV003",
paymentStatus: "Unpaid",
totalAmount: "$350.00",
paymentMethod: "Bank Transfer",
},
{
invoice: "INV004",
paymentStatus: "Paid",
totalAmount: "$450.00",
paymentMethod: "Credit Card",
},
{
invoice: "INV005",
paymentStatus: "Paid",
totalAmount: "$550.00",
paymentMethod: "PayPal",
},
];
return (
<Table>
<TableHeader>
<TableRow>
<TableHead>Invoice</TableHead>
<TableHead>Status</TableHead>
<TableHead>Method</TableHead>
<TableHead align="right">Amount</TableHead>
</TableRow>
</TableHeader>
<TableBody>
{invoices.map((invoice) => (
<TableRow key={invoice.invoice}>
<TableCell className="font-medium">{invoice.invoice}</TableCell>
<TableCell>{invoice.paymentStatus}</TableCell>
<TableCell>{invoice.paymentMethod}</TableCell>
<TableCell align="right">{invoice.totalAmount}</TableCell>
</TableRow>
))}
</TableBody>
</Table>
);
}
npx shadcn@latest add @roiui/tablenpx shadcn@latest add @roiui/table-tailwindanatomy
<Table>
<TableCaption>Optional caption</TableCaption>
<TableHeader>
<TableRow>
<TableHead>Header</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>Cell</TableCell>
</TableRow>
</TableBody>
<TableFooter>
<TableRow>
<TableCell>Footer</TableCell>
</TableRow>
</TableFooter>
</Table>Component props
Prop
Type
Default
Name
variantDescription
The visual style variant of the table
Type
"default" | "bordered" | "striped"Default
"default"Name
sizeDescription
The size/padding of table cells
Type
"sm" | "md" | "lg"Default
"md"Name
classNameDescription
Additional CSS classes to apply to the table
Type
stringDefault
-
Component props
Prop
Type
Default
Name
classNameDescription
Additional CSS classes to apply to the table header
Type
stringDefault
-
Component props
Prop
Type
Default
Name
classNameDescription
Additional CSS classes to apply to the table body
Type
stringDefault
-
Component props
Prop
Type
Default
Name
classNameDescription
Additional CSS classes to apply to the table footer
Type
stringDefault
-
Component props
Prop
Type
Default
Name
classNameDescription
Additional CSS classes to apply to the row
Type
stringDefault
-
Name
onClickDescription
Click handler for interactive rows
Type
functionDefault
-
Component props
Prop
Type
Default
Name
alignDescription
Text alignment for the header cell
Type
"left" | "center" | "right"Default
"left"Name
classNameDescription
Additional CSS classes to apply to the header cell
Type
stringDefault
-
Component props
Prop
Type
Default
Name
alignDescription
Text alignment for the data cell
Type
"left" | "center" | "right"Default
"left"Name
classNameDescription
Additional CSS classes to apply to the data cell
Type
stringDefault
-
Component props
Prop
Type
Default
Name
classNameDescription
Additional CSS classes to apply to the caption
Type
stringDefault
-