Badge
shadcncraft/badgeFreeComponent
Displays a badge or a component that looks like a badge.
Install it
npx shadcn@latest add https://shadcncraft.com/r/badge.jsonSource
1import * as React from "react";2import { cva, type VariantProps } from "class-variance-authority";3import { Slot } from "radix-ui";45import { cn } from "@/lib/utils";67const badgeVariants = cva(8 "group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",9 {10 variants: {11 variant: {12 default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",13 secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",14 destructive:15 "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",16 outline:17 "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",18 ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",19 link: "text-primary underline-offset-4 hover:underline",20 // Custom variants21 success:22 "bg-green-100 text-green-700 hover:bg-green-100/60 dark:bg-green-950 dark:text-green-400 dark:hover:bg-green-950/60",23 warning:24 "bg-yellow-100 text-yellow-700 hover:bg-yellow-100/60 dark:bg-yellow-950 dark:text-yellow-500 dark:hover:bg-yellow-950/60",25 },26 },27 defaultVariants: {28 variant: "default",29 },30 }31);3233function Badge({34 className,35 variant = "default",36 asChild = false,37 ...props38}: React.ComponentProps<"span"> &39 VariantProps<typeof badgeVariants> & { asChild?: boolean }) {40 const Comp = asChild ? Slot.Root : "span";4142 return (43 <Comp44 data-slot="badge"45 data-variant={variant}46 className={cn(badgeVariants({ variant }), className)}47 {...props}48 />49 );50}5152export { Badge, badgeVariants };
Files it writes
More from shadcncraft
All 26 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Avatar Stackavatar-stack | shadcncraft | Components | Free | no deps | |
| Featured Iconfeatured-icon | shadcncraft | Components | Free | no deps | |
| Image Zoomimage-zoom | shadcncraft | Components | Free | 1 dep | |
| Marqueemarquee | shadcncraft | Components | Free | no deps | |
| Page Headingpage-heading | shadcncraft | Components | Free | no deps | |
| Placeholder Logoplaceholder-logo | shadcncraft | Components | Free | no deps | |
| Profile Cardprofile-card | shadcncraft | Components | Free | no deps | |
| Section Headingsection-heading | shadcncraft | Components | Free | no deps |
