Button
Two variants, pill geometry, and a className that can still override the base. No variant library needed.
import { cn } from '@/lib/cn'
type Props = React.ComponentProps<'button'> & {
variant?: 'solid' | 'ghost'
}
export function Button({ variant = 'solid', className, ...rest }: Props) {
return (
<button
className={cn(
'inline-flex items-center gap-2 rounded-full',
'px-5 py-3 text-sm font-medium transition-colors',
'disabled:pointer-events-none disabled:opacity-50',
variant === 'solid' && 'bg-stone-900 text-stone-50',
variant === 'ghost' && 'border border-stone-300',
className,
)}
{...rest}
/>
)
}