Installation

Red Hat CDN

CDN Prerelease

We are currently working on our CDN, which will be soon moving into beta. This will be the preferred method of installation in the near future. If you are a Red Hat associate and have questions or comments about the CDN or installation process please join us in our Red Hat Design System Google chat.

In the meantime, install this component using npm

The recommended way to load RHDS is via the Red Hat Digital Experience CDN, and using an import map.

If you have full control over the page you are using, add an import map to the <head>, pointing to the CDN, or update any existing import map. If you are not responsible for the page's <head>, request that the page owner makes the change on your behalf.

<script type="importmap">
{
"imports": {
"@rhds/elements/": "https://www.redhatstatic.com/dx/v1-alpha/@rhds/elements@1.1.0/elements/",
"@patternfly/elements/": "https://www.redhatstatic.com/dx/v1-alpha/@patternfly/elements@2.2.2/"
}
}
</script>

Once the import map is established, you can load the element with the following module, containing a bare module specifier:

<script type="module">
import '@rhds/elements/rh-pagination/rh-pagination.js';
</script>

Note that Modules may be placed in the <head>: since they are deferred by default, they will not block rendering.

Lightdom CSS

Lightdom CSS is required for this element to ensure a reduced Cumulative Layout Shift (CLS) experience before the element has fully initialized.

<link rel="stylesheet" href="https://www.redhatstatic.com/dx/v1-alpha/@rhds/elements@1.1.0/rh-pagination/rh-pagination-lightdom.css">
NPM

Install RHDS using your team's preferred NPM package manager, e.g.

npm install @rhds/elements

Once that's been accomplished, you will need to use a bundler to resolve the bare module specifiers and optionally optimize the package for your site's particular use case and needs. Comprehensive guides to bundling are beyond the scope of this page; read more about bundlers on their websites:

Lightdom CSS

Lightdom CSS is required for this element to ensure a reduced Cumulative Layout Shift (CLS) experience before the element has fully initialized.

<link rel="stylesheet" href="/path/to/@rhds/elements/elements/rh-pagination/rh-pagination-lightdom.css">

Replace /path/to in the href attribute with the installation path to the rh-pagination directory in your project.

JSPM

Public CDNs

JSPM and other public CDNs should not be used on corporate domains. Use them for development purposes only!

Add an import map to the <head>, pointing to the CDN, or update any existing import map.

<script type="importmap">
{
"imports": {
"@rhds/elements/": "https://jspm.dev/@rhds/elements/",
"@patternfly/elements/": "https://jspm.dev/@patternfly/elements/"
}
}
</script>

Once the import map is established, you can load the element with the following module, containing a bare module specifier:

<script type="module">
import '@rhds/elements/rh-pagination/rh-pagination.js';
</script>

Note that Modules may be placed in the <head>: since they are deferred by default, they will not block rendering.

Lightdom CSS

Lightdom CSS is required for this element to ensure a reduced Cumulative Layout Shift (CLS) experience before the element has fully initialized.

<link rel="stylesheet" href="https://jspm.dev/@rhds/elements@1.1.0/elements/rh-pagination/rh-pagination-lightdom.css">

Usage

<rh-pagination>
<ol>
<li><a href="#1">1</a></li>
<li><a href="#2">2</a></li>
<li><a href="#3">3</a></li>
<li><a href="#4">4</a></li>
<li><a href="#5">5</a></li>
</ol>
</rh-pagination>

rh-pagination

Slots

Default Slot

An ordered list of links

go-to-page

"Go to page" text

out-of

"of" text

Attributes

overflow

Override overflow values set from HTML or JS. overflow should ideally be private, but because we can't do ::slotted(nav ol li), we need to reflect it to a host attribute, so that lightdom CSS can target the list items.

DOM Property
overflow
Type
'start' | 'end' | 'both' | null
Default
null

label

Accessible label for the 'nav' element

DOM Property
label
Type
string
Default
'Page navigation'

label-first

Accessible label for the 'first page' button

DOM Property
labelFirst
Type
string
Default
'first page'

label-previous

Accessible label for the 'previous page' button

DOM Property
labelPrevious
Type
string
Default
'previous page'

label-next

Accessible label for the 'next page' button

DOM Property
labelNext
Type
string
Default
'next page'

label-last

Accessible label for the 'last page' button

DOM Property
labelLast
Type
string
Default
'last page'

Methods

first()

Navigate to the first page

prev()

Navigate to the previous page

next()

Navigate to the next page

last()

Navigate to the last page

go(page: 'first' | 'prev' | 'next' | 'last' | number)

Navigate to a specific page

Events

None

CSS Shadow Parts

None

CSS Custom Properties

CSS Property Description Default
--rh-pagination-accent-color

Sets the outline color when the page input has focus.

var(--rh-color-interactive-blue, #0066cc)
--rh-pagination-background-focused

Sets the disabled stepper color.

var(--rh-color-gray-20, #c7c7c7)
--rh-pagination-stepper-color

Sets the stepper color.

var(--rh-color-icon-subtle, #707070)

Design Tokens

Token Copy
--rh-border-radius-default
--rh-color-border-interactive-on-light
--rh-color-border-subtle-on-light
--rh-color-gray-30
--rh-color-gray-40
--rh-color-gray-50
--rh-color-icon-subtle
--rh-color-interactive-blue-darker
--rh-color-interactive-blue-darkest
--rh-color-interactive-purple-darker
--rh-color-interactive-purple-darkest
--rh-color-red-40
--rh-color-red-60
--rh-color-surface-light
--rh-color-surface-lighter
--rh-color-surface-lightest
--rh-color-text-primary-on-light
--rh-font-size-body-text-lg
--rh-font-size-body-text-md
--rh-font-weight-body-text-medium
--rh-length-2xl
--rh-length-4xl
--rh-space-2xl
--rh-space-xl
--rh-space-xs
© 2021-2024 Red Hat, Inc. Deploys by Netlify