Table
A responsive table component.
Looking for advanced features like sorting, filtering, and pagination? Check out the Data Table component.
Examples
Basic Table
Standard table with rows and columns.
| Name | Title | Role | |
|---|---|---|---|
| Lindsay Walton | Front-end Developer | lindsay.walton@example.com | Member |
| Courtney Henry | Designer | courtney.henry@example.com | Admin |
blade
<x-plume::table class="w-full">
<x-plume::table.thead>
<x-plume::table.tr>
<x-plume::table.th>Name</x-plume::table.th>
<x-plume::table.th>Title</x-plume::table.th>
<x-plume::table.th>Email</x-plume::table.th>
<x-plume::table.th>Role</x-plume::table.th>
</x-plume::table.tr>
</x-plume::table.thead>
<x-plume::table.tbody>
<x-plume::table.tr>
<x-plume::table.td class="font-medium">Lindsay
Walton</x-plume::table.td>
<x-plume::table.td>Front-end Developer</x-plume::table.td>
<x-plume::table.td>lindsay.walton@example.com</x-plume::table.td>
<x-plume::table.td>Member</x-plume::table.td>
</x-plume::table.tr>
...
</x-plume::table.tbody>
</x-plume::table>
Striped Rows
Alternate row background colors for better readability.
| Project | Status |
|---|---|
| Plume UI | Active |
| Workbench | Active |
| Library | Active |
blade
<x-plume::table striped hoverable class="w-full">
<x-plume::table.thead>
<x-plume::table.tr>
<x-plume::table.th>Project</x-plume::table.th>
<x-plume::table.th>Status</x-plume::table.th>
</x-plume::table.tr>
</x-plume::table.thead>
<x-plume::table.tbody>
@foreach (['Plume UI', 'Workbench', 'Library'] as $proj)
<x-plume::table.tr>
<x-plume::table.td>{{ $proj }}</x-plume::table.td>
<x-plume::table.td>Active</x-plume::table.td>
</x-plume::table.tr>
@endforeach
</x-plume::table.tbody>
</x-plume::table>
Sticky Header & Alignment
Table with fixed header and aligned cells.
| Item | Qty | Price |
|---|---|---|
| Product 1 | 2 | $29.00 |
| Product 2 | 10 | $26.00 |
| Product 3 | 9 | $95.00 |
| Product 4 | 7 | $27.00 |
| Product 5 | 8 | $98.00 |
| Product 6 | 10 | $59.00 |
| Product 7 | 9 | $59.00 |
| Product 8 | 2 | $69.00 |
| Product 9 | 9 | $34.00 |
| Product 10 | 5 | $12.00 |
blade
<x-plume::table sticky-header class="w-full h-48">
<x-plume::table.thead sticky>
<x-plume::table.tr>
<x-plume::table.th>Item</x-plume::table.th>
<x-plume::table.th align="center">Qty</x-plume::table.th>
<x-plume::table.th align="right">Price</x-plume::table.th>
</x-plume::table.tr>
</x-plume::table.thead>
<x-plume::table.tbody>
@foreach (range(1, 10) as $i)
<x-plume::table.tr>
<x-plume::table.td>Product
{{ $i }}</x-plume::table.td>
<x-plume::table.td align="center">{{ rand(1, 10) }}</x-plume::table.td>
<x-plume::table.td align="right">${{ rand(10, 100) }}.00</x-plume::table.td>
</x-plume::table.tr>
@endforeach
</x-plume::table.tbody>
</x-plume::table>
| Prop | Type | Default | Description |
|---|---|---|---|
| striped | bool | false | Whether to alternate row colors. |
| hoverable | bool | false | Whether to highlight rows on hover. |
| stickyHeader | bool | false | Whether to keep the header visible when scrolling. |
| density | string | 'default' | Spacing density: 'compact', 'default', 'loose'. |
Usage
blade
<x-plume::table striped hoverable>
<x-plume::table.thead>
<x-plume::table.tr>
<x-plume::table.th>Header</x-plume::table.th>
</x-plume::table.tr>
</x-plume::table.thead>
<x-plume::table.tbody>
<x-plume::table.tr>
<x-plume::table.td>John Doe</x-plume::table.td>
</x-plume::table.tr>
</x-plume::table.tbody>
</x-plume::table>