Skip to content

Alert

Alert banner component for displaying status and feedback messages. Interactive features like dismissible alert require Alpine.js.

Basic Usage

blade
<x-basekit-ui::alert variant="info">
    This is an informational message.
</x-basekit-ui::alert>

Props

PropTypeDefaultDescription
variantstringconfig default (info)Alert style variant (primary,secondary,success,warning,danger,info,ghost)
is-dismissiblebooleanfalseShow dismiss button
titlestring|nullnullOptional alert title
iconstring|nullnullHeroicon name override
colorstring|nullnullQuick color shortcut. Sets background, text, and border simultaneously.
backgroundstring|nullnullCustom background color.
textstring|nullnullCustom text color.
borderstring|nullnullCustom border color.
icon-classstring|nullnullAdditional classes for the icon wrapper
content-classstring|nullnullAdditional classes for the content wrapper

Slots

SlotDescription
defaultAlert message body
titleCustom title content (overrides title prop)
iconCustom icon markup (overrides icon prop)
actionsAction area rendered below the alert message

Variants

Supported variants: primary, secondary, success, warning, danger, info, ghost.

blade
<x-basekit-ui::alert variant="primary" title="Primary">
    This is a primary alert.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="secondary" title="Secondary">
    This is a secondary alert.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="success" title="Success">
    Your changes have been saved.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="warning" title="Warning">
    Please check your input.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="danger" title="Error">
    Something went wrong.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="info" title="Info">
    This is an informational message.
</x-basekit-ui::alert>

<x-basekit-ui::alert variant="ghost" title="Ghost">
    This is a ghost alert.
</x-basekit-ui::alert>

With Icons

With Heroicon

Pass any Heroicon name via the icon prop:

blade
<x-basekit-ui::alert variant="info" icon="information-circle" title="Heads up">
    This alert uses a Heroicon from the icon prop.
</x-basekit-ui::alert>

Using Icon Slot

blade
<x-basekit-ui::alert variant="success" title="Deployment complete">
    <x-slot:icon>
        <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24">
            <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" />
        </svg>
    </x-slot:icon>

    All services are healthy.
</x-basekit-ui::alert>

Dismissible Alert

Alpine.js Required

The is-dismissible feature requires Alpine.js to be loaded in your layout. See the installation guide for setup instructions.

blade
<x-basekit-ui::alert variant="info" :is-dismissible="true">
    You can dismiss this alert.
</x-basekit-ui::alert>

Custom Title and Icon Slots

blade
<x-basekit-ui::alert variant="success">
    <x-slot:title>
        <span class="font-semibold">Deployment complete</span>
    </x-slot:title>

    <x-slot:icon>
        <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24">
            <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" />
        </svg>
    </x-slot:icon>

    All services are healthy.
</x-basekit-ui::alert>

With Title and Actions

blade
<x-basekit-ui::alert variant="warning" title="Please review this">
    There are pending items that need your attention.

    <x-slot:actions>
        <x-basekit-ui::button size="sm" variant="ghost">View details</x-basekit-ui::button>
    </x-slot:actions>
</x-basekit-ui::alert>

Custom Classes

Override or extend styles with the class attribute:

blade
<x-basekit-ui::alert variant="info" class="mt-2">
    Custom spacing applied.
</x-basekit-ui::alert>

Custom Colors

Override the component's default variant colors using the color shortcut prop or granular background, text, and border props.

The color prop accepts Tailwind v4 color names (e.g., indigo-500, pink-200, emerald-700) or any raw CSS color value (hex, rgb, hsl, named colors).

Note: Alert is a light-background component. When using Tailwind color names, the component automatically uses a light tint background (shade-50), strong text (shade-700), and a medium border (shade-200) — matching the built-in variant style.

With Tailwind Colors

blade
<x-basekit-ui::alert color="indigo-500" title="Heads up">
    This is an informational message.
</x-basekit-ui::alert>

With Raw CSS Colors

blade
<x-basekit-ui::alert background="#EEF2FF" text="#4338CA" border="#C7D2FE">
    Custom colored alert.
</x-basekit-ui::alert>

Granular Control

blade
<x-basekit-ui::alert
    background="indigo-500"
    text="white"
    border="indigo-300"
    title="Heads up"
>
    This is an informational message.
</x-basekit-ui::alert>

CSS Variables

Customize alert appearance via CSS variables:

css
:root {
  /* Alert - Base */
  --alert-radius: var(--radius-md);

  /* Alert - Variants */
  --alert-bg-primary: var(--color-primary-50);
  --alert-text-primary: var(--color-primary-700);
  --alert-border-primary: var(--color-primary-200);

  --alert-bg-info: var(--color-info-50);
  --alert-text-info: var(--color-info-700);
  --alert-border-info: var(--color-info-200);

  --alert-bg-secondary: var(--color-slate-50);
  --alert-text-secondary: var(--color-slate-700);
  --alert-border-secondary: var(--color-slate-200);

  --alert-bg-success: var(--color-success-50);
  --alert-text-success: var(--color-success-700);
  --alert-border-success: var(--color-success-200);

  --alert-bg-warning: var(--color-warning-50);
  --alert-text-warning: var(--color-warning-800);
  --alert-border-warning: var(--color-warning-200);

  --alert-bg-danger: var(--color-danger-50);
  --alert-text-danger: var(--color-danger-700);
  --alert-border-danger: var(--color-danger-200);

  --alert-bg-ghost: transparent;
  --alert-text-ghost: var(--color-slate-700);
  --alert-border-ghost: transparent;
}

Dark Mode

Dark mode overrides are applied automatically when a parent element has the .dark class:

css
.dark {
  --alert-bg-primary: var(--color-primary-950);
  --alert-text-primary: var(--color-primary-200);
  --alert-border-primary: var(--color-primary-800);

  --alert-bg-info: var(--color-info-950);
  --alert-text-info: var(--color-info-200);
  --alert-border-info: var(--color-info-800);

  --alert-bg-secondary: var(--color-slate-800);
  --alert-text-secondary: var(--color-slate-200);
  --alert-border-secondary: var(--color-slate-700);

  --alert-bg-success: var(--color-success-950);
  --alert-text-success: var(--color-success-200);
  --alert-border-success: var(--color-success-800);

  --alert-bg-warning: var(--color-warning-950);
  --alert-text-warning: var(--color-warning-200);
  --alert-border-warning: var(--color-warning-800);

  --alert-bg-danger: var(--color-danger-950);
  --alert-text-danger: var(--color-danger-200);
  --alert-border-danger: var(--color-danger-800);

  --alert-text-ghost: var(--color-slate-400);
}

For dark mode token details, see Theming — Dark Mode.

Configuration

Configure defaults in config/basekit-laravel-ui.php:

php
'components' => [
    'alert' => [
        'enabled' => true,
        'variants' => ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'ghost'],
        'default_variant' => 'info',
    ],
],

Released under the MIT License.