Installation
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.
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:
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
andrh-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
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
Related elements or patterns
Feedback
To give feedback about anything on this page, contact us.
Red Hat legal and privacy links
- About Red Hat
- Jobs
- Events
- Locations
- Contact Red Hat
- Red Hat Blog
- Diversity, equity, and inclusion
- Cool Stuff Store
- Red Hat Summit