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

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>

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;
}

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.