---
title: React Alert Component
name: Alert
description: React alert component gives contextual feedback information for common user operations. The alert component is delivered with a bunch of usable and adjustable alert messages.
menu: Components
route: /components/alert
other_frameworks: alert
---

import { useState } from 'react'
import { CAlert, CAlertHeading, CAlertLink, CButton } from '@coreui/react/src/index'

import CIcon from '@coreui/icons-react'

import { cilBurn, cilCheckCircle, cilInfo, cilWarning } from '@coreui/icons'

## How to use React Alert Component.

React Alert is prepared for any length of text, as well as an optional close button. For a styling, use one of the **required** contextual `color` props (e.g., `primary`). For inline dismissal, use the [dismissing prop](#dismissing).

```jsx preview
<CAlert color="primary">
  A simple primary alert—check it out!
</CAlert>
<CAlert color="secondary">
  A simple secondary alert—check it out!
</CAlert>
<CAlert color="success">
  A simple success alert—check it out!
</CAlert>
<CAlert color="danger">
  A simple danger alert—check it out!
</CAlert>
<CAlert color="warning">
  A simple warning alert—check it out!
</CAlert>
<CAlert color="info">
  A simple info alert—check it out!
</CAlert>
<CAlert color="light">
  A simple light alert—check it out!
</CAlert>
<CAlert color="dark">
  A simple dark alert—check it out!
</CAlert>
```

<Callout color="info" title="Conveying meaning to assistive technologies">
  Using color to add meaning only provides a visual indication, which will not be conveyed to
  users of assistive technologies – such as screen readers. Ensure that information denoted by the
  color is either obvious from the content itself (e.g. the visible text), or is included through
  alternative means, such as additional text hidden with the `.visually-hidden` class.
</Callout>

### Live example

Click the button below to show an alert (hidden with inline styles to start), then dismiss (and destroy) it with the built-in close button.

export const LiveExample = () => {
  const [visible, setVisible] = useState(false)
  return (
    <>
      <CAlert color="primary" dismissible visible={visible} onClose={() => setVisible(false)}>A simple primary alert—check it out!
      </CAlert>
      <CButton color="primary" onClick={() => setVisible(true)}>Show live alert</CButton>
    </>
  )
}

<Example>
  <LiveExample />
</Example>

```jsx
const [visible, setVisible] = useState(false)
return (
  <>
    <CAlert color="primary" dismissible visible={visible} onClose={() => setVisible(false)}>
      A simple primary alert—check it out!
    </CAlert>
    <CButton color="primary" onClick={() => setVisible(true)}>
      Show live alert
    </CButton>
  </>
)
```

### Link color

Use the `<CAlertLink>` component to immediately give matching colored links inside any react alert component.

```jsx preview
<CAlert color="primary">
  A simple primary alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="secondary">
  A simple secondary alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="success">
  A simple success alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="danger">
  A simple danger alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="warning">
  A simple warning alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="info">
  A simple info alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="light">
  A simple light alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
<CAlert color="dark">
  A simple dark alert with <CAlertLink href="#">an example link</CAlertLink>. Give it a click if you like.
</CAlert>
```

### Additional content

React Alert can also incorporate supplementary components &amp; elements like heading, paragraph, and divider.

```jsx preview
<CAlert color="success">
  <CAlertHeading as="h4">Well done!</CAlertHeading>
  <p>
    Aww yeah, you successfully read this important alert message. This example text is going to run
    a bit longer so that you can see how spacing within an alert works with this kind of content.
  </p>
  <hr />
  <p className="mb-0">
    Whenever you need to, be sure to use margin utilities to keep things nice and tidy.
  </p>
</CAlert>
```

### Icons

Similarly, you can use [flexbox utilities](https//coreui.io/docs/4.0/utilities/flex") and [CoreUI Icons](https://icons.coreui.io) to create react alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles.

```jsx preview
<CAlert color="primary" className="d-flex align-items-center">
  <svg className="flex-shrink-0 me-2" width="24" height="24" viewBox="0 0 512 512">
    <rect
      width="32"
      height="176"
      x="240"
      y="176"
      fill="var(--ci-primary-color, currentColor)"
      className="ci-primary"
    ></rect>
    <rect
      width="32"
      height="32"
      x="240"
      y="384"
      fill="var(--ci-primary-color, currentColor)"
      className="ci-primary"
    ></rect>
    <path
      fill="var(--ci-primary-color, currentColor)"
      d="M274.014,16H237.986L16,445.174V496H496V445.174ZM464,464H48V452.959L256,50.826,464,452.959Z"
      className="ci-primary"
    ></path>
  </svg>
  <div>An example alert with an icon</div>
</CAlert>
```

Need more than one icon for your react alerts? Consider using [CoreUI Icons](https://icons.coreui.io).

```jsx preview
<CAlert color="primary" className="d-flex align-items-center">
  <CIcon icon={cilInfo} className="flex-shrink-0 me-2" width={24} height={24} />
  <div>An example alert with an icon</div>
</CAlert>
<CAlert color="success" className="d-flex align-items-center">
  <CIcon icon={cilCheckCircle} className="flex-shrink-0 me-2" width={24} height={24} />
  <div>An example success alert with an icon</div>
</CAlert>
<CAlert color="warning" className="d-flex align-items-center">
  <CIcon icon={cilWarning} className="flex-shrink-0 me-2" width={24} height={24} />
  <div>An example warning alert with an icon</div>
</CAlert>
<CAlert color="danger" className="d-flex align-items-center">
  <CIcon icon={cilBurn} className="flex-shrink-0 me-2" width={24} height={24} />
  <div>An example danger alert with an icon</div>
</CAlert>
```

### Solid

Use `variant="solid"` to change contextual colors to solid.

```jsx preview
<CAlert color="primary" variant="solid">A simple solid primary alert—check it out!</CAlert>
<CAlert color="secondary" variant="solid">A simple solid secondary alert—check it out!</CAlert>
<CAlert color="success" variant="solid">A simple solid success alert—check it out!</CAlert>
<CAlert color="danger" variant="solid">A simple solid danger alert—check it out!</CAlert>
<CAlert color="warning" variant="solid">A simple solid warning alert—check it out!</CAlert>
<CAlert color="info" variant="solid">A simple solid info alert—check it out!</CAlert>
<CAlert color="light" variant="solid" className="text-high-emphasis">A simple solid light alert—check it out!</CAlert>
<CAlert color="dark" variant="solid">A simple solid dark alert—check it out!</CAlert>
```

### Dismissing

React Alert component can also be easily dismissed. Just add the `dismissible` prop.

```jsx preview
<CAlert
  color="warning"
  dismissible
  onClose={() => {
    alert('👋 Well, hi there! Thanks for dismissing me.')
  }}
>
  <strong>Go right ahead</strong> and click that dimiss over there on the right.
</CAlert>
```

<Callout color="warning">
  When an alert is dismissed, the element is completely removed from the page structure. If a
  keyboard user dismisses the alert using the close button, their focus will suddenly be lost and,
  depending on the browser, reset to the start of the page/document.
</Callout>

## Customizing

### CSS variables

React alerts use local CSS variables on `.alert` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.

<ScssDocs file="_alert.scss" capture="alert-css-vars"/>

#### How to use CSS variables

```jsx
const vars = {
  '--my-css-var': 10,
  '--my-another-css-var': 'red',
}
return <CAlert style={vars}>...</CAlert>
```

### SASS variables

<ScssDocs file="_variables.scss" capture="alert-variables"/>

## API

### CAlert

`markdown:CAlert.api.mdx`

### CAlertHeading

`markdown:CAlertHeading.api.mdx`

### CAlertLink

`markdown:CAlertLink.api.mdx`
