Free and open-source React table components built for modern applications and websites. These tables are built using React Aria and styled with Tailwind CSS.
Team members
100 usersName | Status | Role | Email address | Teams | ||
|---|---|---|---|---|---|---|
Olivia Rhye @olivia | Active | Product Designer | olivia@untitledui.com | DesignProductMarketing+4 | ||
Phoenix Baker @phoenix | Active | Product Manager | phoenix@untitledui.com | DesignProductMarketing+4 | ||
Lana Steiner @lana | Active | Frontend Developer | lana@untitledui.com | DesignProductMarketing+2 | ||
Demi Wilkinson @demi | Active | Backend Developer | demi@untitledui.com | DesignProductMarketing+1 | ||
Candice Wu @candice | Active | Fullstack Developer | candice@untitledui.com | DesignProductMarketing+2 | ||
Natali Craig @natali | Active | UX Designer | natali@untitledui.com | DesignProductMarketing+2 | ||
Drew Cano @drew | Active | UX Copywriter | drew@untitledui.com | DesignProductMarketing+4 | ||
Orlando Diggs @orlando | Active | UI Designer | orlando@untitledui.com | DesignProductMarketing+4 | ||
Andi Lane @andi | Active | Product Manager | andi@untitledui.com | DesignProductMarketing+4 | ||
Kate Morrison @kate | Active | QA Engineer | kate@untitledui.com | DesignProductMarketing+2 |
Installation
You can add this table component using our CLI or manually:
npx untitledui@latest add table
Sizes
Our table components come in 2 sizes: sm and md. You can easily switch between them by changing the size prop either on the TableCard.Root or on the Table component.
<TableCard.Root size="sm"> {/* rest of the table components */} </TableCard.Root>
<Table size="sm"> {/* rest of the table components */} </Table>
Team members
100 usersName | Status | Role | Email address | Teams | ||
|---|---|---|---|---|---|---|
Olivia Rhye | Active | Product Designer | olivia@untitledui.com | DesignProductMarketing+4 | ||
Phoenix Baker | Active | Product Manager | phoenix@untitledui.com | DesignProductMarketing+4 | ||
Lana Steiner | Active | Frontend Developer | lana@untitledui.com | DesignProductMarketing+2 | ||
Demi Wilkinson | Active | Backend Developer | demi@untitledui.com | DesignProductMarketing+1 | ||
Candice Wu | Active | Fullstack Developer | candice@untitledui.com | DesignProductMarketing+2 | ||
Natali Craig | Active | UX Designer | natali@untitledui.com | DesignProductMarketing+2 | ||
Drew Cano | Active | UX Copywriter | drew@untitledui.com | DesignProductMarketing+4 | ||
Orlando Diggs | Active | UI Designer | orlando@untitledui.com | DesignProductMarketing+4 | ||
Andi Lane | Active | Product Manager | andi@untitledui.com | DesignProductMarketing+4 | ||
Kate Morrison | Active | QA Engineer | kate@untitledui.com | DesignProductMarketing+2 |
Table examples
Below are examples and variations of this table component:
Team members
100 usersName | Status | Role | Email address | Teams | ||
|---|---|---|---|---|---|---|
Olivia Rhye @olivia | Active | Product Designer | olivia@untitledui.com | DesignProductMarketing+4 | ||
Phoenix Baker @phoenix | Active | Product Manager | phoenix@untitledui.com | DesignProductMarketing+4 | ||
Lana Steiner @lana | Active | Frontend Developer | lana@untitledui.com | DesignProductMarketing+2 | ||
Demi Wilkinson @demi | Active | Backend Developer | demi@untitledui.com | DesignProductMarketing+1 | ||
Candice Wu @candice | Active | Fullstack Developer | candice@untitledui.com | DesignProductMarketing+2 | ||
Natali Craig @natali | Active | UX Designer | natali@untitledui.com | DesignProductMarketing+2 | ||
Drew Cano @drew | Active | UX Copywriter | drew@untitledui.com | DesignProductMarketing+4 | ||
Orlando Diggs @orlando | Active | UI Designer | orlando@untitledui.com | DesignProductMarketing+4 | ||
Andi Lane @andi | Active | Product Manager | andi@untitledui.com | DesignProductMarketing+4 | ||
Kate Morrison @kate | Active | QA Engineer | kate@untitledui.com | DesignProductMarketing+2 |
Team members
100 usersName | Status | Role | Email address | Teams | ||
|---|---|---|---|---|---|---|
Olivia Rhye @olivia | Active | Product Designer | olivia@untitledui.com | DesignProductMarketing+4 | ||
Phoenix Baker @phoenix | Active | Product Manager | phoenix@untitledui.com | DesignProductMarketing+4 | ||
Lana Steiner @lana | Active | Frontend Developer | lana@untitledui.com | DesignProductMarketing+2 | ||
Demi Wilkinson @demi | Active | Backend Developer | demi@untitledui.com | DesignProductMarketing+1 | ||
Candice Wu @candice | Active | Fullstack Developer | candice@untitledui.com | DesignProductMarketing+2 | ||
Natali Craig @natali | Active | UX Designer | natali@untitledui.com | DesignProductMarketing+2 | ||
Drew Cano @drew | Active | UX Copywriter | drew@untitledui.com | DesignProductMarketing+4 | ||
Orlando Diggs @orlando | Active | UI Designer | orlando@untitledui.com | DesignProductMarketing+4 | ||
Andi Lane @andi | Active | Product Manager | andi@untitledui.com | DesignProductMarketing+4 | ||
Kate Morrison @kate | Active | QA Engineer | kate@untitledui.com | DesignProductMarketing+2 |
Customers
These companies have purchased in the last 12 months.
Company | Status | About | Users | License use | |
|---|---|---|---|---|---|
![]() Stack3d Lab stack3dlab.com | Churned | Design software Super lightweight design app | +5 | 60% | |
![]() ContrastAI contrastai.com | Churned | Web app integrations Connect web apps seamlessly | +5 | 20% | |
![]() Ephemeral ephemeral.io | Customer | Content curating app Brings all your news into one place | +5 | 70% | |
![]() Warpspeed getwarpspeed.com | Customer | Data prediction AI and machine learning data | +5 | 30% | |
![]() CloudWatch cloudwatch.app | Customer | Productivity app Time management and productivity | +5 | 80% | |
![]() Convergence convergence.io | Customer | Sales CRM Web-based sales doc management | +5 | 10% | |
![]() Sisyphus sisyphus.com | Customer | Automation and workflow Time tracking, invoicing and expenses | +5 | 40% |
Customers
These companies have purchased in the last 12 months.
Company | Status | About | Users | License use | |
|---|---|---|---|---|---|
![]() Stack3d Lab stack3dlab.com | Churned | Design software Super lightweight design app | +5 | 60% | |
![]() ContrastAI contrastai.com | Churned | Web app integrations Connect web apps seamlessly | +5 | 20% | |
![]() Ephemeral ephemeral.io | Customer | Content curating app Brings all your news into one place | +5 | 70% | |
![]() Warpspeed getwarpspeed.com | Customer | Data prediction AI and machine learning data | +5 | 30% | |
![]() CloudWatch cloudwatch.app | Customer | Productivity app Time management and productivity | +5 | 80% | |
![]() Convergence convergence.io | Customer | Sales CRM Web-based sales doc management | +5 | 10% | |
![]() Sisyphus sisyphus.com | Customer | Automation and workflow Time tracking, invoicing and expenses | +5 | 40% |
Invoice | Date | Status | Customer | Purchase | ||
|---|---|---|---|---|---|---|
| #3066 | Jan 6, 2025 | paid | Olivia Rhye olivia@untitledui.com | Monthly subscription | ||
| #3065 | Jan 6, 2025 | paid | Phoenix Baker phoenix@untitledui.com | Monthly subscription | ||
| #3064 | Jan 6, 2025 | paid | LS Lana Steiner lana@untitledui.com | Monthly subscription | ||
| #3063 | Jan 5, 2025 | paid | DW Demi Wilkinson demi@untitledui.com | Monthly subscription | ||
| #3062 | Jan 5, 2025 | refunded | Candice Wu candice@untitledui.com | Monthly subscription | ||
| #3061 | Jan 5, 2025 | refunded | NC Natali Craig natali@untitledui.com | Monthly subscription | ||
| #3060 | Jan 4, 2025 | cancelled | Drew Cano drew@untitledui.com | Monthly subscription | ||
| #3059 | Jan 3, 2025 | paid | Orlando Diggs orlando@untitledui.com | Monthly subscription | ||
| #3058 | Jan 3, 2025 | paid | Andi Lane andi@untitledui.com | Monthly subscription | ||
| #3057 | Jan 3, 2025 | paid | Kate Morrison kate@untitledui.com | Monthly subscription |
Invoice | Date | Status | Customer | Purchase | ||
|---|---|---|---|---|---|---|
| #3066 | 2025-01-06 | paid | Olivia Rhye olivia@untitledui.com | Monthly subscription | ||
| #3065 | 2025-01-06 | paid | Phoenix Baker phoenix@untitledui.com | Monthly subscription | ||
| #3064 | 2025-01-06 | paid | LS Lana Steiner lana@untitledui.com | Monthly subscription | ||
| #3063 | 2025-01-05 | paid | DW Demi Wilkinson demi@untitledui.com | Monthly subscription | ||
| #3062 | 2025-01-05 | refunded | Candice Wu candice@untitledui.com | Monthly subscription | ||
| #3061 | 2025-01-05 | refunded | NC Natali Craig natali@untitledui.com | Monthly subscription | ||
| #3060 | 2025-01-04 | cancelled | Drew Cano drew@untitledui.com | Monthly subscription | ||
| #3059 | 2025-01-03 | paid | Orlando Diggs orlando@untitledui.com | Monthly subscription | ||
| #3058 | 2025-01-03 | paid | Andi Lane andi@untitledui.com | Monthly subscription | ||
| #3057 | 2025-01-03 | paid | Kate Morrison kate@untitledui.com | Monthly subscription |
Files uploaded
File name | File size | Date uploaded | Last updated | Uploaded by | ||
|---|---|---|---|---|---|---|
Tech requirements.pdf 200 KB | 200 KB | Jan 4, 2025 | Jan 4, 2025 | Olivia Rhye | ||
Dashboard screenshot.jpg 720 KB | 720 KB | Jan 4, 2025 | Jan 4, 2025 | Phoenix Baker | ||
Dashboard prototype recording.mp4 16 MB | 16 MB | Jan 2, 2025 | Jan 2, 2025 | Lana Steiner | ||
Dashboard prototype FINAL.fig 4.2 MB | 4.2 MB | Jan 6, 2025 | Jan 6, 2025 | Demi Wilkinson | ||
UX Design Guidelines.docx 400 KB | 400 KB | Jan 8, 2025 | Jan 8, 2025 | Candice Wu | ||
Dashboard interaction.aep 12 MB | 12 MB | Jan 6, 2025 | Jan 6, 2025 | Natali Craig | ||
Briefing call recording.mp3 18.6 MB | 18.6 MB | Jan 4, 2025 | Jan 4, 2025 | Drew Cano |
Files uploaded
File name | File size | Date uploaded | Last updated | Uploaded by | ||
|---|---|---|---|---|---|---|
Tech requirements.pdf 200 KB | 200 KB | Jan 4, 2025 | Jan 4, 2025 | Olivia Rhye | ||
Dashboard screenshot.jpg 720 KB | 720 KB | Jan 4, 2025 | Jan 4, 2025 | Phoenix Baker | ||
Dashboard prototype recording.mp4 16 MB | 16 MB | Jan 2, 2025 | Jan 2, 2025 | Lana Steiner | ||
Dashboard prototype FINAL.fig 4.2 MB | 4.2 MB | Jan 6, 2025 | Jan 6, 2025 | Demi Wilkinson | ||
UX Design Guidelines.docx 400 KB | 400 KB | Jan 8, 2025 | Jan 8, 2025 | Candice Wu | ||
Dashboard interaction.aep 12 MB | 12 MB | Jan 6, 2025 | Jan 6, 2025 | Natali Craig | ||
Briefing call recording.mp3 18.6 MB | 18.6 MB | Jan 4, 2025 | Jan 4, 2025 | Drew Cano |
Vendor movements
240 vendorsKeep track of vendor and their security ratings.
No vendors found
Your search “Stripe” did not match any vendors. Please try again or create add a new vendor.
Team members
100 usersSomething went wrong...
We had some trouble loading this page. Please refresh the page or get in touch for support.
Users
128 onlineKeep track of vendor and their security ratings.
No users found
Your search did not match any users.
Integrations
Manage custom integrations and workflows.
Add your first integration
Connect the tools you use every day to automate workflows and keep your data in sync.
Users
Manage team members, external users, and their access.
Invite your first user
Add your team members and external users.
My orders
You're offline
Please check your internet connection and try again. If the issue continues, contact support.
API reference
Import the parts and assemble them:
import { Table, TableCard } from "@/components/application/table/table"; <TableCard.Root> <TableCard.Header /> <Table> <Table.Header> <Table.Head /> </Table.Header> <Table.Body> <Table.Row> <Table.Cell /> </Table.Row> </Table.Body> </Table> </TableCard.Root>
Table
Renders a <div> element.
Props from React Aria (28)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers, all standard table attributes, all standard HTML attributes, all aria-* attributes.
Table.Body
Renders React Aria’s TableBody — all of its props are supported.
Styling (3)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers.
Table.Cell
Renders React Aria’s Cell — all of its props are supported.
Props from React Aria Components (9)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers, all standard table cell attributes, all standard HTML attributes, all aria-* attributes.
Table.Head
Renders React Aria’s Column — all of its props are supported.
Props from React Aria Components (14)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers, all standard table header attributes, all standard HTML attributes, all aria-* attributes.
Table.Header
Renders React Aria’s TableHeader — all of its props are supported.
Props from React Aria Components (9)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers, all standard HTML attributes, all aria-* attributes.
Table.Row
Renders React Aria’s Row — all of its props are supported.
Props from React Aria (30)
Also accepts the global HTML attributes (dir, lang, hidden, inert, translate), all standard React DOM event handlers, all standard HTML attributes, all aria-* attributes.
TableCard.Header
Renders a <div> element.
TableCard.Root
Renders a <div> element.
Also accepts all standard HTML attributes, all aria-* attributes, all standard React DOM event handlers.
FAQs
Please refer to our frequently asked questions page for more.
Tables come in two sizes, "sm" and "md", with "md" as the default. Set size on TableCard.Root and it flows down through context to the header, rows, and cells. When the table is not wrapped in a card, set size on Table.Header, Table.Row, and Table.Cell instead — each accepts its own size prop, which also lets you override a single part inside a card. The size prop on Table itself has no effect, because the size context always supplies a value for it to fall back to.
Table is a compound component with Table.Header, Table.Head (one per column), Table.Body, Table.Row, and Table.Cell. TableCard.Root and TableCard.Header wrap it in the bordered card with a title bar, and TableRowActionsDropdown is a ready-made dots menu with Edit, Copy link, and Delete items for the last cell of each row.
Add allowsSorting to the Table.Head for that column and hold a React Aria SortDescriptor in state, passing sortDescriptor and onSortChange to Table. The column header then renders the sort chevron and flips the arrow to match sortDescriptor.direction. Sorting the rows themselves is up to you — the examples derive the sorted array with a useMemo keyed on the descriptor.
Set selectionMode="multiple" on Table. A checkbox column is inserted automatically at the start of Table.Header and every Table.Row — you do not add it yourself — with a select-all checkbox in the header. Give each Table.Row a stable id, and read or control the selection with React Aria's selectedKeys and onSelectionChange props. Selected rows are highlighted by default; pass highlightSelectedRow={false} on Table.Row to turn that off.
Use TableCard.Header inside TableCard.Root. It accepts title, description, badge, and contentTrailing. A string or number passed to badge is wrapped automatically in a gray modern badge (for example badge="100 users"), while a React element is rendered as-is, and contentTrailing is the slot for a search input, filter, or overflow menu.
Table.Head takes a label string for the column title and a tooltip string that renders a help-circle icon next to it with your text on hover or focus. It also passes through React Aria's column props such as id and isRowHeader, and you can still supply custom children instead of label when a column needs richer markup.
Table already wraps its markup in an overflow-x-auto container, so wide tables scroll horizontally instead of breaking the page. To drop non-essential columns, apply the same responsive utilities to the matching Table.Head and Table.Cell. To hide a column on narrow viewports only, use className="hidden md:table-cell". The examples on this page instead use className="md:hidden xl:table-cell" on the email column, which shows it on the narrowest layout, hides it between the md and xl breakpoints where the table is most cramped, and brings it back on wide screens.











