Pagination
Pagination with page navigation, next and previous links.
Loading preview…
1<script lang="ts">
2 import * as Pagination from './index.js';
3</script>
4
5<Pagination.Root count={100} perPage={10} page={2}>
6 {#snippet children({ pages, currentPage })}
7 <Pagination.Content>
8 <Pagination.Item>
9 <Pagination.Previous />
10 </Pagination.Item>
11 {#each pages as page (page.key)}
12 {#if page.type === 'ellipsis'}
13 <Pagination.Item>
14 <Pagination.Ellipsis />
15 </Pagination.Item>
16 {:else}
17 <Pagination.Item>
18 <Pagination.Link {page} isActive={currentPage === page.value}>
19 {page.value}
20 </Pagination.Link>
21 </Pagination.Item>
22 {/if}
23 {/each}
24 <Pagination.Item>
25 <Pagination.Next />
26 </Pagination.Item>
27 </Pagination.Content>
28 {/snippet}
29</Pagination.Root>
30Installation
1. Install dependencies
2. Copy these files into your project
- ~/components/pagination/index.ts
- ~/components/pagination/pagination.svelte
- ~/components/pagination/pagination-content.svelte
- ~/components/pagination/pagination-item.svelte
- ~/components/pagination/pagination-link.svelte
- ~/components/pagination/pagination-previous.svelte
- ~/components/pagination/pagination-next.svelte
- ~/components/pagination/pagination-prev-button.svelte
- ~/components/pagination/pagination-next-button.svelte
- ~/components/pagination/pagination-ellipsis.svelte
Usage
Use pagination for multi-page lists. Bind page on Root and render pages from the children snippet
(pages, currentPage). Prefer Previous / Next (legacy PrevButton / NextButton still work).
1<script lang="ts">
2 import * as Pagination from '~/components/pagination';
3</script>
4
5<Pagination.Root count={100} perPage={10}>
6 {#snippet children({ pages, currentPage })}
7 <Pagination.Content>
8 <Pagination.Item>
9 <Pagination.Previous />
10 </Pagination.Item>
11 {#each pages as page (page.key)}
12 {#if page.type === 'ellipsis'}
13 <Pagination.Item>
14 <Pagination.Ellipsis />
15 </Pagination.Item>
16 {:else}
17 <Pagination.Item>
18 <Pagination.Link {page} isActive={currentPage === page.value}>
19 {page.value}
20 </Pagination.Link>
21 </Pagination.Item>
22 {/if}
23 {/each}
24 <Pagination.Item>
25 <Pagination.Next />
26 </Pagination.Item>
27 </Pagination.Content>
28 {/snippet}
29</Pagination.Root>