8-bit Badge
8bitcn/badgeFreeComponent
A simple 8-bit badge component
Install it
npx shadcn@latest add https://www.8bitcn.com/r/badge.jsonSource
1import { type VariantProps, cva } from "class-variance-authority";23import { cn } from "@/lib/utils";45import { Badge as ShadcnBadge } from "@/components/ui/badge";67export const badgeVariants = cva("", {8 variants: {9 font: {10 normal: "",11 retro: "retro",12 },13 variant: {14 default: "border-primary bg-primary",15 destructive: "border-destructive bg-destructive",16 outline: "border-background bg-background",17 secondary: "border-secondary bg-secondary",18 },19 },20 defaultVariants: {21 variant: "default",22 },23});2425export interface BitButtonProps26 extends React.ButtonHTMLAttributes<HTMLButtonElement>,27 VariantProps<typeof badgeVariants> {28 asChild?: boolean;29}3031function Badge({32 children,33 className = "",34 font,35 variant,36 ...props37}: BitButtonProps) {38 const color = badgeVariants({ variant, font });3940 const classes = className.split(" ");4142 // visual classes for badge and sidebars43 const visualClasses = classes.filter(44 (c) =>45 c.startsWith("bg-") ||46 c.startsWith("border-") ||47 c.startsWith("text-") ||48 c.startsWith("rounded-")49 );5051 // Container should accept all non-visual utility classes (e.g., size, spacing, layout)52 const containerClasses = classes.filter(53 (c) =>54 !(55 c.startsWith("bg-") ||56 c.startsWith("border-") ||57 c.startsWith("text-") ||58 c.startsWith("rounded-")59 )60 );6162 return (63 <div className={cn("relative inline-flex items-stretch", containerClasses)}>64 <ShadcnBadge65 {...props}66 className={cn(67 "h-full",68 "rounded-none",69 "w-full",70 font !== "normal" && "retro",71 visualClasses72 )}73 variant={variant}74 >75 {children}76 </ShadcnBadge>7778 {/* Left pixel bar */}79 <div80 className={cn(81 "-left-1.5 absolute inset-y-[4px] w-1.5",82 color,83 visualClasses84 )}85 />86 {/* Right pixel bar */}87 <div88 className={cn(89 "-right-1.5 absolute inset-y-[4px] w-1.5",90 color,91 visualClasses92 )}93 />94 </div>95 );96}9798export { Badge };
What it pulls in
Other registry items
Files it writes
More from 8bitcn
All 121 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| 8-bit Accordionaccordion | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Alertalert | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Alert Dialogalert-dialog | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Avataravatar | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Breadcrumbbreadcrumb | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Buttonbutton | 8bitcn | Components | Free | no deps · 2 files | |
| 8-bit Button Groupbutton-group | 8bitcn | Components | Free | no deps · 4 files | |
| 8-bit Calendarcalendar | 8bitcn | Components | Free | no deps · 2 files |
