![Svelte Data Table Screenshot](https://private-user-images.githubusercontent.com/92698/348546899-fc527332-882b-463a-b070-d4714b32ec47.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MTUzMTgsIm5iZiI6MTczOTUxNTAxOCwicGF0aCI6Ii85MjY5OC8zNDg1NDY4OTktZmM1MjczMzItODgyYi00NjNhLWIwNzAtZDQ3MTRiMzJlYzQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDA2MzY1OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU3NDRiZWE1YWM0ZTlmNDQwODY3YmU2ZTU0ZDJmNGQ0Y2ViOTI1MmQzNGE2NDVjYmZiM2YyM2I4ZDc1YzMwMjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.f03p7zyamrL1Y_xfBcR9nYGzzRMdpNCH4dhSkEprJW8)
- No dependencies
- Blazing fast thanks to Svelte 5 and fine-grained reactivity
- Fully typed with TypeScript
- Comprehensive unit tests
- Supports SvelteKit and SSR
- Works great with shadcn data table
npm install @careswitch/svelte-data-table
Requires Svelte 5 peer dependency
<script lang="ts">
import { DataTable } from '@careswitch/svelte-data-table';
const table = new DataTable({
data: [
{ id: 1, name: 'John Doe', status: 'active' },
{ id: 2, name: 'Jane Doe', status: 'inactive' }
],
columns: [
{ id: 'id', key: 'id', name: 'ID' },
{ id: 'name', key: 'name', name: 'Name' },
{ id: 'status', key: 'status', name: 'Status' }
]
});
</script>
<table>
<thead>
<tr>
{#each table.columns as column (column.id)}
<th>{column.name}</th>
{/each}
</tr>
</thead>
<tbody>
{#each table.rows as row (row.id)}
<tr>
{#each table.columns as column (column.id)}
<td>{row[column.key]}</td>
{/each}
</tr>
{/each}
</tbody>
</table>
Refer to the demo website +page.svelte and unit tests for more comprehensive examples.