Badge
Component
Section titled “Component” Preview solid
import { Badge } from "@/components/ui/badge"
export function BadgeDemo() {return ( <div class="flex gap-2 flex-wrap"> <Badge variant="default">Default</Badge> <Badge variant="secondary">Secondary</Badge> <Badge variant="destructive">Destructive</Badge> <Badge variant="outline">Outline</Badge> </div>)}Installation
Section titled “Installation”npx shadcn@latest add https://devx-op.github.io/arkitect-ui/r/s/badge.jsonpnpm dlx shadcn@latest add https://devx-op.github.io/arkitect-ui/r/s/badge.jsonbunx shadcn@latest add https://devx-op.github.io/arkitect-ui/r/s/badge.jsonimport { cva, type VariantProps } from "class-variance-authority"import { type ComponentProps, splitProps } from "solid-js"import { cn } from "@/lib/utils"
const badgeVariants = cva( "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2", { variants: { variant: { default: "border-transparent bg-primary text-primary-foreground shadow", secondary: "border-transparent bg-secondary text-secondary-foreground", destructive: "border-transparent bg-destructive text-destructive-foreground shadow", outline: "text-foreground", }, }, defaultVariants: { variant: "default", }, },)
const badgeSizes = cva("", { variants: { size: { sm: "h-5 px-2", default: "h-6 px-2.5", lg: "h-7 px-3 text-sm", }, }, defaultVariants: { size: "default", },})
export interface BadgeProps extends ComponentProps<"span">, VariantProps<typeof badgeVariants> { size?: VariantProps<typeof badgeSizes>["size"]}
export const Badge = (props: BadgeProps) => { const [local, rest] = splitProps(props, ["class", "variant", "size"])
return ( <span class={cn(badgeVariants({ variant: local.variant }), badgeSizes({ size: local.size }), local.class)} {...rest} /> )}
export { badgeVariants }