Badge
optics/badgeFreeComponent
Displays a badge or a component that looks like a badge.
See it running
Open the demo on optics
optics.agusmayol.com.ar/components/badgeInstall it
npx shadcn@latest add https://optics.agusmayol.com.ar/r/badge.jsonSource
1import { mergeProps } from "@base-ui/react/merge-props";2import { useRender } from "@base-ui/react/use-render";3import { cva } from "class-variance-authority";45import { cn } from "@/lib/utils";67const badgeVariants = cva(8 "h-5 gap-1 rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium transition-all has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&>svg]:size-2.5! inline-flex items-center justify-center w-fit whitespace-nowrap shrink-0 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-colors overflow-hidden group/badge",9 {10 variants: {11 variant: {12 default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",13 secondary:14 "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",15 destructive:16 "bg-destructive/10 [a]:hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive dark:bg-destructive/20",17 outline:18 "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground bg-input/20 dark:bg-input/30",19 ghost:20 "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",21 link: "text-primary underline-offset-4 hover:underline",22 },23 },24 defaultVariants: {25 variant: "default",26 },27 },28);2930function Badge({31 className = "",32 variant = "default",33 render = undefined,34 ...props35}) {36 return useRender({37 defaultTagName: "span",38 props: mergeProps(39 {40 className: cn(badgeVariants({ className, variant })),41 },42 props,43 ),44 render,45 state: {46 slot: "badge",47 variant,48 },49 });50}5152Badge.displayName = "Badge";5354export { Badge, badgeVariants };
What it pulls in
npm packages
Other registry items
Files it writes
More from optics
All 79 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | optics | Components | Free | 5 deps | |
| Alertalert | optics | Components | Free | 4 deps | |
| Alert Dialogalert-dialog | optics | Components | Free | 4 deps | |
| Aspect Ratioaspect-ratio | optics | Components | Free | 2 deps | |
| Auto Heightauto-height | optics | Components | Free | 3 deps | |
| Avataravatar | optics | Components | Free | 3 deps | |
| Breadcrumbbreadcrumb | optics | Components | Free | 4 deps | |
| Buttonbutton | optics | Components | Free | 4 deps |
