@props(['variant' => 'primary', 'size' => 'md', 'href' => null, 'type' => 'button']) @php $classes = match($variant) { 'secondary' => 'border border-primary text-primary hover:bg-primary/5', 'ghost' => 'text-text hover:bg-section', 'dark' => 'bg-secondary text-white hover:opacity-90', 'danger' => 'bg-danger text-white hover:opacity-90', default => 'btn-primary', }; $sizes = match($size) { 'sm' => 'px-4 py-2 text-sm', 'lg' => 'px-8 py-4 text-base', default => 'px-6 py-3 text-sm', }; $base = "inline-flex items-center justify-center rounded-full font-semibold transition-all duration-200 {$sizes} {$classes}"; @endphp @if($href) merge(['class' => $base]) }}>{{ $slot }} @else @endif