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-button/rh-button.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-button/rh-button.js';
</script>
Note that Modules may be placed in the <head>
: since they are deferred by default,
they will not block rendering.
Usage
<rh-button>Primary</rh-button>
<script type="module">
import '@rhds/elements/rh-button/rh-button.js';
</script>
rh-button
Slots
-
icon
-
Contains the button's icon or state indicator, e.g. a spinner.
- Default Slot
-
Contains button text
Attributes
disabled
-
Disables the button
- DOM Property
disabled
- Type
-
boolean
- Default
-
false
type
-
- DOM Property
type
- Type
-
'button' | 'submit' | 'reset' | undefined
- Default
-
unknown
label
-
Accessible name for the button, use when the button does not have slotted text
- DOM Property
label
- Type
-
string | undefined
- Default
-
unknown
value
-
Form value for the button
- DOM Property
value
- Type
-
string | undefined
- Default
-
unknown
name
-
Form name for the button
- DOM Property
name
- Type
-
string | undefined
- Default
-
unknown
icon
-
Shorthand for the
icon
slot, the value is icon name- DOM Property
icon
- Type
-
string | undefined
- Default
-
unknown
variant
-
Changes the style of the button.
- Primary: Used for the most important call to action on a page. Try to limit primary buttons to one per page.
- Secondary: Use secondary buttons for general actions on a page, that don’t require as much emphasis as primary button actions. For example, you can use secondary buttons where there are multiple actions, like in toolbars or data lists.
- Tertiary: Tertiary buttons are flexible and can be used as needed.
- DOM Property
variant
- Type
-
'primary' | 'secondary' | 'tertiary' | 'close' | 'play'
- Default
-
'primary'
danger
-
Use danger buttons for actions a user can take that are potentially destructive or difficult/impossible to undo, like deleting or removing user data.
- DOM Property
danger
- Type
-
boolean
- Default
-
false
Methods
None
Events
None
CSS Shadow Parts
button
-
Internal button element
icon
-
Container for the icon slot
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