Vue Alert Component

Alert

Vue alert component gives contextual feedback information for common user operations. The alert component is delivered with a bunch of usable and adjustable alert messages.

Available in Other JavaScript Frameworks

CoreUI Vue Alert Component is also available for Angular, Bootstrap, and React. Explore framework-specific implementations below:

Examples

Vue 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.

vue
<template>
  <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>
</template>

<script setup>
import { CAlert } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

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.

vue
<template>
  <CAlert
    color="primary"
    :visible="liveExampleVisible"
    dismissible
    @close="
      () => {
        liveExampleVisible = false
      }
    "
    >A simple primary alert—check it out!</CAlert
  >
  <CButton
    color="primary"
    @click="
      () => {
        liveExampleVisible = true
      }
    "
    >Show live alert</CButton
  >
</template>

<script setup>
import { CAlert, CButton } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

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

vue
<template>
  <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>
</template>

<script setup>
import { CAlert, CAlertLink } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

Additional content

Alert can also incorporate supplementary HTML elements like heading, paragraph, and divider.

vue
<template>
  <CAlert color="success">
    <CAlertHeading>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 class="mb-0">
      Whenever you need to, be sure to use margin utilities to keep things nice and tidy.
    </p>
  </CAlert>
</template>

<script setup>
import { CAlert, CAlertHeading } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

Icons

Similarly, you can use flexbox utilities and CoreUI Icons to create alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles.

vue
<template>
  <CAlert color="primary" class="d-flex align-items-center">
    <svg class="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)"
        class="ci-primary"
      ></rect>
      <rect
        width="32"
        height="32"
        x="240"
        y="384"
        fill="var(--ci-primary-color, currentColor)"
        class="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"
        class="ci-primary"
      ></path>
    </svg>

    <div>An example alert with an icon</div>
  </CAlert>
</template>

<script setup>
import { CAlert } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

Need more than one icon for your alerts? Consider using CoreUI Icons.

vue
<template>
  <CAlert color="primary" class="d-flex align-items-center">
    <CIcon icon="cil-info" class="flex-shrink-0 me-2" width="24" height="24" />

    <div>An example alert with an icon</div>
  </CAlert>
  <CAlert color="success" class="d-flex align-items-center">
    <CIcon icon="cil-check-circle" class="flex-shrink-0 me-2" width="24" height="24" />
    <div>An example success alert with an icon</div>
  </CAlert>
  <CAlert color="warning" class="d-flex align-items-center">
    <CIcon icon="cil-warning" class="flex-shrink-0 me-2" width="24" height="24" />
    <div>An example warning alert with an icon</div>
  </CAlert>
  <CAlert color="danger" class="d-flex align-items-center">
    <CIcon icon="cil-burn" class="flex-shrink-0 me-2" width="24" height="24" />
    <div>An example danger alert with an icon</div>
  </CAlert>
</template>

<script setup>
import { CAlert } from '@coreui/vue'
import { CIcon } from '@coreui/icons-vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

Solid

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

vue
<template>
  <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" class="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>
</template>

<script setup>
import { CAlert } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>

Dismissing

Alerts can also be easily dismissed. Just add the dismissible prop.

vue
<template>
  <CAlert color="warning" dismissible @close="message">
    <strong>Go right ahead</strong> and click that dimiss over there on the right.
  </CAlert>
</template>

<script setup>
import { CAlert } from '@coreui/vue'
import { ref } from 'vue'
const liveExampleVisible = ref(false)
const message = () => {
  alert('👋 Well, hi there! Thanks for dismissing me.')
}
</script>