{{-- path: resources/views/components/cn-button.blade.php
Usage: Shop Now
Add to Cart
Every button on the platform should go through this component rather
than raw / tags with Bootstrap classes inlined — one place
to adjust the button system, per blueprint §11's reusable-component
principle. --}}
@props([
'variant' => 'primary', // primary | outline | ghost
'href' => null,
'type' => 'button',
'size' => 'md', // sm | md | lg
])
@php
$base = 'btn fw-medium';
$variantClass = match ($variant) {
'outline' => 'btn-outline-success',
'ghost' => 'btn-link text-decoration-none',
default => 'btn-primary',
};
$sizeClass = match ($size) {
'sm' => 'btn-sm',
'lg' => 'btn-lg px-4 py-2',
default => '',
};
$classes = trim("$base $variantClass $sizeClass");
@endphp
@if($href)
merge(['class' => $classes]) }}>
{{ $slot }}
@else
merge(['class' => $classes]) }}>
{{ $slot }}
@endif