registry:component
Table
v1.0.0ga
Responsive table primitive with semantic row and cell slots.
Registry Endpoint
Open JSONhttps://registry.aavya.com/r/ui-table.json
npx shadcn@latest add https://registry.aavya.com/r/ui-table.json
Live Preview
| Name | Role | Status |
|---|---|---|
| Ava Chen | Designer | Active |
| Liam Fox | Engineer | Pending |
Usage Snippet
import Table from '@/components/ui/table.tsx'
export default function Example() {
return (
<div className="p-6">
<Table />
</div>
)
}
Source Preview
'use client'
import * as React from 'react'
import { cn } from '@/lib/utils'
function Table({ className, ...props }: React.ComponentProps<'table'>) {
return (
<div data-slot='table-container' className='relative w-full overflow-x-auto'>
<table data-slot='table' className={cn('w-full caption-bottom text-sm', className)} {...props} />
</div>
)
}
function TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {
return <thead data-slot='table-header' className={cn('[&_tr]:border-b', className)} {...props} />
}
function TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {
return <tbody data-slot='table-body' className={cn('[&_tr:last-child]:border-0', className)} {...props} />
}
function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {
return (
<tfoot
data-slot='table-footer'
className={cn('bg-muted/50 border-t font-medium [&>tr]:last:border-b-0', className)}
{...props}
/>
)
}
function TableRow({ className, ...props }: React.ComponentProps<'tr'>) {
return (
<tr
data-slot='table-row'
className={cn('hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors', className)}
{...props}
/>
)
}
function TableHead({ className, ...props }: React.ComponentProps<'th'>) {
return (
<th
data-slot='table-head'
className={cn(