> ## Documentation Index
> Fetch the complete documentation index at: https://www.usenotra.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Media

> Frame screenshots, and embed your own videos or YouTube.

Images in posts already get rounded corners and a thin outline, and they go in `public/` with a path from the root, like `/images/editor.png`. See [Images](/docs/sites/posts#images).

## Frame

`Frame` puts a border around an image and adds a caption under it.

```mdx theme={"system"}
<Frame caption="The calendar shows every scheduled post.">
  ![Calendar view](/images/calendar.png)
</Frame>
```

<Frame caption="How it looks on your site">
  <img src="https://mintcdn.com/notra/_2RERYWY3HnUeONN/images/sites/components/media-light.webp?fit=max&auto=format&n=_2RERYWY3HnUeONN&q=85&s=0fcec8ea59d4fb3330ba36b4058ed38e" alt="A framed image with a caption on a Notra site" className="block dark:hidden" width="1824" height="1118" data-path="images/sites/components/media-light.webp" />

  <img src="https://mintcdn.com/notra/_2RERYWY3HnUeONN/images/sites/components/media-dark.webp?fit=max&auto=format&n=_2RERYWY3HnUeONN&q=85&s=135d411ddcd6d6e7c0a27d0f50ad69f6" alt="A framed image with a caption on a Notra site" className="hidden dark:block" width="1824" height="1118" data-path="images/sites/components/media-dark.webp" />
</Frame>

<ResponseField name="caption" type="string">
  Centered text under the frame.
</ResponseField>

Frames carry the class `frame`.

## Video

`Video` plays a video file from your repository or any URL, with the browser's controls.

```mdx theme={"system"}
<Video src="/videos/demo.mp4" poster="/images/demo-poster.png" title="Acme Flow in 60 seconds" />
```

<ResponseField name="src" type="string" required>
  The video file, where `.mp4` and `.webm` files in `public/` work up to 25 MB each.
</ResponseField>

<ResponseField name="poster" type="string">
  An image shown before the video plays.
</ResponseField>

<ResponseField name="title" type="string">
  A description for screen readers.
</ResponseField>

Until a reader presses play, the browser only loads the video's length and size, so set `poster` to choose what shows before that. For longer videos, use YouTube.

## YouTube

`YouTube` embeds a video from YouTube by its ID.

```mdx theme={"system"}
<YouTube id="dQw4w9WgXcQ" title="Acme Flow launch" />
```

<ResponseField name="id" type="string" required>
  The video ID, the part after `v=` in a YouTube URL.
</ResponseField>

<ResponseField name="title" type="string" default="YouTube video">
  A description for screen readers.
</ResponseField>

Notra embeds the video from `youtube-nocookie.com` in 16:9, and it loads only when a reader scrolls near it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.