Pagination
Pagination with page navigation, next, and previous links.
use leptos::prelude::*; use singlestage::*; #[component] pub fn PaginationExample() -> impl IntoView { view! { <Pagination> <PaginationContent> <PaginationItem> <PaginationPrevious href="#" /> </PaginationItem> <PaginationItem> <PaginationLink href="#">"1"</PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#" active=true> "2" </PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#">"3"</PaginationLink> </PaginationItem> <PaginationItem> <PaginationEllipsis /> </PaginationItem> <PaginationItem> <PaginationNext href="#" /> </PaginationItem> </PaginationContent> </Pagination> } }
Simple
A simple pagination with only page numbers.
use leptos::prelude::*; use singlestage::*; #[component] pub fn PaginationSimpleExample() -> impl IntoView { view! { <Pagination> <PaginationContent> <PaginationItem> <PaginationLink href="#">"1"</PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#" active=true> "2" </PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#">"3"</PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#">"4"</PaginationLink> </PaginationItem> <PaginationItem> <PaginationLink href="#">"5"</PaginationLink> </PaginationItem> </PaginationContent> </Pagination> } }
Icons only
You can also use just the previous and next buttons without page numbers. This is useful for data tables with a rows per page selector.
use leptos::prelude::*; use singlestage::*; #[component] pub fn PaginationIconsOnlyExample() -> impl IntoView { view! { <div class="flex items-center justify-between gap-4"> <Field orientation="horizontal" class="w-fit"> <Label>"Rows per page"</Label> <Select class="w-20" value="25"> <SelectOption value="10">"10"</SelectOption> <SelectOption value="25">"25"</SelectOption> <SelectOption value="50">"50"</SelectOption> <SelectOption value="100">"100"</SelectOption> </Select> </Field> <Pagination class="mx-0 w-auto"> <PaginationContent> <PaginationItem> <PaginationPrevious href="#" /> </PaginationItem> <PaginationItem> <PaginationNext href="#" /> </PaginationItem> </PaginationContent> </Pagination> </div> } }
Anatomy
Import all parts and piece them together.
use leptos::prelude::*; use singlestage::*; #[component] pub fn PaginationAnatomy() -> impl IntoView { view! { <Pagination> <PaginationContent> <PaginationItem> <PaginationPrevious /> <PaginationLink /> <PaginationEllipsis /> <PaginationNext /> </PaginationItem> </PaginationContent> </Pagination> } }
API Reference
PaginationLink
A pagination link.
| Name | Type | Default | Description |
|---|---|---|---|
| active | bool | false | Toggle whether or not this button should render with active styling. |