Get started on your web projects with our Tailwind CSS Alert which provides contextual feedback messages for typical user actions.
An Alert displays a short and important message attracting the user's attention without interrupting the user's task. Use this element when you need to show highly-important messages to users or when you need a persistent static container that is closable by user actions.
See below our simple Alert example that you can use in your Tailwind CSS and React project. The example also comes in different styles and colors, so you can adapt it easily to your needs.
The Alert component comes with 3 different variants that you can change it using the variant prop.
The Alert component comes with 19 different colors that you can change it using the color prop.
You can add an icon at the beginning of Alert component using the icon prop.
You can add any element you want for the Alert component, below is a example of alert with a list inside.
Ensure that these requirements are met:
Ensure that these requirements are met:
Ensure that these requirements are met:
Ensure that these requirements are met:
The Alert component is a dismissible component that you can control it using the onClose and open props.
You can modify the open/close state animation for Alert component using the animate prop.
You can modify the close icon for Alert component using the dismissible prop.
Use the example below to use Alert component with more content like title and description.
I don't know what that word means. I'm happy. But success, that goes back to what in somebody's eyes success means. For me, success is inner peace. That's a good day for me.
You can use the className prop to add custom styles to the Alert component.
The following props are available for button component. These are the custom props that we've added for the alert component and you can use all the other native props as well.
| Attribute | Type | Description | Default |
|---|---|---|---|
variant | Variant | Change alert variant | filled |
color | Color | Change alert color | blue |
onClose | func | Callback for closing the alert component | undefined |
action | node | Change the onClose action button | undefined |
animate | Animate | Change alert animation | undefined |
open | boolean | Change alert visibility | true |
icon | node | Add icon at the beginning of alert | undefined |
className | string | Add custom className for alert | '' |
children | node | Add content for alert | No default value it's a required prop. |
import type { AlertProps } from "@material-tailwind/react";type variant = "filled" | "gradient" | "outlined" | "ghost";type color =
| "blue-gray"
| "gray"
| "brown"
| "deep-orange"
| "orange"
| "amber"
| "yellow"
| "lime"
| "light-green"
| "green"
| "teal"
| "cyan"
| "light-blue"
| "blue"
| "indigo"
| "deep-purple"
| "purple"
| "pink"
| "red";type animate = {
mount?: object;
unmount?: object;
};Learn how to customize the theme and styles for alert component, the theme object for alert component has three main objects:
A. The defaultProps object for setting up the default value for props of alert component.
B. The valid object for customizing the valid values for alert component props.
C. The styles object for customizing the theme and styles of alert component.
You can customize the theme and styles of alert component by adding Tailwind CSS classes as key paired values for objects.
interface AlertStylesType {
defaultProps: {
variant: string;
color: string;
icon: node;
open: boolean;
action: node;
onClose: func;
animate: {
mount: object;
unmount: object;
};
className: string;
};
valid: {
variants: string[];
colors: string[];
};
styles: {
base: {
alert: object;
action: object;
};
variants: {
filled: object;
gradient: object;
outlined: object;
ghost: object;
};
};
}import { AlertStylesType } from "@material-tailwind/react";const theme = {
alert: {
defaultProps: {
variant: "filled",
color: "blue",
icon: undefined,
open: true,
action: undefined,
onClose: undefined,
animate: {
unmount: {},
mount: {},
},
className: "",
},
valid: {
variants: ["filled", "gradient", "outlined", "ghost"],
colors: [
"blue-gray",
"gray",
"brown",
"deep-orange",
"orange",
"amber",
"yellow",
"lime",
"light-green",
"green",
"teal",
"cyan",
"light-blue",
"blue",
"indigo",
"deep-purple",
"purple",
"pink",
"red",
],
},
styles: {
base: {
alert: {
position: "relative",
display: "block",
width: "w-full",
fontFamily: "font-sans",
fontSize: "text-base",
fontWeight: "font-regular",
px: "px-4",
py: "py-4",
borderRadius: "rounded-lg",
},
action: {
position: "!absolute",
top: "top-3",
right: "right-3",
},
},
variants: {
filled: {
"blue-gray": {
backgroud: "bg-blue-gray-500",
color: "text-white",
},
gray: {
backgroud: "bg-gray-500",
color: "text-white",
},
brown: {
backgroud: "bg-brown-500",
color: "text-white",
},
"deep-orange": {
backgroud: "bg-deep-orange-500",
color: "text-white",
},
orange: {
backgroud: "bg-orange-500",
color: "text-white",
},
amber: {
backgroud: "bg-amber-500",
color: "text-black",
},
yellow: {
backgroud: "bg-yellow-500",
color: "text-black",
},
lime: {
backgroud: "bg-lime-500",
color: "text-black",
},
"light-green": {
backgroud: "bg-light-green-500",
color: "text-white",
},
green: {
backgroud: "bg-green-500",
color: "text-white",
},
teal: {
backgroud: "bg-teal-500",
color: "text-white",
},
cyan: {
backgroud: "bg-cyan-500",
color: "text-white",
},
"light-blue": {
backgroud: "bg-light-blue-500",
color: "text-white",
},
blue: {
backgroud: "bg-blue-500",
color: "text-white",
},
indigo: {
backgroud: "bg-indigo-500",
color: "text-white",
},
"deep-purple": {
backgroud: "bg-deep-purple-500",
color: "text-white",
},
purple: {
backgroud: "bg-purple-500",
color: "text-white",
},
pink: {
backgroud: "bg-pink-500",
color: "text-white",
},
red: {
backgroud: "bg-red-500",
color: "text-white",
},
},
gradient: {
"blue-gray": {
backgroud: "bg-gradient-to-tr from-blue-gray-600 to-blue-gray-400",
color: "text-white",
},
gray: {
backgroud: "bg-gradient-to-tr from-gray-600 to-gray-400",
color: "text-white",
},
brown: {
backgroud: "bg-gradient-to-tr from-brown-600 to-brown-400",
color: "text-white",
},
"deep-orange": {
backgroud: "bg-gradient-to-tr from-deep-orange-600 to-deep-orange-400",
color: "text-white",
},
orange: {
backgroud: "bg-gradient-to-tr from-orange-600 to-orange-400",
color: "text-white",
},
amber: {
backgroud: "bg-gradient-to-tr from-amber-600 to-amber-400",
color: "text-black",
},
yellow: {
backgroud: "bg-gradient-to-tr from-yellow-600 to-yellow-400",
color: "text-black",
},
lime: {
backgroud: "bg-gradient-to-tr from-lime-600 to-lime-400",
color: "text-black",
},
"light-green": {
backgroud: "bg-gradient-to-tr from-light-green-600 to-light-green-400",
color: "text-white",
},
green: {
backgroud: "bg-gradient-to-tr from-green-600 to-green-400",
color: "text-white",
},
teal: {
backgroud: "bg-gradient-to-tr from-teal-600 to-teal-400",
color: "text-white",
},
cyan: {
backgroud: "bg-gradient-to-tr from-cyan-600 to-cyan-400",
color: "text-white",
},
"light-blue": {
backgroud: "bg-gradient-to-tr from-light-blue-600 to-light-blue-400",
color: "text-white",
},
blue: {
backgroud: "bg-gradient-to-tr from-blue-600 to-blue-400",
color: "text-white",
},
indigo: {
backgroud: "bg-gradient-to-tr from-indigo-600 to-indigo-400",
color: "text-white",
},
"deep-purple": {
backgroud: "bg-gradient-to-tr from-deep-purple-600 to-deep-purple-400",
color: "text-white",
},
purple: {
backgroud: "bg-gradient-to-tr from-purple-600 to-purple-400",
color: "text-white",
},
pink: {
backgroud: "bg-gradient-to-tr from-pink-600 to-pink-400",
color: "text-white",
},
red: {
backgroud: "bg-gradient-to-tr from-red-600 to-red-400",
color: "text-white",
},
},
outlined: {
"blue-gray": {
border: "border border-blue-gray-500",
color: "text-blue-gray-700",
},
gray: {
border: "border border-gray-500",
color: "text-gray-700",
},
brown: {
border: "border border-brown-500",
color: "text-brown-700",
},
"deep-orange": {
border: "border border-deep-orange-500",
color: "text-deep-orange-700",
},
orange: {
border: "border border-orange-500",
color: "text-orange-700",
},
amber: {
border: "border border-amber-500",
color: "text-amber-700",
},
yellow: {
border: "border border-yellow-500",
color: "text-yellow-700",
},
lime: {
border: "border border-lime-500",
color: "text-lime-700",
},
"light-green": {
border: "border border-light-green-500",
color: "text-light-green-700",
},
green: {
border: "border border-green-500",
color: "text-green-700",
},
teal: {
border: "border border-teal-500",
color: "text-teal-700",
},
cyan: {
border: "border border-cyan-500",
color: "text-cyan-700",
},
"light-blue": {
border: "border border-light-blue-500",
color: "text-light-blue-700",
},
blue: {
border: "border border-blue-500",
color: "text-blue-700",
},
indigo: {
border: "border border-indigo-500",
color: "text-indigo-700",
},
"deep-purple": {
border: "border border-deep-purple-500",
color: "text-deep-purple-700",
},
purple: {
border: "border border-purple-500",
color: "text-purple-700",
},
pink: {
border: "border border-pink-500",
color: "text-pink-700",
},
red: {
border: "border border-red-500",
color: "text-red-700",
},
},
ghost: {
"blue-gray": {
backgroud: "bg-blue-gray-500/20",
color: "text-blue-gray-900",
},
gray: {
backgroud: "bg-gray-500/20",
color: "text-gray-900",
},
brown: {
backgroud: "bg-brown-500/20",
color: "text-brown-900",
},
"deep-orange": {
backgroud: "bg-deep-orange-500/20",
color: "text-deep-orange-900",
},
orange: {
backgroud: "bg-orange-500/20",
color: "text-orange-900",
},
amber: {
backgroud: "bg-amber-500/20",
color: "text-amber-900",
},
yellow: {
backgroud: "bg-yellow-500/20",
color: "text-yellow-900",
},
lime: {
backgroud: "bg-lime-500/20",
color: "text-lime-900",
},
"light-green": {
backgroud: "bg-light-green-500/20",
color: "text-light-green-900",
},
green: {
backgroud: "bg-green-500/20",
color: "text-green-900",
},
teal: {
backgroud: "bg-teal-500/20",
color: "text-teal-900",
},
cyan: {
backgroud: "bg-cyan-500/20",
color: "text-cyan-900",
},
"light-blue": {
backgroud: "bg-light-blue-500/20",
color: "text-light-blue-900",
},
blue: {
backgroud: "bg-blue-500/20",
color: "text-blue-900",
},
indigo: {
backgroud: "bg-indigo-500/20",
color: "text-indigo-900",
},
"deep-purple": {
backgroud: "bg-deep-purple-500/20",
color: "text-deep-purple-900",
},
purple: {
backgroud: "bg-purple-500/20",
color: "text-purple-900",
},
pink: {
backgroud: "bg-pink-500/20",
color: "text-pink-900",
},
red: {
backgroud: "bg-red-500/20",
color: "text-red-900",
},
},
},
},
},
};