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-accordion/rh-accordion.js';
</script>

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

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:

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-accordion/rh-accordion.js';
</script>

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

Usage

<rh-accordion>
<rh-accordion-header>
<h4>Item One</h4>
</rh-accordion-header>
<rh-accordion-panel>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</rh-accordion-panel>
<rh-accordion-header>
<h4>Item Two</h4>
</rh-accordion-header>
<rh-accordion-panel>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</rh-accordion-panel>
<rh-accordion-header>
<h4>Item Three</h4>
</rh-accordion-header>
<rh-accordion-panel>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</rh-accordion-panel>
</rh-accordion>

rh-accordion

Slots

Default Slot

Place the rh-accordion-header and rh-accordion-panel elements here.

Attributes

expanded-index

Sets and reflects the currently expanded accordion 0-based indexes. Use commas to separate multiple indexes.

<pf-accordion expanded-index="1,2">
...
</pf-accordion>
DOM Property
expandedIndex
Type
unknown
Default
unknown

large

DOM Property
large
Type
boolean
Default
false

bordered

DOM Property
bordered
Type
boolean
Default
true

color-palette

DOM Property
colorPalette
Type
ColorPalette | undefined
Default
unknown

Methods

updateAccessibility()

toggle(index: number)

Accepts a 0-based index value (integer) for the set of accordion items to expand or collapse.

expand(index: number, parentAccordion: RhAccordion)

Accepts a 0-based index value (integer) for the set of accordion items to expand. Accepts an optional parent accordion to search for headers and panels.

expandAll()

Expands all accordion items.

collapse(index: number)

Accepts a 0-based index value (integer) for the set of accordion items to collapse.

collapseAll()

Collapses all accordion items.

Events

header
Event Type:
AccordionExpandEvent

expand

when a panel expands

Event Type:
AccordionExpandEvent

collapse

when a panel collapses

Event Type:
AccordionCollapseEvent

CSS Shadow Parts

None

CSS Custom Properties

None

Design Tokens

Token Copy
--rh-box-shadow-sm
--rh-color-border-subtle-on-dark
--rh-color-border-subtle-on-light
--rh-color-surface-lightest
--rh-color-text-primary-on-light

rh-accordion-header

Accordion Header

Slots

Default Slot

We expect the light DOM of the rh-accordion-header to be a heading level tag (h1, h2, h3, h4, h5, h6)

accents

These elements will appear inline with the accordion header, between the header and the chevron (or after the chevron and header in disclosure mode).

Attributes

expanded
DOM Property
expanded
Type
boolean
Default
false

heading-text

DOM Property
headingText
Type
string | undefined
Default
unknown

heading-tag

DOM Property
headingTag
Type
string | undefined
Default
unknown

icon

DOM Property
icon
Type
string
Default
'angle-down'

Methods

None

Events

expanded
Event Type:
AccordionHeaderChangeEvent

change

when the open panels change

Event Type:
AccordionHeaderChangeEvent

CSS Shadow Parts

text

inline element containing the heading text or slotted heading content

accents

container for accents within the header

icon

caret icon

CSS Custom Properties

None

Design Tokens

Token Copy
--rh-border-width-lg
--rh-border-width-sm
--rh-color-accent-brand-on-dark
--rh-color-accent-brand-on-light
--rh-color-border-subtle-on-dark
--rh-color-border-subtle-on-light
--rh-color-surface-darkest
--rh-color-surface-lightest
--rh-color-text-primary-on-dark
--rh-color-text-primary-on-light
--rh-font-family-body-text
--rh-font-size-body-text-lg
--rh-font-size-body-text-md
--rh-font-weight-heading-medium
--rh-space-lg
--rh-space-xl

rh-accordion-panel

Accordion Panel

Slots

Default Slot

The content of the accordion panel can be any basic markup including but not limited to div, paragraph, or nested accordion panels.

Attributes

expanded
DOM Property
expanded
Type
boolean
Default
false

color-palette

DOM Property
colorPalette
Type
ColorPalette | undefined
Default
unknown

Methods

None

Events

None

CSS Shadow Parts

None

CSS Custom Properties

None

Design Tokens

Token Copy
--rh-border-width-lg
--rh-color-accent-base-on-light
--rh-color-accent-brand-on-dark
--rh-color-accent-brand-on-light
--rh-color-border-subtle-on-dark
--rh-color-border-subtle-on-light
--rh-color-surface-darkest
--rh-color-surface-lightest
--rh-color-text-primary-on-dark
--rh-font-size-body-text-md
--rh-font-size-body-text-sm
--rh-space-lg
--rh-space-md
--rh-space-xl
© 2021-2024 Red Hat, Inc. Deploys by Netlify