New feature available
Check out the latest updates we just shipped.
default.tsx
1'use client';23import { Banner } from '@/components/ui/banner';45export function Default() {6 return (7 <Banner>8 <Banner.Content>9 <Banner.Title>New feature available</Banner.Title>10 <Banner.Description>Check out the latest updates we just shipped.</Banner.Description>11 </Banner.Content>12 <Banner.Action href="#changelog">Learn more</Banner.Action>13 </Banner>14 );15}
Instalación
pnpm dlx nachui add banner
Anatomía
1import { Banner } from '@/components/ui/banner';
1<Banner variant="info">2 <Banner.Content>3 <Banner.Title>Anuncio</Banner.Title>4 <Banner.Description>Algo importante sucedió.</Banner.Description>5 </Banner.Content>6 <Banner.Action href="/changelog">Saber más</Banner.Action>7</Banner>
Variantes
info
Info
This is an informational banner.
info.tsx
1'use client';23import { Banner } from '@/components/ui/banner';45export function Info() {6 return (7 <Banner variant="info">8 <Banner.Content>9 <Banner.Title>Info</Banner.Title>10 <Banner.Description>This is an informational banner.</Banner.Description>11 </Banner.Content>12 </Banner>13 );14}
warning
Warning
This is a warning banner.
warning.tsx
1'use client';23import { Banner } from '@/components/ui/banner';45export function Warning() {6 return (7 <Banner variant="warning">8 <Banner.Content>9 <Banner.Title>Warning</Banner.Title>10 <Banner.Description>This is a warning banner.</Banner.Description>11 </Banner.Content>12 </Banner>13 );14}
danger
Danger
This is a danger banner.
danger.tsx
1'use client';23import { Banner } from '@/components/ui/banner';45export function Danger() {6 return (7 <Banner variant="danger">8 <Banner.Content>9 <Banner.Title>Danger</Banner.Title>10 <Banner.Description>This is a danger banner.</Banner.Description>11 </Banner.Content>12 </Banner>13 );14}
success
Success
This is a success banner.
success.tsx
1'use client';23import { Banner } from '@/components/ui/banner';45export function Success() {6 return (7 <Banner variant="success">8 <Banner.Content>9 <Banner.Title>Success</Banner.Title>10 <Banner.Description>This is a success banner.</Banner.Description>11 </Banner.Content>12 </Banner>13 );14}
Descartable
Dismissible banner
Click the close button to dismiss this banner.
dismissible.tsx
1'use client';23import { useState } from 'react';4import { Banner } from '@/components/ui/banner';56export function Dismissible() {7 const [key, setKey] = useState(0);89 return (10 <div className="flex w-full flex-col gap-3">11 <Banner key={key} variant="info" onClose={() => {}}>12 <Banner.Content>13 <Banner.Title>Dismissible banner</Banner.Title>14 <Banner.Description>Click the close button to dismiss this banner.</Banner.Description>15 </Banner.Content>16 </Banner>17 <button18 type="button"19 onClick={() => setKey((k) => k + 1)}20 className="text-muted-foreground hover:text-foreground w-fit text-sm underline transition-colors"21 >22 Reset banner23 </button>24 </div>25 );26}
Referencia de API
Banner
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
variant | "default" | "info" | "warning" | "danger" | "success" | "default" | Controla el estilo visual y los colores de superficie. |
icon | React.ReactNode | — | Icono personalizado que reemplaza el icono de variante. |
onClose | () => void | — | Callback que se dispara al descartar el banner. |
sticky | boolean | false | Fija el banner en la parte superior del viewport. |
className | string | — | Nombres de clases adicionales. |
children | React.ReactNode | — | Compone el banner con Content, Title y Action. |
Banner.Content
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
children | React.ReactNode | — | Envuelve el título y la descripción. |
className | string | — | Nombres de clases adicionales. |
Banner.Title
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
children | React.ReactNode | — | Texto del título del banner. |
className | string | — | Nombres de clases adicionales. |
Banner.Description
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
children | React.ReactNode | — | Texto de soporte del banner. |
className | string | — | Nombres de clases adicionales. |
Banner.Action
| Propiedad | Tipo | Por defecto | Descripción |
|---|---|---|---|
href | string | — | Destino del enlace. |
children | React.ReactNode | — | Texto de la acción. |
className | string | — | Nombres de clases adicionales. |