Skip to content

Icons

Praesepe ships a small operational icon set as inline Blade SVGs under resources/views/components/icons. It is not an icon foundry. For product icons beyond this set, use whatever pack you prefer.

Built-in set

18 icons used by docs chrome and UI primitives. Click a card to copy the Blade tag.

Usage

Prefer long-form sizing with size-* and shrink-0 inside flex rows. Optical defaults: size-3.5 in sm controls, size-4 in md.

Copied!
<x-ui.button size="sm">
    <x-icons.search class="size-3.5 shrink-0" />
    Search
</x-ui.button>

<x-ui.input name="q" placeholder="Find invoices">
    <x-slot:leadingIcon>
        <x-icons.search class="size-4 shrink-0" />
    </x-slot:leadingIcon>
</x-ui.input>

Bring your own

Praesepe does not depend on an icon package. Drop any SVG into a slot, or install a pack in your app. Common choices: Heroicons, Lucide, Phosphor, or hand-authored marks.

  • Pass custom SVG through named slots such as leadingIcon, icon, or button children.
  • Keep stroke icons around 1.5 to 2px so they match control density.
  • Use currentColor so icons follow text-* utilities.
  • If you standardize on Heroicons, copy only the glyphs you need into your app. Do not add a Heroicons package to Praesepe itself.
Copied!
<!-- Example: Heroicons-style path pasted into a control -->
<x-ui.button variant="outline" size="sm">
    <svg class="size-3.5 shrink-0" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true">
        <path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
    </svg>
    New invoice
</x-ui.button>

Accessibility

  • Decorative icons default to aria-hidden="true".
  • Icon-only controls need an accessible name on the button or link (aria-label).
  • Do not rely on color alone. Pair status icons with text labels in tables and alerts when meaning matters.

Built by Praesepe

Architecture & custom software partner

Praesepe uses these exact UI primitives to ship SME dashboards, inventory systems, invoicing desks, and internal tools faster, without rebuilding a design system for every client.

  • Same Blade + Tailwind 4 + Alpine 3 stack you see in this docs site
  • Opinionated for Indonesian SME ops: invoices, stock, roles, approvals
  • Architected with WCAG 2.2 AA patterns in mind for keyboard and ARIA