Skip to main content

Components

Pagination

Pagination is a list of buttons used to navigate between different pages of content, such as search results or tables.

aria-label
Description

Sets the screen reader label for the Pagination area

Type
string
Default
Sidenavigering
asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior.

Type
boolean
Default
false
NameTypeDefaultDescription
aria-labelstringSidenavigering

Sets the screen reader label for the Pagination area

asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior.

PaginationItem

asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior.

Type
boolean
Default
false
NameTypeDefaultDescription
asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior.

PaginationList

asChild
Description

Change the default rendered element for the one passed as a child, merging their props and behavior.

Type
boolean
Default
false
NameTypeDefaultDescription
asChildbooleanfalse

Change the default rendered element for the one passed as a child, merging their props and behavior.

Usage

Pagination is a stateless component, and you must control which pages are displayed.

Use usePagination for pagination logic together with the single-part components. Read more about usePagination.

Examples

Default

The example shows `Pagination' with buttons that are not linked to any action. When you press, you will not navigate to another page.

Below you see usePagination used with Pagination to create pagination with links.

You use asChild to change Pagination.Button to <a>.

Mobile

There is no built-in mobile support in Pagination, but you can show fewer pages and remove text for the previous/next buttons on mobile devices.

HTML

You use the class name ds-pagination on a <nav> element.

Then you use a <ul> with <li> that has <button> or <a> with class name ds-button as a child.

If you add an empty <li> it will be displayed as an ellipsis (\2026).

The first and last <li> children will get an arrow icon based on whether it is the first or last <li>.

Note that you must add data-variant to <button> or <a> to get the correct style.

Each button should also have a descriptive aria-label for screen readers.

CSS variables and data attributes

CSS Variables
NameValue
--dsc-pagination-gapvar(--ds-size-2)
--dsc-pagination-icon-sizevar(--ds-size-6)
--dsc-pagination-icon-urlurl("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24'%3E%3Cpath d='M9.47 5.97a.75.75 0 0 1 1.06 0l5.5 5.5a.75.75 0 0 1 0 1.06l-5.5 5.5a.75.75 0 1 1-1.06-1.06L14.44 12 9.47 7.03a.75.75 0 0 1 0-1.06'/%3E%3C/svg%3E")

No relevant data attributes found.

Edit this page on github.com (opens in a new tab)