pagination-02
Directory: paginations
Path: /src/lib/components/paginations/pagination-02.svelte
<script lang="ts">
import Button from '$lib/components/ui/button.svelte';
import { Pagination, PaginationContent, PaginationItem } from '$lib/components/ui/pagination';
import ArrowLeft from 'lucide-svelte/icons/arrow-left';
import ArrowRight from 'lucide-svelte/icons/arrow-right';
type PaginationProps = {
currentPage: number;
totalPages: number;
};
let { currentPage = 1, totalPages = 10 }: PaginationProps = $props();
</script>
<Pagination>
<PaginationContent class="w-full justify-between gap-3">
<PaginationItem>
<Button
variant="ghost"
class="group aria-disabled:pointer-events-none aria-disabled:opacity-50"
aria-disabled={currentPage === 1 ? true : undefined}
role={currentPage === 1 ? 'link' : undefined}
>
<ArrowLeft
class="-ms-1 me-2 opacity-60 transition-transform group-hover:-translate-x-0.5"
size={16}
stroke-width={2}
aria-hidden="true"
/>
Previous
</Button>
</PaginationItem>
<PaginationItem>
<Button
variant="ghost"
class="group aria-disabled:pointer-events-none aria-disabled:opacity-50"
aria-disabled={currentPage === totalPages ? true : undefined}
role={currentPage === totalPages ? 'link' : undefined}
>
Next
<ArrowRight
class="-me-1 ms-2 opacity-60 transition-transform group-hover:translate-x-0.5"
size={16}
stroke-width={2}
aria-hidden="true"
/>
</Button>
</PaginationItem>
</PaginationContent>
</Pagination>
Discover/Contribute
Explore the original Origin UI or contribute by suggesting new components and improvements.