npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-responsive-pagination

v2.9.0

Published

React component for responsive pagination

Downloads

30,308

Readme

React Responsive Pagination

npm version minzipped size GitHub license Test Release semantic-release

An accessible responsive React pagination component which intelligently renders to the available width - for React 16, 17 or 18

✅ Fully accessible with aria tags for screen readers
✅ Ready styled themes (or bring your own css)
✅ Bootstrap 4 & 5 support built-in
✅ Built for tree-shaking = minimum impact on the bundle

⚡️ LIVE DEMO - try it out for yourself! ⚡️

⭐️ What's new: August 2024 - SSR support

📕 Visit https://react-responsive-pagination.elantha.com to get started 🚀

v1 user? See the v1 migration guide to start using v2

⏳ Quick Start

npm install react-responsive-pagination
import React, { useState } from 'react';
import ResponsivePagination from 'react-responsive-pagination';
import 'react-responsive-pagination/themes/classic.css';
// 👆 classic theme, see below for other theme / css options

function MyApp() {
  const [currentPage, setCurrentPage] = useState(8);
  const totalPages = 20;

  return (
    <ResponsivePagination
      current={currentPage}
      total={totalPages}
      onPageChange={setCurrentPage}
    />
  );
}

Three ways to style:

  1. 🎨 Custom styling

    Custom styles? No problem - see the Custom Styles Guide

  2. 🖼️ Ready-to-go themes (NEW!)

    Just import one of the css themes into your project (as shown in the quickstart example above)

    import 'react-responsive-pagination/themes/classic.css';

    | Theme | Example | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | classic.css | | | bootstrap.css | Bootstrap 5 styled pagination (without installing Bootstrap)See additional bootstrap options | | minimal.css | |

    Please see the Themes guide for more details (including overridable theme attributes)

    Want to create your own? See the Custom Styles Guide

  3. 🥾 Bootstrap 4 and 5

    Using Bootstrap in your project? react-responsive-pagination just works with Bootstrap (no need for any additional styles). See the Bootstrap Getting Started Guide

✔︎ Requirements / Compatibility

  • React 18, 17 and 16.8 upwards
  • Modern browsers only - not suitable for IE 11

🔧 Props

Common Props

| Prop | Description | | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | currentnumber(required) | The current active page. Indexed from 1 | | totalnumber(required) | The total number of pages | | onPageChange(newPage: number) => void(required) | A callback handler which is called when the user clicks a new page, note that the active page will not change unless the current prop is updated to reflect the new page (as in the example above). The newPage value is indexed from 1 | | maxWidthnumber(optional) | The maximum width (in pixels) of the pagination component. Specify a value if you want to override the automatic sizing. Note this width may be exceeded in the case where it's not possible to output a small enough component |

ClassName Props

See Overriding default classNames for more information

| Prop | Description | | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | classNamestring(optional) | Class name for the top level <ul> containerDefaults to pagination, overrides extraClassName prop (below) | | extraClassNamestring(optional) | Useful when using Bootstrap styles, extra classNames to be added to the top level <ul> container. Use this prop to override the default justify value - for example to align elements to the start of the page use: justify-content-startDefaults to justify-content-center, not applicable if className prop (above) is set | | pageItemClassNamestring(optional) | Class name for all the <li> elementsDefaults to page-item | | pageLinkClassNamestring(optional) | Class name for <a> or <span> child elements within an <li> element: <li ...><a class='page-link'>1</a></li>Defaults to page-link | | activeItemClassNamestring(optional) | Appended to <li> class name for the active element:<li class='page-item active'><a class='page-link'>1</a></li>Defaults to active | | disabledItemClassNamestring(optional) | Appended to <li> class name for non-clickable elements (disabled nav buttons and the break/ellipsis):<li class='page-item disabled'><span class='page-link'>...</span></li>Defaults to disabled | | navClassNamestring(optional) | Appended to <li> class name for nav items (« / » buttons):<li class='page-item my-nav'><span class='page-link'>«</span></li>By defaults is not output | | previousClassNamestring(optional) | Appended to <li> class name for the nav previous button («):<li class='page-item my-previous-button'><span class='page-link'>«</span></li>By defaults is not output | | nextClassNamestring(optional) | Appended to <li> class name for the nav next button (»):<li class='page-item my-next-button'><span class='page-link'>»</span></li>By defaults is not output |

Label Props

| Prop | Description | | ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | previousLabelstring \| ReactNode(optional) | The label for the previous button, defaults to «See the FAQ for further information on using React components for this prop | | nextLabelstring \| ReactNode(optional) | The label for the next button, defaults to » See the FAQ for further information on using React components for this prop | | ariaPreviousLabelstring(optional) | The accessibility ARIA label for the previous button, defaults to Previous | | ariaNextLabelstring(optional) | The accessibility ARIA label for the next button, defaults to Next |

Misc Props

| Prop | Description | | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | renderNavboolean(optional) | When set to false the nav buttons («/») will not be rendered. Defaults to true | | narrowBehaviourNarrowBehaviour(optional) | Specify that nav buttons («/») and/or the ellipsis () can be dropped for very narrow widths (useful if the component is used in narrow widths with high page numbers)Valid behaviours should be imported from react-responsive-pagination/narrowBehaviour, see exampledropEllipsis - drop the ellipsis () for narrow widthsdropNav - drop the nav («/») for narrow widthsdropFirstAndLast - drop the first and last pages for narrow widthsUse the combine helper to combine narrowBehaviours, example:narrowBehaviour={combine(dropNav, dropEllipsis)} - drop the nav initially and then further drop the ellipsis if requiredcombine should also be imported from react-responsive-pagination/narrowBehaviour see examples |

See Props Reference for the full list

ℹ About Auto Sizing

More info in the FAQ