| Invoice | Status | Method | Amount |
|---|---|---|---|
| INV-001 | Paid | Credit Card | $250.00 |
| INV-002 | Pending | PayPal | $150.00 |
| INV-003 | Unpaid | Bank Transfer | $350.00 |
| Total | $750.00 | ||
---
import {
Table,
TableBody,
TableCaption,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"
---
<Table class="w-full max-w-2xl">
<TableCaption>A list of your recent invoices.</TableCaption>
<TableHeader>
<TableRow>
<TableHead>Invoice</TableHead>
<TableHead>Status</TableHead>
<TableHead>Method</TableHead>
<TableHead class="text-right">Amount</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>INV-001</TableCell>
<TableCell>Paid</TableCell>
<TableCell>Credit Card</TableCell>
<TableCell class="text-right">$250.00</TableCell>
</TableRow>
<TableRow>
<TableCell>INV-002</TableCell>
<TableCell>Pending</TableCell>
<TableCell>PayPal</TableCell>
<TableCell class="text-right">$150.00</TableCell>
</TableRow>
<TableRow>
<TableCell>INV-003</TableCell>
<TableCell>Unpaid</TableCell>
<TableCell>Bank Transfer</TableCell>
<TableCell class="text-right">$350.00</TableCell>
</TableRow>
</TableBody>
<TableFooter>
<TableRow>
<TableCell colspan="3">Total</TableCell>
<TableCell class="text-right">$750.00</TableCell>
</TableRow>
</TableFooter>
</Table>Installation
npx shadcn@latest add @fulldev/table
Usage
import {
Table,
TableBody,
TableCaption,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/table"
<Table>
<TableCaption>A list of your invoices.</TableCaption>
<TableHeader>
<TableRow>
<TableHead>Invoice</TableHead>
<TableHead>Status</TableHead>
<TableHead>Amount</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell>INV-001</TableCell>
<TableCell>Paid</TableCell>
<TableCell>$250.00</TableCell>
</TableRow>
</TableBody>
</Table>
Composition
Use the following composition to build a Table:
Table
├── TableCaption
├── TableHeader
│ └── TableRow
│ ├── TableHead
│ ├── TableHead
│ └── TableHead
├── TableBody
│ └── TableRow
│ ├── TableCell
│ ├── TableCell
│ └── TableCell
└── TableFooter
Notes
- Keep table structure semantic: headers in
TableHeader, rows inTableBody, and summary data inTableFooterwhen needed. - Right-align numeric columns so values are easier to scan.
- Wrap large tables in a container with horizontal overflow when the content may exceed the available width.
API Reference
See the GitHub source code for more information on props.