WANTED // NEXTUI
Button
Western bounty button with primary, secondary, ghost, and secondary-dark variants in three sizes. Gold accent, uppercase Rye display font, parchment textures. Renders as a Next.js Link when an href is provided.
$
Or install the base component for free:
Live Preview
Open full demoUsage
TSX
<Button variant="primary" size="md">Claim bounty</Button>Variants
<Button variant="primary">Claim bounty</Button>
<Button variant="secondary">View details</Button>
<Button variant="ghost">Dismiss</Button>
<Button variant="secondary-dark">Dark panel</Button>
<Button variant="primary" size="sm">Submit</Button>
<Button variant="primary" size="lg">Post bounty</Button>
Source
TSX
import Link from 'next/link'
import { cn } from '@/lib/utils'
interface ButtonProps {
children: React.ReactNode
variant?: 'primary' | 'secondary' | 'ghost' | 'secondary-dark'
size?: 'sm' | 'md' | 'lg'
href?: string
onClick?: () => void
type?: 'button' | 'submit'
className?: string
disabled?: boolean
}
export function Button({
children,
variant = 'primary',
size = 'md',
href,
onClick,
type = 'button',
className,
disabled,
}: ButtonProps): React.JSX.Element {
const classes = cn(
'btn',
size === 'sm' && 'btn-sm',
size === 'md' && 'btn-md',
size === 'lg' && 'btn-lg',
variant === 'primary' && 'btn-primary',
variant === 'secondary' && 'btn-secondary',
variant === 'ghost' && 'btn-ghost',
variant === 'secondary-dark' && 'btn-secondary-dark',
className,
)
if (href) {
return (
<Link href={href} className={classes}>
{children}
</Link>
)
}
return (
<button type={type} className={classes} onClick={onClick} disabled={disabled}>
{children}
</button>
)
}
Works withNext.js 15React 19Tailwind v4TypeScript 5
More from WANTED // NEXT
Badge
Severity badge with critical, high, medium, and accent variants. Uppercase labels for bounty threat levels and status indicators.
Text
Polymorphic text component with body, caption, label, and code variants. Rye for display headings, Source Serif for body copy, western parchment palette.
Card
Bounty card with tag badge, title, and description. Dark parchment surface with severity-colored badge indicators for vulnerability and threat categories.