Skip to Content

Pagination

Display active page and navigate between multiple pages. Supports customizable controls and styling.

Import

import { Pagination } from '@tidbcloud/uikit'

Basic Usage

import { Pagination } from '@tidbcloud/uikit' function Demo() { return <Pagination total={10} /> }

Controlled

import { useState } from 'react' import { Pagination } from '@tidbcloud/uikit' function Demo() { const [activePage, setPage] = useState(1) return <Pagination total={10} value={activePage} onChange={setPage} /> }

With Chunked Content

import { useState } from 'react' import { Pagination, Text } from '@tidbcloud/uikit' const data = [ /* array of items */ ] const itemsPerPage = 5 function Demo() { const [activePage, setPage] = useState(1) const totalPages = Math.ceil(data.length / itemsPerPage) const items = data .slice((activePage - 1) * itemsPerPage, activePage * itemsPerPage) .map((item) => <Text key={item.id}>{item.name}</Text>) return ( <> {items} <Pagination total={totalPages} value={activePage} onChange={setPage} /> </> ) }

Siblings and Boundaries

import { Pagination } from '@tidbcloud/uikit' function Demo() { return ( <> {/* Show 2 pages on each side of active */} <Pagination total={20} siblings={2} defaultValue={10} /> {/* Show 3 pages at start and end */} <Pagination total={20} boundaries={3} defaultValue={10} /> </> ) }

With Edge Controls

import { Pagination } from '@tidbcloud/uikit' function Demo() { return <Pagination total={10} withEdges /> }

Compound Components

import { Pagination, Group } from '@tidbcloud/uikit' function Demo() { return ( <Pagination.Root total={10}> <Group gap={5}> <Pagination.First /> <Pagination.Previous /> <Pagination.Items /> <Pagination.Next /> <Pagination.Last /> </Group> </Pagination.Root> ) }

Key Props

PropTypeDescription
totalnumberTotal number of pages (required)
valuenumberControlled active page
onChange(page: number) => voidCalled when page changes
defaultValuenumberDefault active page
siblingsnumberPages shown on each side of active
boundariesnumberPages shown at start/end
withEdgesbooleanShow first/last controls
withControlsbooleanShow next/previous controls
withPagesbooleanShow page numbers
colorMantineColorActive page color
sizeMantineSizeControls size
radiusMantineRadiusBorder radius
disabledbooleanDisable all controls
Last updated on