A flexible and customizable pagination component for React applications.
npm install react-pagination-kit-proimport { Pagination } from "react-pagination-kit-pro";
// Basic usage
<Pagination
data={items}
renderItem={(item) => <div>{item.name}</div>}
/>
// With custom configuration
<Pagination
data={items}
renderItem={(item) => <div>{item.name}</div>}
pageSize={10}
className="custom-pagination"
buttonClassName="custom-button"
/>data:T[]- The array of items to paginaterenderItem: (item: T) => ReactElement - A function that renders each item
pageSize:number- Number of items per page (default: 10)as:ElementType- The HTML element to use as the wrapper (default: 'div')
className:string- Class name for the pagination container (default: 'pagination')wrapperClassName:string- Class name for the items wrapper (default: 'pagination-wrapper')buttonClassName:string- Class name for all pagination buttons (default: 'button')activeButtonClassName:string- Class name for the active page button (default: 'active')nextButtonClassName:string- Class name for the next button (default: 'next')previousButtonClassName:string- Class name for the previous button (default: 'previous')navigationClassName:string- Class name for the navigation container (default: 'navigation')
buttonProps:Omit<ButtonHTMLAttributes<HTMLButtonElement>, "className">- Additional props to pass to all buttonsnextButtonLabel:string- Text for the next button (default: 'Next')previousButtonLabel:string- Text for the previous button (default: 'Previous')
The component extends HTMLAttributes<HTMLDivElement>, so you can pass any valid HTML attributes to the container div.
<Pagination
data={items}
renderItem={(item) => <div>{item.name}</div>}
pageSize={10}
className="my-pagination"
buttonClassName="my-button"
activeButtonClassName="my-active-button"
nextButtonLabel="→"
previousButtonLabel="←"
buttonProps={{
type: "button",
style: { padding: '8px 16px' }
}}
/>The component includes proper ARIA attributes for better accessibility:
aria-labelfor all buttonsaria-current="page"for the active page buttonaria-disabledfor disabled buttons
The component is fully typed and supports TypeScript. Import types as needed:
import type { PaginationProps } from 'react-pagination-kit-pro';To build the package:
npm run buildLicensed under the LGPL-2.1
Sanooj Hussain
Sanooj Hussain