# V badge 15

> Subscription plan tiers with pricing

A shadcn/ui block from the [@cnippet](https://ui.cnippet.dev/) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/cnippet/v-badge-15).

- Page, with a live preview: https://shadcn.exchange/r/cnippet/v-badge-15
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/cnippet/v-badge-15-light-527317f95dc522e6.png
- Registry item: https://ui.cnippet.dev/r/v-badge-15.json
- Categories: badge
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://ui.cnippet.dev/r/v-badge-15.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Dependencies

- Registry items: `@cnippet/badge`

## Files

### `registry/default/variants/v-badge-15.tsx`

```tsx
import { Badge } from "@/registry/default/ui/badge";
import { Frame, FramePanel } from "@/registry/default/ui/frame";

const tiers = [
  {
    description: "For individuals getting started",
    label: "Free",
    price: "$0/mo",
    variant: "secondary" as const,
  },
  {
    description: "For small teams and projects",
    label: "Starter",
    price: "$12/mo",
    variant: "info" as const,
  },
  {
    description: "Advanced features for growing teams",
    label: "Pro",
    price: "$49/mo",
    variant: "default" as const,
  },
  {
    description: "Custom pricing for large organisations",
    label: "Enterprise",
    price: "Custom",
    variant: "success" as const,
  },
];

export function Pattern() {
  return (
    <div className="mx-auto w-full max-w-sm">
      <Frame>
        {tiers.map((tier) => (
          <FramePanel
            className="flex items-center justify-between gap-3"
            key={tier.label}
          >
            <div className="flex items-center gap-2.5">
              <Badge size="sm" variant={tier.variant}>
                {tier.label}
              </Badge>
              <span className="text-muted-foreground text-sm">
                {tier.description}
              </span>
            </div>
            <span className="shrink-0 font-semibold text-sm">{tier.price}</span>
          </FramePanel>
        ))}
      </Frame>
    </div>
  );
}
```
