9.5k

Table

A simple table component for displaying tabular data.

Installation

Usage

API Reference

Table

The main table container component. Set variant="card" for a card-style table: separated borders, rounded corners, and row surfaces that read as cards. That pairs well with a Frame (page chrome) or CardFrame (card shell with optional header actions). The default variant is a simpler row layout with standard borders.

TableHeader

Header section of the table containing column headers.

TableBody

Body section of the table containing table rows and data.

TableFooter

Footer section of the table.

TableRow

A row in the table.

TableHead

A header cell in the table.

TableCell

A data cell in the table.

TableCaption

A caption for the table.

Examples

Card-style table

Use variant="card" when the grid itself should look like a set of cards (for example dashboards or standalone tables without an outer frame).

Table in CardFrame

Put the table in CardFrame so the grid sits inside the card shell (border, radius, clipping). Use variant="card" on Table. The example below is static markup—no row selection or TanStack.

Table in Frame

Wrap the table in a Frame for bordered app-surface framing. Use variant="card" on Table so rows keep the card-style treatment inside the frame.

Data table with TanStack

Use TanStack Table with variant="card" when you need column definitions, row selection, and flexRender over the same table primitives. Add @tanstack/react-table to your project for headless state (sorting, pagination, selection) beyond static markup.

Changelog

  • Apr 12, 2026Table adds optional variant (default or card)

coss.com ui

Built by and for the team of Cal.com, Inc. — the leading commercial open source company (“coss”).