# V spinner 11

> Page Transition Overlay

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

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

## Install

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

## Files

### `registry/default/variants/v-spinner-11.tsx`

```tsx
"use client";

import { useState } from "react";
import { Button } from "@/registry/default/ui/button";
import { Spinner } from "@/registry/default/ui/spinner";

export default function Particle() {
  const [loading, setLoading] = useState(false);

  function handleNavigate() {
    setLoading(true);
    setTimeout(() => setLoading(false), 2000);
  }

  return (
    <div className="relative flex h-48 w-full max-w-sm items-center justify-center overflow-hidden rounded-xl border bg-background">
      {loading && (
        <div className="absolute inset-0 z-10 flex flex-col items-center justify-center gap-3 bg-background/80 backdrop-blur-sm">
          <Spinner className="size-8 text-primary" />
          <p className="text-muted-foreground text-sm">Loading page…</p>
        </div>
      )}
      <div className="space-y-2 text-center">
        <p className="font-medium">Dashboard</p>
        <p className="text-muted-foreground text-sm">
          Click to simulate navigation
        </p>
        <Button onClick={handleNavigate} size="sm" variant="outline">
          Navigate
        </Button>
      </div>
    </div>
  );
}
```
