Skip to content
Areia
Esc
navigateopen⌘Jpreview
On this page

Banner

Displays contextual inline messages for informational, alert, or error states.

Source Code

Update available

A new version is ready to install.

Session expiring

Your session will expire in 5 minutes.

Save failed

We couldn't save your changes. Please try again.

import { ilha } from "ilha";
import { Info, TriangleAlert } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <div class="flex w-full max-w-2xl flex-col gap-3">
    <Banner
      icon={<Icon icon={Info} class="size-5" />}
      title="Update available"
      description="A new version is ready to install."
    />
    <Banner
      icon={<Icon icon={TriangleAlert} class="size-5" />}
      variant="alert"
      title="Session expiring"
      description="Your session will expire in 5 minutes."
    />
    <Banner
      icon={<Icon icon={TriangleAlert} class="size-5" />}
      variant="error"
      title="Save failed"
      description="We couldn't save your changes. Please try again."
    />
  </div>
));

Import

import { Banner } from "areia";

Usage

Update available

A new version is ready to install.

import { ilha } from "ilha";
import { Info } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={Info} class="size-5" />}
    title="Update available"
    description="A new version is ready to install."
  />
));

Examples

Variants

Default

Update available

A new version is ready to install.

import { ilha } from "ilha";
import { Info } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={Info} class="size-5" />}
    title="Update available"
    description="A new version is ready to install."
  />
));

Alert

Session expiring

Your session will expire in 5 minutes.

import { ilha } from "ilha";
import { TriangleAlert } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={TriangleAlert} class="size-5" />}
    variant="alert"
    title="Session expiring"
    description="Your session will expire in 5 minutes."
  />
));

Error

Save failed

We couldn't save your changes. Please try again.

import { ilha } from "ilha";
import { TriangleAlert } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={TriangleAlert} class="size-5" />}
    variant="error"
    title="Save failed"
    description="We couldn't save your changes. Please try again."
  />
));

With Icon

Review required

Please review your project settings before proceeding.

import { ilha } from "ilha";
import { TriangleAlert } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={TriangleAlert} class="size-5" />}
    variant="alert"
    title="Review required"
    description="Please review your project settings before proceeding."
  />
));

With Action

Update available

A new version is ready to install.

import { ilha } from "ilha";
import { Info } from "lucide";
import { Banner, Button, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={Info} class="size-5" />}
    title="Update available"
    description="A new version is ready to install."
    action={
      <Button size="sm" variant="primary">
        Update now
      </Button>
    }
  />
));

With Multiple Actions

Session expiring

Your session will expire in 5 minutes.

import { ilha } from "ilha";
import { TriangleAlert } from "lucide";
import { Banner, Button, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={TriangleAlert} class="size-5" />}
    variant="alert"
    title="Session expiring"
    description="Your session will expire in 5 minutes."
    action={
      <>
        <Button size="sm" variant="ghost">
          Dismiss
        </Button>
        <Button size="sm" variant="secondary">
          Extend session
        </Button>
      </>
    }
  />
));

Custom Content

Use markup in description when the message needs links, emphasis, or other inline content.

Custom content supported

This banner supports custom content with Ilha markup.

import { ilha } from "ilha";
import { Info } from "lucide";
import { Banner, Icon } from "areia";

export default ilha.render(() => (
  <Banner
    icon={<Icon icon={Info} class="size-5" />}
    title="Custom content supported"
    description={
      <>
        This banner supports <strong>custom content</strong>{" "}
        with Ilha markup.
      </>
    }
  />
));

API Reference

Prop Type Default Description
icon unknown - Icon markup rendered before the banner content.
title unknown - Primary heading text for the banner.
description unknown - Secondary description displayed below the title.
action unknown - Action slot rendered at the trailing end of structured banners.
text unknown - Simple banner content used when title and description are not provided.
variant "default" | "alert" | "error" "default" Visual style of the banner.
class string - Additional CSS classes merged with the generated classes.
className string - Alias for class.

Was this page helpful?