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

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

Usage

<rh-dialog trigger="standard-trigger">
<h2 slot="header">Leave page</h2>
<p>If you leave the page, any unsaved information will be lost.</p>
<rh-button slot="footer">Leave</rh-button>
<rh-button slot="footer" variant="tertiary">Cancel</rh-button>
</rh-dialog>
<rh-button id="standard-trigger">Open modal dialog</rh-button>

rh-dialog

Slots

Default Slot

The default slot can contain any type of content. When the header is not present this unnamed slot appear at the top of the dialog window (to the left of the close button). Otherwise it will appear beneath the header.

header

The header is an optional slot that appears at the top of the dialog window. It should be a header tag (h2-h6).

footer

Optional footer content. Good place to put action buttons.

Attributes

variant

The variant controls the width of the dialog. There are three options: small, medium and large. The default is large.

DOM Property
variant
Type
'small' | 'medium' | 'large' | undefined
Default
unknown

position

position="top" aligns the dialog with the top of the page

DOM Property
position
Type
'top' | undefined
Default
unknown

open

DOM Property
open
Type
boolean
Default
false

trigger

Optional ID of the trigger element

DOM Property
trigger
Type
string | undefined
Default
unknown

type

DOM Property
type
Type
'video' | undefined
Default
unknown

Methods

setTrigger(element: HTMLElement)

toggle()

Manually toggles the dialog.

dialog.toggle();

show()

Manually opens the dialog.

dialog.show();

showModal()

close(returnValue: string)

Manually closes the dialog.

dialog.close();

Events

open

Fires when a user clicks on the trigger or manually opens a dialog.

Event Type:
DialogOpenEvent

close

Fires when either a user clicks on either the close button or the overlay or manually closes a dialog.

Event Type:
DialogCloseEvent

cancel

Event Type:
DialogCancelEvent

CSS Shadow Parts

overlay

The dialog overlay which lies under the dialog and above the page body

dialog

The dialog element

content

The container for the dialog content

header

The container for the optional dialog header

description

The container for the optional dialog description in the header

close-button

The dialog's close button

footer

Actions footer container

CSS Custom Properties

CSS Property Description Default
--rh-dialog-video-aspect-ratio
--rh-dialog-close-button-color

Sets the dialog close button color.

var(--rh-color-icon-secondary-on-dark, #ffffff)

Design Tokens

Token Copy
--rh-border-radius-default
--rh-color-gray-90-rgb
--rh-color-icon-secondary-on-dark
--rh-color-icon-secondary-on-light
--rh-color-icon-subtle
--rh-color-surface-lightest
--rh-color-text-primary-on-light
--rh-font-size-heading-sm
--rh-font-weight-body-text-regular
--rh-opacity-60
--rh-space-2xl
--rh-space-3xl
--rh-space-lg
--rh-space-md
--rh-space-sm
--rh-space-xl
© 2021-2024 Red Hat, Inc. Deploys by Netlify