# Reel Standard 1 - Basic media reel

> Vertical reel with image and video items, progress, and navigation.

A shadcn/ui block from the [@shadcnblocks](https://shadcnblocks.com) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/shadcnblocks/reel-reel-standard-1).

- Page, with a live preview: https://shadcn.exchange/r/shadcnblocks/reel-reel-standard-1
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/shadcnblocks/reel-reel-standard-1-light-aae4d2ccc2d8e0b8.png
- Registry item: https://shadcnblocks.com/r/reel-reel-standard-1.json
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://shadcnblocks.com/r/reel-reel-standard-1.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: `https://www.kibo-ui.com/r/reel.json`

## Files

### `example/reel/reel-standard-1.tsx`

```tsx
"use client";

import {
  Reel,
  ReelContent,
  ReelImage,
  ReelNavigation,
  ReelProgress,
  ReelVideo,
} from "@/components/kibo-ui/reel";

export const title = "Basic media reel";

const data = [
  {
    id: 1,
    type: "video" as const,
    src: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/video-1.mp4",
    duration: 8,
  },
  {
    id: 2,
    type: "image" as const,
    src: "https://deifkwefumgah.cloudfront.net/shadcnblocks/block/placeholder-1.svg",
    duration: 4,
    alt: "Still frame",
  },
];

const Example = () => (
  <Reel
    className="h-[28rem] w-full max-w-sm overflow-hidden rounded-xl border"
    data={data}
    defaultMuted
  >
    <ReelProgress />
    <ReelContent>
      {(item) =>
        item.type === "video" ? (
          <ReelVideo src={item.src} />
        ) : (
          <ReelImage
            alt={item.alt ?? ""}
            duration={item.duration}
            src={item.src}
          />
        )
      }
    </ReelContent>
    <ReelNavigation />
  </Reel>
);

export default Example;
```
