Skip to content

Badge

A small badge component for labels, counts, and status indicators.

Basic Usage

blade
<x-basekit-ui::badge>New</x-basekit-ui::badge>

Props

PropTypeDefaultDescription
variantstring'secondary'Badge color variant (primary,secondary,success,warning,danger,info,ghost)
sizestring'md'Badge size (sm,md,lg)
iconstringnullHeroicon name
isDotbooleanfalseShow dot indicator

Slots

SlotDescription
defaultBadge label/content
iconCustom icon markup (overrides icon prop)

Variants

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

blade
<x-basekit-ui::badge variant="primary">Primary</x-basekit-ui::badge>
<x-basekit-ui::badge variant="secondary">Secondary</x-basekit-ui::badge>
<x-basekit-ui::badge variant="success">Success</x-basekit-ui::badge>
<x-basekit-ui::badge variant="warning">Warning</x-basekit-ui::badge>
<x-basekit-ui::badge variant="danger">Danger</x-basekit-ui::badge>
<x-basekit-ui::badge variant="info">Info</x-basekit-ui::badge>
<x-basekit-ui::badge variant="ghost">Ghost</x-basekit-ui::badge>

Sizes

Supported sizes: sm, md, lg.

blade
<x-basekit-ui::badge size="sm">Small</x-basekit-ui::badge>
<x-basekit-ui::badge size="md">Medium</x-basekit-ui::badge>
<x-basekit-ui::badge size="lg">Large</x-basekit-ui::badge>

Dot Indicator

blade
<x-basekit-ui::badge :is-dot="true">Status</x-basekit-ui::badge>

With Icons

With Heroicon

Pass any Heroicon name via the icon prop:

blade
<x-basekit-ui::badge variant="success" icon="check">Verified</x-basekit-ui::badge>

Using Icon Slot

blade
<x-basekit-ui::badge variant="info">
    <x-slot:icon>
        <x-heroicon-o-information-circle class="w-3 h-3" />
    </x-slot:icon>
    Informational
</x-basekit-ui::badge>

<x-basekit-ui::badge variant="warning">
    <x-slot:icon>
        <svg viewBox="0 0 24 24" class="w-3 h-3" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true">
            <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v4m0 4h.01M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z" />
        </svg>
    </x-slot:icon>
    Attention
</x-basekit-ui::badge>

Custom Classes

Override default classes using Tailwind Merge:

blade
<x-basekit-ui::badge variant="primary" class="uppercase tracking-wide">
    Custom Styled Badge
</x-basekit-ui::badge>

CSS Variables

Customize badge appearance via CSS variables:

css
:root {
  --badge-radius: 9999px;
  --badge-font-weight: var(--font-weight-medium);
  --badge-font-size-sm: var(--font-size-xs);
  --badge-font-size-md: var(--font-size-xs);
  --badge-font-size-lg: var(--font-size-sm);

  --badge-bg-secondary: var(--color-slate-100);
  --badge-text-secondary: var(--color-slate-700);
  --badge-border-secondary: var(--color-slate-200);

  --badge-bg-primary: var(--color-primary-50);
  --badge-text-primary: var(--color-primary-700);
  --badge-border-primary: var(--color-primary-200);

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

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

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

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

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

Configuration

php
'badge' => [
    'enabled' => true,
    'variants' => ['primary', 'secondary', 'success', 'warning', 'danger', 'info', 'ghost'],
    'sizes' => ['sm', 'md', 'lg'],
    'default_variant' => 'secondary',
    'default_size' => 'md',
],

Released under the MIT License.