# M letter swap hover 3

> Stats row — labels use center-out stagger beneath stat figures

A shadcn/ui block from the [@cnippet](https://ui.cnippet.dev/) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/cnippet/m-letter-swap-hover-3).

- Page, with a live preview: https://shadcn.exchange/r/cnippet/m-letter-swap-hover-3
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/cnippet/m-letter-swap-hover-3-light-e13b45cdf4044639.png
- Registry item: https://ui.cnippet.dev/r/m-letter-swap-hover-3.json
- Categories: letter swap hover
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://ui.cnippet.dev/r/m-letter-swap-hover-3.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/letter-swap-hover`

## Files

### `registry/default/motion-variants/m-letter-swap-hover-3.tsx`

```tsx
"use client";

import { LetterSwapHover } from "@/registry/default/motion/letter-swap-hover";

const items = [
  { count: "164", label: "Components" },
  { count: "98K", label: "Downloads" },
  { count: "4.2K", label: "Stars" },
];

export default function LetterSwapHoverStats() {
  return (
    <div className="flex min-h-50 items-center justify-center px-6">
      <div className="flex divide-x divide-border">
        {items.map((item) => (
          <div
            className="px-8 text-center first:pl-0 last:pr-0"
            key={item.label}
          >
            <p className="font-bold text-3xl text-foreground tabular-nums">
              {item.count}
            </p>
            <LetterSwapHover
              className="mt-1 cursor-default text-muted-foreground text-xs"
              label={item.label}
              staggerDuration={0.035}
              staggerFrom="center"
              transition={{ duration: 0.6, type: "spring" }}
            />
          </div>
        ))}
      </div>
    </div>
  );
}
```
