Alert examples
Alert variants
PatternFly supports several alert variants for different scenarios. Each variant has an associated status icon, background, and alert title coded to communicate the severity of an alert. Use the variant
property to apply the following styling options. If no variant
is specified, then the variant will be set to "custom".
Variant | Description |
---|---|
Custom | Use for generic messages that should have a custom color set by the associated CSS variable. Should be used when the message has no associated severity. |
Info | Use for general informational messages |
Success | Use to indicate that a task or process has been completed successfully |
Warning | Use to indicate that a non-critical error has occurred |
Danger | Use to indicate that a critical or blocking error has occurred |
Custom alert:Custom alert title
Info alert:Info alert title
Success alert:Success alert title
Warning alert:Warning alert title
Danger alert:Danger alert title
Alert variations
PatternFly supports several properties and variations that can be used to add extra content to an alert.
As demonstrated in the 1st variation below, use the
actionLinks
property to add one or more<AlertActionLink>
components that place links beneath the alert message. You must pass inhref
andcomponent="a"
properties to have an<AlertActionLink>
act as a proper link, rather than as a button.As demonstrated in the 2nd variation below, use a native HTML
<a>
element to add links within an alert message.As demonstrated in the 3rd variation below, use the
actionClose
property to add an<AlertActionCloseButton>
component, which can be used to manage and customize alert dismissals.As demonstrated in the 4th and 5th variations below, use the
component
property to set the element for an alert title.- If there is not a description passed via
children
prop, then thecomponent
prop should be set to a non-heading element such as aspan
ordiv
. - If there is a description passed via
children
prop, then thecomponent
prop should be a heading element. Headings should be ordered by their level and heading levels should not be skipped. For example, a heading of anh2
level should not be followed directly by anh4
.
- If there is not a description passed via
Success alert:Success alert title
Success alert description. This should tell the user more information about the alert.
Success alert:Success alert title
Success alert description. This should tell the user more information about the alert. This is a link.
Success alert:Success alert title
Short alert description.
Success alert:h6 Success alert title
Short alert description.
Alert timeout
Use the timeout
property to automatically dismiss an alert after a period of time. If set to true
, the timeout
will be 8000 milliseconds. Provide a specific value to dismiss the alert after a different number of milliseconds.
Expandable alerts
An alert can contain additional, hidden information that is made visible when users click a caret icon. This information can be expanded and collapsed each time the icon is clicked.
It is not recommended to use an expandable alert with a timeout
in a toast alert group because the alert could timeout before users have time to interact with and view the entire alert.
See the toast alert considerations section of the alert accessibility documentation to understand the accessibility risks associated with using toast alerts.
Truncated alerts
Use the truncateTitle
property to shorten a long title
. Set truncateTitle
equal to a number (passed in as {n}
) to reduce the number of lines of text in the alert's title
. Users may hover over or tab to a truncated title
to see the full message in a tooltip.
Info alert: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pellentesque neque cursus enim fringilla tincidunt. Proin lobortis aliquam dictum. Nam vel ullamcorper nulla, nec blandit dolor. Vivamus pellentesque neque justo, nec accumsan nulla rhoncus id. Suspendisse mollis, tortor quis faucibus volutpat, sem leo fringilla turpis, ac lacinia augue metus in nulla. Cras vestibulum lacinia orci. Pellentesque sodales consequat interdum. Sed porttitor tincidunt metus nec iaculis. Pellentesque non commodo justo. Morbi feugiat rhoncus neque, vitae facilisis diam aliquam nec. Sed dapibus vitae quam at tristique. Nunc vel commodo mi. Mauris et rhoncus leo.
Warning alert: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pellentesque neque cursus enim fringilla tincidunt. Proin lobortis aliquam dictum. Nam vel ullamcorper nulla, nec blandit dolor. Vivamus pellentesque neque justo, nec accumsan nulla rhoncus id. Suspendisse mollis, tortor quis faucibus volutpat, sem leo fringilla turpis, ac lacinia augue metus in nulla. Cras vestibulum lacinia orci. Pellentesque sodales consequat interdum. Sed porttitor tincidunt metus nec iaculis. Pellentesque non commodo justo. Morbi feugiat rhoncus neque, vitae facilisis diam aliquam nec. Sed dapibus vitae quam at tristique. Nunc vel commodo mi. Mauris et rhoncus leo.
Danger alert: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur pellentesque neque cursus enim fringilla tincidunt. Proin lobortis aliquam dictum. Nam vel ullamcorper nulla, nec blandit dolor. Vivamus pellentesque neque justo, nec accumsan nulla rhoncus id. Suspendisse mollis, tortor quis faucibus volutpat, sem leo fringilla turpis, ac lacinia augue metus in nulla. Cras vestibulum lacinia orci. Pellentesque sodales consequat interdum. Sed porttitor tincidunt metus nec iaculis. Pellentesque non commodo justo. Morbi feugiat rhoncus neque, vitae facilisis diam aliquam nec. Sed dapibus vitae quam at tristique. Nunc vel commodo mi. Mauris et rhoncus leo.
Custom icons
Use the customIcon
property to replace a default alert icon with a custom icon.
Custom alert:Default alert title
Info alert:Info alert title
Success alert:Success alert title
Warning alert:Warning alert title
Danger alert:Danger alert title
Inline alerts variants
Use inline alerts to display an alert inline with content. All alert variants may use the isInline
property to position alerts in content-heavy areas, such as within forms, wizards, or drawers.
Custom alert:Custom inline alert title
Info alert:Info inline alert title
Success alert:Success inline alert title
Warning alert:Warning inline alert title
Danger alert:Danger inline alert title
Inline alert variations
All general alert variations can use the isInline
property to apply inline styling.
Success alert:Success alert title
Success alert description. This should tell the user more information about the alert.
Success alert:Success alert title
Success alert description. This should tell the user more information about the alert. This is a link.
Success alert:Success alert title
Short alert description.
Success alert:h6 Success alert title
Short alert description.
Plain inline alert variants
Use the isPlain
property to make any inline alert plain. Plain styling removes the colored background but keeps colored text and icons.
Custom alert:Custom inline alert title
Info alert:Info inline alert title
Success alert:Success inline alert title
Warning alert:Warning inline alert title
Danger alert:Danger inline alert title
Plain inline alert variations
It is not recommended to use a plain inline alert with actionClose
nor actionLinks
because these alerts are non-dismissible and should persist until the error or action related to the alert is resolved.
Success alert:Success alert title
Success alert description. This should tell the user more information about the alert.
Static live region alerts
Live region alerts allow you to expose dynamic content changes in a way that can be announced by assistive technologies.
By default, isLiveRegion
alerts are static.
Info alert:Default live region configuration
isLiveRegion
prop to automatically set ARIA attributes and CSS classes. Info alert:Customized live region
isLiveRegion
prop to specify ARIA attributes and CSS manually on the containing element. Dynamic live region alerts
Alerts that are asynchronously appended into dynamic alert groups via the isLiveRegion
property will be announced to assistive technology the moment the change happens, following the strategy used for aria-atomic
, which defaults to false. This means only changes of type "addition" will be announced.
Asynchronous live region alerts
This example shows how an alert could be triggered by an asynchronous event in the application. Note that you can customize how the alert will be announced to assistive technology. See the alert accessibility for more information.
Alert group examples
An alert group stacks and positions 2 or more alerts in a live region, either in a layer over the main content of a page or inline with the page content. Alert groups should always rank alerts by age, stacking new alerts on top of old ones as they surface.
Alert group variants
Alert groups can be one of the following variants:
Variant | Description |
---|---|
Static inline | Static inline alert groups contain alerts that appear when the page loads, and are seen within the normal page content flow. These groups should not contain alerts that will dynamically appear or update. |
Toast | Toast alert groups contain alerts that typically appear in response to an asynchronous event or user action. These groups are positioned on top of other content at the top right of the page. |
Dynamic | Dynamic alert groups contain alerts that typically appear in response to a user action, and are seen within the normal page content flow. |
Dynamic alerts that are generated after the page initially loads must be appended to either a toast or dynamic AlertGroup
, both of which must use the isLiveRegion
property. New alerts appended to a toast or dynamic group will be announced by assistive technologies the moment the change happens. For information about customizing this announcement, read the aria-atomic and aria-relevant section of the alert accessibility documentation.
Static inline alert group
All alert group variants may combine multiple alert variants For example, the following static inline alert group includes one "success" alert and one "info" alert.
Success alert:Success alert
Info alert:Info alert
Toast alert group
Toast alert groups are created by passing in the isToast
and isLiveRegion
properties.
Click the buttons in the example below to add alerts to a toast group.
Toast alert group with overflow capture
Users will see an overflow message once a predefined number of alerts are displayed. They will not see any alerts beyond the display limit, which must be explicitly set.
In the following example, an overflow message will appear when more than 4 alerts would be shown. When a 5th alert would appear, an overflow message is shown instead.
When an overflow message appears in an AlertGroup
using the isLiveRegion
property, the "view 1 more alert" text label will be announced, but the alert message will not.
Users navigating via keyboard or another assistive technology will need a way to navigate to and reveal hidden alerts before they disappear. Alternatively, there should be a place where notifications or alerts are collected to be viewed or read later.
Asynchronous alert groups
The following example shows how alerts can be triggered by an asynchronous event in the application. You can customize how an alert will be announced to assistive technology by adjusting the value of the aria-live
property. Click the "start async" alert button below and then click the buttons in the above toast examples to demonstrate how asynchronous events add alerts to a group. Click the "stop async alerts" button to halt this behavior.
See the alert accessibility tab for more information on customizing this behavior.
Dynamic alert group with overflow message
In the following example, there can be a maximum of 4 alerts shown at once.
Multiple dynamic alert groups
You may add multiple alerts to an alert group at once. Click the "add alert collection" button in the example below to add a batch of 3 toast alerts to a group.
Props
Alert
Name | Type | Default | Description |
---|---|---|---|
titlerequired | React.ReactNode | Title of the alert. | |
actionClose | React.ReactNode | Close button; use the alert action close button component. | |
actionLinks | React.ReactNode | Action links; use a single alert action link component or multiple wrapped in an array or React.Fragment. | |
children | React.ReactNode | '' | Content rendered inside the alert. |
className | string | '' | Additional classes to add to the alert. |
component | unknown | 'h4' | Sets the element to use as the alert title. Default is h4. |
customIcon | React.ReactNode | Set a custom icon to the alert. If not set the icon is set according to the variant. | |
id | string | Uniquely identifies the alert. | |
isExpandable | boolean | false | Flag indicating that the alert is expandable. |
isInline | boolean | false | Flag to indicate if the alert is inline. |
isLiveRegion | boolean | false | Flag to indicate if the alert is in a live region. |
isPlain | boolean | false | Flag to indicate if the alert is plain. |
onMouseEnter | No type info | () => {} | |
onMouseLeave | No type info | () => {} | |
onTimeout | () => void | () => {} | Function to be executed on alert timeout. Relevant when the timeout prop is set. |
ouiaId | number | string | Value to overwrite the randomly generated data-ouia-component-id. | |
ouiaSafe | boolean | true | Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. |
timeout | number | boolean | false | If set to true, the timeout is 8000 milliseconds. If a number is provided, alert will be dismissed after that amount of time in milliseconds. |
timeoutAnimation | number | 3000 | If the user hovers over the alert and `timeout` expires, this is how long to wait before finally dismissing the alert. |
toggleAriaLabel | string | `${capitalize(variant)} alert details` | Adds accessible text to the alert toggle. |
tooltipPosition | | TooltipPosition | 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end' | Position of the tooltip which is displayed if text is truncated. | |
truncateTitle | number | 0 | Truncate title to number of lines. |
variant | 'success' | 'danger' | 'warning' | 'info' | 'custom' | AlertVariant.custom | Adds alert variant styles. |
variantLabel | string | `${capitalize(variant)} alert:` | Variant label text for screen readers. |
AlertGroup
Name | Type | Default | Description |
---|---|---|---|
appendTo | HTMLElement | (() => HTMLElement) | Determine where the alert is appended to | |
aria-label | string | Adds an accessible label to the alert group. | |
children | React.ReactNode | Alerts to be rendered in the AlertGroup | |
className | string | Additional classes added to the AlertGroup | |
isLiveRegion | boolean | Turns the container into a live region so that changes to content within the AlertGroup, such as appending an Alert, are reliably announced to assistive technology. | |
isToast | boolean | Toast notifications are positioned at the top right corner of the viewport | |
onOverflowClick | () => void | Function to call if user clicks on overflow message | |
overflowMessage | string | Custom text to show for the overflow message |
AlertActionCloseButton
Name | Type | Default | Description |
---|---|---|---|
aria-label | string | '' | Accessible label for the close button |
className | string | Additional classes added to the alert action close button. | |
onClose | () => void | () => undefined as any | A callback for when the close button is clicked. |
variantLabel | string | Variant Label for the close button. |
AlertActionLink
Name | Type | Default | Description |
---|---|---|---|
children | React.ReactNode | Content rendered inside the alert action link. Interactive content such as anchor elements should not be passed in. | |
className | string | '' | Additional classes added to the alert action link. |
CSS variables
Prefixed with 'pf-v5-c-alert'
Expand or collapse column | Selector | Variable | Value |
---|
Prefixed with 'pf-v5-c-alert-group'
Expand or collapse column | Selector | Variable | Value |
---|