Table

Data grid table primitives matching design system divider and hairline border visual token specifications.

// Plain markup
import { Table, TableBody, TableCell, TableColumnHeaderCell, TableHeader, TableRow } from "@shavin/ui";

Sample table

ItemAmountDueStatus
Netflix subscription$15.49TomorrowPending
Car EMI$420.00in 3 daysPending
Rent$1,800.00Aug 1Scheduled
Gym membership$40.00Aug 5Scheduled
<Table>
  <TableHeader>
    <TableRow>
      <TableColumnHeaderCell>Item</TableColumnHeaderCell>
      <TableColumnHeaderCell>Amount</TableColumnHeaderCell>
      <TableColumnHeaderCell>Due</TableColumnHeaderCell>
      <TableColumnHeaderCell>Status</TableColumnHeaderCell>
    </TableRow>
  </TableHeader>
  <TableBody>
    {ROWS.map((row) => (
      <TableRow key={row.name} onClick={() => {}}>
        <TableCell className="font-medium text-fg">{row.name}</TableCell>
        <TableCell>{row.amount}</TableCell>
        <TableCell>{row.due}</TableCell>
        <TableCell>{row.status}</TableCell>
      </TableRow>
    ))}
  </TableBody>
</Table>

Props

Table takes no props beyond className and the native element's attributes.

Configure Theme
Theme
Accent Color
Custom
Gray Family
Appearance
Radius
Scaling
Panel Style
Heading Font
Body Font