Skip to content

Pagination - Elements ​

Pagination allows users to navigate through multiple pages of content by providing navigation controls with page numbers and directional arrows.

ElementsreleasedReactreleased

Accessibility ​

Usage ​

The pagination component automatically shows/hides navigation buttons based on the current page:

  • First page button (double chevron): Shown when current page is greater than 2
  • Previous page button (single chevron): Shown when current page is greater than 1
  • Next page button (single chevron): Shown when current page is less than total pages

On mobile devices, the page numbers are hidden and replaced with a "Page X" label for a cleaner interface.

html
<w-pagination base-url="#/search?page=" pages="5" current-page="1"></w-pagination>

Examples ​

Single-page app behavior ​

By default the pagination component uses link which trigger a full page navigation.

If you want to override this in your app and handle things like scroll and focus management on your own you can add an event listener to the pagination component and prevent the default navigation.

html
<w-pagination base-url="/search?page=" pages="10" current-page="5"></w-pagination>

<script type="module">
  const pagination = document.querySelector('w-pagination');

  pagination.addEventListener('page-click', (event) => {
    event.preventDefault();
    // event.detail = { clickedPage: string }
    console.log('Do something with the clicked page after preventing default navigation:', event.detail.clickedPage);
  });
</script>

Styling API ​

<w-pagination> API ​

Unless otherwise noted all properties are HTML attributes (as opposed to JavaScript object properties).

Properties ​

NameTypeDefaultSummary
base-urlstring-The base URL used to construct page links, for example /search?page=.
current-pagenumber1The currently active page number.
pagesnumber-The total number of pages.
visible-pagesnumber7The maximum number of page numbers visible.

Property Details ​

base-url ​

The base URL used to construct page links, for example /search?page=.

The page number is appended to this URL.

  • Type: string
  • Default: -

current-page ​

The currently active page number.

  • Type: number
  • Default: 1

pages ​

The total number of pages.

  • Type: number
  • Default: -

visible-pages ​

The maximum number of page numbers visible.

  • Type: number
  • Default: 7

Events ​

page-click ​

Triggered when a link in the pagination is clicked. Contains the page number in string form.

  • Type: CustomEvent

Questions? ​

Feel free to ask any questions on usage in the Warp DS Slack channel: #warp-design-system