docs/data/material/components/alert/alert.md
{{"component": "@mui/internal-core-docs/ComponentLinkHeader"}}
Alerts give users brief and potentially time-sensitive information in an unobtrusive manner.
The Material UI Alert component includes several props for quickly customizing its styles to provide immediate visual cues about its contents.
{{"demo": "SimpleAlert.js"}}
:::info This component is no longer documented in the Material Design guidelines, but Material UI will continue to support it. :::
A key trait of the alert pattern is that it should not interrupt the user's experience of the app. Alerts should not be confused with alert dialogs (ARIA), which are intended to interrupt the user to obtain a response. Use the Material UI Dialog component (see the alert dialog example) if you need this behavior.
import Alert from '@mui/material/Alert';
The Alert component wraps around its content, and stretches to fill its enclosing container.
The severity prop accepts four values representing different states—success (the default), info, warning, and error–with corresponding icon and color combinations for each:
{{"demo": "BasicAlerts.js"}}
The Alert component comes with two alternative style options—filled and outlined—which you can set using the variant prop.
{{"demo": "FilledAlerts.js"}}
{{"demo": "OutlinedAlerts.js"}}
:::warning
When using an outlined Alert with the Snackbar component, background content will be visible and bleed through the Alert by default.
You can prevent this by adding bgcolor: 'background.paper' to the sx prop on the Alert component:
<Alert sx={{ bgcolor: 'background.paper' }} />
Check out the Snackbar—customization doc for an example of how to use these two components together. :::
Use the color prop to override the default color for the specified severity—for instance, to apply warning colors to a success Alert:
{{"demo": "ColorAlerts.js"}}
Add an action to your Alert with the action prop.
This lets you insert any element—an HTML tag, an SVG icon, or a React component such as a Material UI Button—after the Alert's message, justified to the right.
If you provide an onClose callback to the Alert without setting the action prop, the component will display a close icon (✕) by default.
{{"demo": "ActionAlerts.js"}}
Use the icon prop to override an Alert's icon.
As with the action prop, your icon can be an HTML element, an SVG icon, or a React component.
Set this prop to false to remove the icon altogether.
If you need to override all instances of an icon for a given severity, you can use the iconMapping prop instead.
You can define this prop globally by customizing your app's theme. See Theme components—Default props for details.
{{"demo": "IconAlerts.js"}}
To add a title to an Alert, import the Alert Title component:
import AlertTitle from '@mui/material/AlertTitle';
You can nest this component above the message in your Alert for a neatly styled and properly aligned title, as shown below:
{{"demo": "DescriptionAlerts.js"}}
You can use Transition components like Collapse to add motion to an Alert's entrance and exit.
{{"demo": "TransitionAlerts.js"}}
Here are some factors to consider to ensure that your Alert is accessible:
tabindex of 0 so it can be reached by keyboard-only users.role="alert", which is the same as using aria-live="assertive" and aria-atomic="true". This assumes the message requires the user's immediate attention. Less urgent messages should use a less aggressive method, such as overriding the default role with a role="status". Check this alert role page for more information.The Alert component is composed of a root Paper component (which renders as a <div>) that houses an icon, a message, and an optional action:
<div class="MuiPaper-root MuiAlert-root" role="alert">
<div class="MuiAlert-icon">
<!-- svg icon here -->
</div>
<div class="MuiAlert-message">This is how an Alert renders in the DOM.</div>
<div class="MuiAlert-action">
<!-- optional action element here -->
</div>
</div>