# Alert
KAlert is used to display contextual information to a user. These are typically used to notify something may be disabled or there may be an error.
<KAlert alert-message="I'm an alert" />
# Props
# alertMessage
The main content of the alert.
# isShowing
Set whether or not the alert box is shown.
Note: By default is-showing is set to true.
is-showing
<KAlert
:is-showing="false"
alert-message="is-showing set to false"
/>
# type
The display type of the alert.
Note: By default
appearance="info"
.
alert
(default)
<KAlert alert-message="I'm an alert" />
banner
type="banner"
will have a white background and display an ellipse on the left to indicate appearance.
<KAlert
alert-message="I'm a banner type alert"
type="banner"
/>
# dismissType
KAlert allows for dismissal of the banner using an icon or button. An alert is not dismissible if "none" is passed.
none
(default)icon
button
<KAlert
alert-message="Alert that can not be dismissed"
type="alert"
dismiss-type="none"
/>
<KAlert
alert-message="Info alert message that is dismissible"
dismiss-type="icon"
:is-showing="isShowing"
@closed="isShowing = false"
/>
<KAlert
alert-message="Alert with dismiss type as button"
type="banner"
dismiss-type="button"
:is-showing="isShowing"
@closed="isShowing = false"
/>
# appearance
What color and purpose the Alert should be. Shares similar appearances to those of KButton. appearance
will influence the colors of action/dismiss buttons.
info
(default)
<KAlert alert-message="Info alert message" />
<KAlert
:is-showing="isShowing"
alert-message="Info alert message that is dismissible"
dismiss-type="icon"
@closed="isShowing = false"
/>
<KAlert
:is-showing="isShowing"
alert-message="I'm an alert"
dismiss-type="button"
@closed="isShowing = false"
/>
<KAlert
alert-message="I'm a banner type alert"
type="banner"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert with dismiss type as button"
type="banner"
dismiss-type="button"
@closed="isShowing = false"
/>
warning
<KAlert
alert-message="Warning alert message"
appearance="warning"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert message that is dismissible"
dismiss-type="icon"
appearance="warning"
@closed="isShowing = false"
/>
<KAlert
:is-showing="isShowing"
alert-message="I'm an alert"
dismiss-type="button"
appearance="warning"
@closed="isShowing = false"
/>
<KAlert
alert-message="I'm a banner type alert"
type="banner"
appearance="warning"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert with dismiss type as button"
type="banner"
dismiss-type="button"
appearance="warning"
@closed="isShowing = false"
/>
success
<KAlert
alert-message="Success alert message"
appearance="success"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert message that is dismissible"
dismiss-type="icon"
appearance="success"
@closed="isShowing = false"
/>
<KAlert
:is-showing="isShowing"
alert-message="I'm an alert"
dismiss-type="button"
appearance="success"
@closed="isShowing = false"
/>
<KAlert
alert-message="I'm a banner type alert"
type="banner"
appearance="success"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert with dismiss type as button"
type="banner"
dismiss-type="button"
appearance="success"
@closed="isShowing = false"
/>
danger
<KAlert
alert-message="Danger alert message"
appearance="danger"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert message that is dismissible"
dismiss-type="icon"
appearance="danger"
@closed="isShowing = false"
/>
<KAlert
:is-showing="isShowing"
alert-message="I'm an alert"
dismiss-type="button"
appearance="danger"
@closed="isShowing = false"
/>
<KAlert
alert-message="I'm a banner type alert"
type="banner"
appearance="danger"
/>
<KAlert
:is-showing="isShowing"
alert-message="Alert with dismiss type as button"
type="banner"
dismiss-type="button"
appearance="danger"
@closed="isShowing = false"
/>
# size
Controls size (height) and default font-size of an alert.
small
<KAlert
size="small"
alert-message="Small alert"
/>
large
size="large"
allows further customization options. You can specify an icon, description text, and additional buttons using theactionButtons
slot. See the full Example.
# icon
Specify an icon to display to the left of the alert content. If using type="banner"
this will override the colored ellipse.
Note: only available with
size="large"
.
# iconSize
The size of the icon
being displayed (default is 24
).
# iconColor
The color of the icon
being displayed.
# description
Descriptive text to be displayed below the main alert content.
Note: only available with
size="large"
.
<KAlert
:is-showing="isShowing"
alert-message="You’ve had 12 new mentions since you last logged in"
description="across 3 services"
dismiss-type="button"
type="banner"
icon="support"
icon-color="var(--purple-400)"
size="large"
@closed="isShowing = false"
>
<template v-slot:actionButtons>
<KButton appearance="primary" size="small">Review</KButton>
</template>
</KAlert>
# title
You can specify a title for the alert in situations where the message is more wordy. This content is displayed directly above the main alert content.
<KAlert
:is-showing="isShowing"
title="Error: Something went wrong!"
alert-message="Since I have a title, my font-size is smaller."
appearance="danger"
@closed="isShowing = false"
>
<template #icon>
<KIcon icon="errorFilled" color="var(--red-500)" size="16" />
</template>
</KAlert>
# isBordered
Adds border around alert. Used for KToaster.
<KAlert
alert-message="Info bordered"
is-bordered
/>
# hasLeftBorder
Adds border to the left side. Typically used for alerts that show info that may link away like documentation.
<KAlert
alert-message="Bordered alert"
has-left-border
/>
# hasRightBorder
Adds border to the right side. Typically used for alerts that show info that may link away like documentation.
<KAlert
alert-message="Bordered alert"
has-right-border
/>
# hasTopBorder
Adds border to the top.
<KAlert
alert-message="Bordered alert"
has-top-border
/>
# hasBottomBorder
Adds border to the bottom.
<KAlert
alert-message="Bordered alert"
has-bottom-border
/>
# isFixed
Fixes KAlert to the top of the container.
Note: Not demoed
<KAlert is-fixed alert-message="Info bordered" />
# Slots
alertMessage
- Default message sloticon
- Icon to the left of the main alert contenttitle
- Text displayed directly above the main alert content (font will be bolded)description
- Descriptive text displayed directly beneath the main alert content (size='large'
required)actionButtons
- Slot specifically meant for adding buttons other than Dismiss button
<KAlert
:is-showing="isShowing"
dismiss-type="button"
size="large"
appearance="success"
@closed="isShowing = false"
>
<template #icon>
<KIcon icon="lock" size="20" color="var(--yellow-400)" />
</template>
<template #title>
Look, Mah!
</template>
<template #alertMessage>
Check out my awesome slots
</template>
<template #description>
I like cats 🐈⬛
</template>
<template v-slot:actionButtons>
<KButton appearance="secondary" size="small">🐈⬛</KButton>
<KButton appearance="creation" size="small">🐶</KButton>
</template>
</KAlert>
# Variations
# Long Content / Prose
Before you release that email you're writing to spin up a new centralized decision-making group, it's worth talking about the four ways these groups consistently fail. They tend to be domineering, bottlenecked, status-oriented, or inert.
<KAlert appearance="info" class="mt-5">
<template v-slot:alertMessage>
<div class="mt-2 bold">Failure Modes</div>
<p>
Before you release that email you're writing to spin up a new centralized decision-making group, it's worth talking about the four ways these groups consistently fail. They tend to be <b>domineering</b>, <b>bottlenecked</b>, <b>status-oriented</b>, or <b>inert</b>.
</p>
</template>
</KAlert>
# Word Wrap long urls
<KAlert appearance="warning" class="mt-5">
<template v-slot:alertMessage>
Proxy error: Could not proxy request /api/service_packages?fields=&s=%7B%22%24and%22%3A%5B%7B%22name%22%3A%7B%22%24contL%22%3A%22%22%7D%7D%5D%7D&filter=&or=&sort=created_at%2CDESC&join=&limit=100&offset=0&page=1 from localhost:8080 to http://localhost:3000 (ECONNREFUSED).
</template>
</KAlert>
# Theming
Variable | Purpose |
---|---|
--KAlertInfoColor | Info variant text color |
--KAlertInfoBorder | Info variant border |
--KAlertInfoBackground | Info variant background color |
--KAlertSuccessColor | Success variant text color |
--KAlertSuccessBorder | Success variant border |
--KAlertSuccessBackground | Success variant background color |
--KAlertDangerColor | Danger variant text color |
--KAlertDangerBorder | Danger variant border |
--KAlertDangerBackground | Danger variant background color |
--KAlertWarningColor | Warning variant text color |
--KAlertWarningBorder | Warning variant border |
--KAlertWarningBackground | Warning variant background color |
An Example of changing the success KAlert variant to lime instead of Kong's green might look like.
Note: We are scoping the overrides to a wrapper in this example
<template>
<div class="alert-wrapper">
<KAlert appearance="success" alert-message="Im Lime" />
</div>
</template>
<style>
.alert-wrapper {
--KAlertSuccessBackground: lime;
--KAlertSuccessColor: forestgreen;
}
</style>