Alert
iconiq-ui/alertFreeComponent
Compound Alert, AlertTitle, and AlertDescription parts with optional icons, legacy prop support, polite live announcements, and inline or toast behavior.
Install it
npx shadcn@latest add https://www.iconiqui.com/r/alert.jsonSource
1"use client";23import { cva, type VariantProps } from "class-variance-authority";4import {5 AnimatePresence,6 motion,7 useReducedMotion,8 type Variants,9} from "motion/react";10import {11 Children,12 type ComponentPropsWithoutRef,13 type CSSProperties,14 createContext,15 type FocusEvent,16 forwardRef,17 isValidElement,18 type ReactNode,19 type Ref,20 useCallback,21 useContext,22 useEffect,23 useId,24 useRef,25 useState,26} from "react";27import { createPortal } from "react-dom";2829import { cn } from "@/lib/utils";3031const alertCornerClassName =32 "rounded-lg supports-[corner-shape:squircle]:corner-squircle supports-[corner-shape:squircle]:rounded-[11px]";3334const alertVariants = cva(35 cn(36 alertCornerClassName,37 "relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 border border-foreground/8 px-3.5 py-2.5 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current"38 ),39 {40 variants: {41 appearance: {42 default: "bg-card text-card-foreground",43 success:44 "border-emerald-200 bg-emerald-50 text-emerald-950 *:data-[slot=alert-description]:text-emerald-800/80 dark:border-emerald-800/70 dark:bg-emerald-950/40 dark:text-emerald-50 dark:*:data-[slot=alert-description]:text-emerald-100/75 [&>svg]:text-emerald-700 dark:[&>svg]:text-emerald-300",45 info: "border-sky-200 bg-sky-50 text-sky-950 *:data-[slot=alert-description]:text-sky-800/80 dark:border-sky-800/70 dark:bg-sky-950/40 dark:text-sky-50 dark:*:data-[slot=alert-description]:text-sky-100/75 [&>svg]:text-sky-700 dark:[&>svg]:text-sky-300",46 destructive:47 "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current",48 warning:49 "border-amber-200 bg-amber-50 text-amber-950 *:data-[slot=alert-description]:text-stone-600 dark:border-amber-800/70 dark:bg-amber-950/40 dark:text-amber-50 dark:*:data-[slot=alert-description]:text-amber-100/70 [&>svg]:text-amber-900 dark:[&>svg]:text-amber-200",50 },51 },52 defaultVariants: {53 appearance: "default",54 },55 }56);5758const componentThemeClassName =59// … truncated
What it pulls in
npm packages
Files it writes
More from Iconiq UI
All 119 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | Iconiq UI | Components | Free | 2 deps | |
| AI Inputai-input | Iconiq UI | Components | Free | 3 deps | |
| Avataravatar | Iconiq UI | Components | Free | 3 deps | |
| Accordion (Base UI)b-accordion | Iconiq UI | Components | Free | 2 deps | |
| Alert Dialog (Base UI)b-alert-dialog | Iconiq UI | Components | Free | 3 deps | |
| Autocomplete (Base UI)b-autocomplete | Iconiq UI | Components | Free | 3 deps | |
| Avatar (Base UI)b-avatar | Iconiq UI | Components | Free | 2 deps | |
| Button (Base UI)b-button | Iconiq UI | Components | Free | 4 deps |
