# V frame 6

> Stats metrics display

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

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

## Install

```bash
npx shadcn@latest add https://ui.cnippet.dev/r/v-frame-6.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/frame`

## Files

### `registry/default/variants/v-frame-6.tsx`

```tsx
import {
  Frame,
  FrameDescription,
  FrameHeader,
  FramePanel,
  FrameTitle,
} from "@/registry/default/ui/frame";

const stats = [
  { label: "Total revenue", trend: "+12.5%", value: "$48,295" },
  { label: "Active users", trend: "+8.1%", value: "3,842" },
  { label: "Conversion rate", trend: "-0.4%", value: "3.6%" },
];

export function Pattern() {
  return (
    <Frame className="w-full max-w-sm">
      <FrameHeader>
        <FrameTitle>Overview</FrameTitle>
        <FrameDescription>Last 30 days</FrameDescription>
      </FrameHeader>
      {stats.map((stat) => (
        <FramePanel key={stat.label}>
          <div className="flex items-center justify-between">
            <p className="text-muted-foreground text-sm">{stat.label}</p>
            <span
              className={`font-medium text-xs ${stat.trend.startsWith("+") ? "text-success" : "text-destructive-foreground"}`}
            >
              {stat.trend}
            </span>
          </div>
          <p className="font-semibold text-xl">{stat.value}</p>
        </FramePanel>
      ))}
    </Frame>
  );
}
```
