1. framework components
  2. pagination

Pagination

Client and server-side pagination controls.

IDNameEmailCountry
1Laverna KassulkeGerhard_Mante7@hotmail.comAndorra
2Mr. Sanford Schmidt-KoeppJovanny.Ryan56@hotmail.comNamibia
3Tyrel HesselMaiya.Halvorson@yahoo.comYemen
4Charlotte FritschMarlene9@gmail.comBenin
5Wilbert RitchieBridget_Bergnaum56@gmail.comLuxembourg

Page Size

Implement a custom page pageSize amount using a select element.

IDNameEmailCountry
1Laverna KassulkeGerhard_Mante7@hotmail.comAndorra
2Mr. Sanford Schmidt-KoeppJovanny.Ryan56@hotmail.comNamibia
3Tyrel HesselMaiya.Halvorson@yahoo.comYemen
4Charlotte FritschMarlene9@gmail.comBenin
5Wilbert RitchieBridget_Bergnaum56@gmail.comLuxembourg

Direction

Set the text direction ( ltr or rtl ) using the dir prop.

IDNameEmailCountry
1Laverna KassulkeGerhard_Mante7@hotmail.comAndorra
2Mr. Sanford Schmidt-KoeppJovanny.Ryan56@hotmail.comNamibia
3Tyrel HesselMaiya.Halvorson@yahoo.comYemen
4Charlotte FritschMarlene9@gmail.comBenin
5Wilbert RitchieBridget_Bergnaum56@gmail.comLuxembourg

Total Count

For server-side pagination, your data source may be truncated. Make sure to specify the total records using count .

ts
const res = {
	"results": [...],
	"pagination": {
		"page": 1,
		"limit": 10,
		"count": 500,
	}
}
html
<Pagination
	page={res.pagination.page}
	count={res.pagination.count}
	pageSize={res.pagination.limit}
>
	<!-- ... -->
</Pagination>

Anatomy

Here’s an overview of how the Pagination component is structured in code:

tsx
import { Pagination } from '@skeletonlabs/skeleton-react';

export default function Anatomy() {
	return (
		<Pagination>
			<Pagination.FirstTrigger />
			<Pagination.PrevTrigger />
			<Pagination.Item />
			<Pagination.Ellipsis />
			<Pagination.NextTrigger />
			<Pagination.LastTrigger />
		</Pagination>
	);
}

API Reference

Root

Prop Default Type
ids Partial<{ root: string; ellipsis: (index: number) => string; firstTrigger: string; prevTrigger: string; nextTrigger: string; lastTrigger: string; item: (page: number) => string; }> | undefined

The ids of the elements in the accordion. Useful for composition.

translations IntlTranslations | undefined

Specifies the localized strings that identifies the accessibility elements and their states

count number | undefined

Total number of data items

pageSize number | undefined

The controlled number of data items per page

defaultPageSize 10 number | undefined

The initial number of data items per page when rendered. Use when you don't need to control the page size of the pagination.

siblingCount 1 number | undefined

Number of pages to show beside active page

boundaryCount 1 number | undefined

Number of pages to show at the beginning and end

page number | undefined

The controlled active page

defaultPage 1 number | undefined

The initial active page when rendered. Use when you don't need to control the active page of the pagination.

onPageChange ((details: PageChangeDetails) => void) | undefined

Called when the page number is changed

onPageSizeChange ((details: PageSizeChangeDetails) => void) | undefined

Called when the page size is changed

type "button" "button" | "link" | undefined

The type of the trigger element

getPageUrl ((details: PageUrlDetails) => string) | undefined

Function to generate href attributes for pagination links. Only used when `type` is set to "link".

dir "ltr" "ltr" | "rtl" | undefined

The document's text/writing direction.

getRootNode (() => ShadowRoot | Node | Document) | undefined

A root node to correctly resolve document in custom environments. E.x.: Iframes, Electron.

element ((attributes: HTMLAttributes<"nav">) => Element) | undefined

Render the element yourself

Provider

Prop Default Type
value PaginationApi<PropTypes>

element ((attributes: HTMLAttributes<"nav">) => Element) | undefined

Render the element yourself

Context

Prop Default Type
children (pagination: PaginationApi<PropTypes>) => ReactNode

FirstTrigger

Prop Default Type
element ((attributes: HTMLAttributes<"button">) => Element) | undefined

Render the element yourself

PrevTrigger

Prop Default Type
element ((attributes: HTMLAttributes<"button">) => Element) | undefined

Render the element yourself

Item

Prop Default Type
type "page"

value number

element ((attributes: HTMLAttributes<"a">) => Element) | undefined

Render the element yourself

Ellipsis

Prop Default Type
index number

element ((attributes: HTMLAttributes<"span">) => Element) | undefined

Render the element yourself

NextTrigger

Prop Default Type
element ((attributes: HTMLAttributes<"button">) => Element) | undefined

Render the element yourself

LastTrigger

Prop Default Type
element ((attributes: HTMLAttributes<"button">) => Element) | undefined

Render the element yourself

View page on GitHub