Aurora Banner
aurora-dinglebear-ai/aurora-bannerUnverifiedComponent
Full-width status banners with info, success, warn, and error Aurora tint variants.
Install it
npx shadcn@latest add https://raw.githubusercontent.com/dinglebear-ai/aurora/main/aurora-banner.jsonSource
1"use client";23import * as React from "react";4import { CircleCheck, CircleX, Info, TriangleAlert, X } from "lucide-react";5import { Button } from "./button";6import { cn } from "@/lib/utils";78// ---------------------------------------------------------------------------9// Types10// ---------------------------------------------------------------------------1112export type BannerStatus = "success" | "warn" | "error" | "info";13export type BannerStyle = "elevated" | "tag";1415export interface BannerProps extends React.HTMLAttributes<HTMLDivElement> {16 variant?: BannerStatus;17 /**18 * CD-parity alias for {@link variant}. When provided it takes precedence so19 * Claude Design compositions can drive tone directly (`success | warn | error`).20 */21 tone?: BannerStatus;22 kind?: BannerStyle;23 title?: string;24 description?: string;25 onDismiss?: () => void;26 /** CD-parity alias for {@link onDismiss}. */27 onClose?: () => void;28 action?: React.ReactNode;29 children?: React.ReactNode;30}3132// ---------------------------------------------------------------------------33// Status colour map34// ---------------------------------------------------------------------------3536const STATUS_COLOR: Record<BannerStatus, string> = {37 success: "var(--aurora-success)",38 warn: "var(--aurora-warn)",39 error: "var(--aurora-error)",40 info: "var(--aurora-accent-primary)",41};4243const STATUS_LABEL: Record<BannerStatus, string> = {44 success: "OK",45 warn: "Warn",46 error: "Error",47 info: "Info",48};4950// ---------------------------------------------------------------------------51// Status icons — Lucide, 20px, currentColor52// ---------------------------------------------------------------------------5354function StatusIcon({ status }: { status: BannerStatus }) {55 const iconProps = { size: 20, strokeWidth: 1.75, "aria-hidden": true } as const;5657 if (status === "success") return <CircleCheck {...iconProps} />;58 if (status === "warn") return <TriangleAlert {...iconProps} />;59 if (status === "error") return <CircleX {...iconProps} />;60 return <Info {...iconProps} />;61}6263function getLiveProps(status: BannerStatus) {64 if (status === "warn" || status === "error") {65 return { role: "alert" as const, "aria-live": "assertive" as const };66 }6768 return { role: "status" as const, "aria-live": "polite" as const };69}7071// ---------------------------------------------------------------------------72// Elevated variant — Style A1 (CD-parity)73// <div class="banner-elev">74// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from aurora
All 176 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Aurora Accordionaurora-accordion | aurora | Components | Unverified | 2 deps | |
| Aurora Alert Dialogaurora-alert-dialog | aurora | Components | Unverified | 2 deps | |
| Aurora Aspect Ratioaurora-aspect-ratio | aurora | Components | Unverified | no deps | |
| Aurora Avataraurora-avatar | aurora | Components | Unverified | 1 dep | |
| Aurora Badgeaurora-badge | aurora | Components | Unverified | 2 deps | |
| Aurora Breadcrumbaurora-breadcrumb | aurora | Components | Unverified | 2 deps | |
| Aurora Buttonaurora-button | aurora | Components | Unverified | 2 deps | |
| Aurora Button Groupaurora-button-group | aurora | Components | Unverified | no deps |
