beartropy/ui
Beartropy UI is a small Laravel UI package providing ready-made components and helpers to speed up building admin and front-end screens. Drop in common layouts, forms, and UI utilities to get a consistent look fast with minimal setup.
<x-bt-icon /> — renders icons from Heroicons, Beartropy SVG, FontAwesome, or Lucide.
Beartropy\Ui\Components\Icon extends BeartropyComponent.
src/Components/Icon.phpresources/views/components/icon.blade.phpresources/views/svg/beartropy-*.blade.phpconfig/beartropyui.php → icons.set, icons.variantresources/views/presets/sizes.php → iconSize keypublic function __construct(
public string $name, // Icon name (e.g. 'home', 'heroicon-s-home')
public ?string $size = null, // Size preset key (xs, sm, md, lg, xl)
public string $class = '', // Additional CSS classes
public bool $solid = false, // Force solid variant
public bool $outline = false, // Force outline variant
public ?string $set = null, // Icon set override
public ?string $variant = null, // Variant override (solid, outline)
)
Returns {allClasses, iconComponent, fa, set, variant, name, class}.
Logic:
set from prop or config (beartropyui.icons.set, default heroicons).variant: solid prop > outline prop > variant prop > config default.heroicon-o-name → outline, heroicon-s-name → solid.iconComponent string per set:
heroicon-{s|o}-{name}lucide-{name}beartropy-ui-svg::beartropy-{name}fa string instead of iconComponenticonComponent = null → renders <span class="text-red-600">?</span>if iconComponent exists:
if beartropy → [@include](https://github.com/include) (SVG partial with attributes merge)
else → <x-dynamic-component> (heroicons, lucide)
elseif fontawesome → <i class="...">
else → <span class="text-red-600">?</span>
| Attr | iconSize |
|---|---|
xs |
w-3 h-3 |
sm |
w-4 h-4 |
md |
w-5 h-5 (default) |
lg |
w-6 h-6 |
xl |
w-7 h-7 |
No color presets. Apply via Tailwind classes: class="text-red-500".
Available names: search, check, x-mark, edit, trash, eye, eye-slash, calendar, clock, clipboard, upload, spinner, paper-airplane-right, floppy-disk, sync.
{{-- Basic --}}
<x-bt-icon name="home" />
{{-- Solid variant --}}
<x-bt-icon name="home" :solid="true" />
{{-- With color and size --}}
<x-bt-icon name="heart" class="text-red-500" lg />
{{-- Beartropy set --}}
<x-bt-icon name="search" set="beartropy" />
{{-- FontAwesome --}}
<x-bt-icon name="fa-solid fa-house" set="fontawesome" />
{{-- Heroicon prefix --}}
<x-bt-icon name="heroicon-s-bell" />
How can I help you explore Laravel packages today?