BOOTH // NEXTUI
Badge
Diner-styled badge with four color variants: red, teal, chrome, and ink. Suited for category labels, tags, and status indicators.
$
Or install the base component for free:
Live Preview
Open full demoUsage
TSX
<Badge variant="red">Featured</Badge>Variants
<Badge variant="red">Featured</Badge>
<Badge variant="teal">Active</Badge>
<Badge variant="chrome">Archived</Badge>
<Badge variant="ink">Default</Badge>
Source
TSX
import { cn } from '@/lib/utils'
type BadgeVariant = 'red' | 'teal' | 'chrome' | 'ink'
interface BadgeProps {
children: React.ReactNode
variant?: BadgeVariant
className?: string
}
const VARIANT_CLASS: Record<BadgeVariant, string> = {
red: 'badge--red',
teal: 'badge--teal',
chrome: 'badge--chrome',
ink: 'badge--ink',
}
export function Badge({
children,
variant = 'red',
className,
}: BadgeProps): React.JSX.Element {
return (
<span className={cn('badge', VARIANT_CLASS[variant], className)}>
{children}
</span>
)
}
Works withNext.js 15React 19Tailwind v4TypeScript 5
More from BOOTH // NEXT
Button
Retro diner button with primary, secondary, and ghost variants in three sizes. Cherry red accent, bold uppercase labels. Renders as a Next.js Link when an href is provided.
Text
Polymorphic text primitive with body, caption, label, and code variants. Renders as p, span, or div via the `as` prop.
Card
Composable card with Card, CardHeader, CardBody, and CardFooter sub-components. Warm ivory surfaces with diner-styled borders.