Skip to content
GitHub

Table

A responsive table component.

A list of your recent invoices.
InvoiceStatusMethodAmount
INV001PaidCredit Card$250.00
INV002PendingPayPal$150.00
INV003UnpaidBank Transfer$350.00
INV004PaidCredit Card$450.00
INV005PaidPayPal$550.00
INV006PendingBank Transfer$200.00
INV007UnpaidCredit Card$300.00
Total$2,500.00
import {
Table,
TableBody,
TableCaption,
TableCell,
TableFooter,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/pxl/table";
export default function TableDemo() {
return (
<Table>
<TableCaption>A list of your recent invoices.</TableCaption>
<TableHeader>
<TableRow border="solid">
<TableHead className="w-25">Invoice</TableHead>
<TableHead>Status</TableHead>
<TableHead>Method</TableHead>
<TableHead className="text-right">Amount</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-medium">INV001</TableCell>
<TableCell>Paid</TableCell>
<TableCell>Credit Card</TableCell>
<TableCell className="text-right font-mono">$250.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV002</TableCell>
<TableCell>Pending</TableCell>
<TableCell>PayPal</TableCell>
<TableCell className="text-right font-mono">$150.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV003</TableCell>
<TableCell>Unpaid</TableCell>
<TableCell>Bank Transfer</TableCell>
<TableCell className="text-right font-mono">$350.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV004</TableCell>
<TableCell>Paid</TableCell>
<TableCell>Credit Card</TableCell>
<TableCell className="text-right font-mono">$450.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV005</TableCell>
<TableCell>Paid</TableCell>
<TableCell>PayPal</TableCell>
<TableCell className="text-right font-mono">$550.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV006</TableCell>
<TableCell>Pending</TableCell>
<TableCell>Bank Transfer</TableCell>
<TableCell className="text-right font-mono">$200.00</TableCell>
</TableRow>
<TableRow>
<TableCell className="font-medium">INV007</TableCell>
<TableCell>Unpaid</TableCell>
<TableCell>Credit Card</TableCell>
<TableCell className="text-right font-mono">$300.00</TableCell>
</TableRow>
</TableBody>
<TableFooter>
<TableRow>
<TableCell colSpan={3}>Total</TableCell>
<TableCell className="text-right font-mono">$2,500.00</TableCell>
</TableRow>
</TableFooter>
</Table>
);
}
pnpm dlx shadcn@latest add pxl-ui/registry/table
import {
Table,
TableBody,
TableCaption,
TableCell,
TableHead,
TableHeader,
TableRow,
} from "@/components/ui/pxl/table"
<Table>
<TableCaption>A list of your recent invoices.</TableCaption>
<TableHeader>
<TableRow>
<TableHead className="w-25">Invoice</TableHead>
<TableHead>Status</TableHead>
<TableHead>Method</TableHead>
<TableHead className="text-right">Amount</TableHead>
</TableRow>
</TableHeader>
<TableBody>
<TableRow>
<TableCell className="font-medium">INV001</TableCell>
<TableCell>Paid</TableCell>
<TableCell>Credit Card</TableCell>
<TableCell className="text-right">$250.00</TableCell>
</TableRow>
</TableBody>
</Table>

Use the following composition to build a Table:

Table
├── TableCaption
├── TableHeader
│ └── TableRow
│ ├── TableHead
│ ├── TableHead
│ ├── TableHead
│ └── TableHead
├── TableBody
│ ├── TableRow
│ │ ├── TableCell
│ │ ├── TableCell
│ │ ├── TableCell
│ │ └── TableCell
│ └── TableRow
│ ├── TableCell
│ ├── TableCell
│ ├── TableCell
│ └── TableCell
└── TableFooter

Use the <TableFooter /> component to add a footer to the table.