WritedocsWritedocs

Frame

Wraps existing markup — a raw <img>, a markdown ![]() image, a <video>, an <iframe> embed, anything — in a bordered, rounded card, with an optional caption inside that same card. Unlike Image, Frame has no src/size/dark-mode props of its own; it just frames whatever you already have:

Example image
A framed image, with a caption
<Frame caption="A framed image, with a caption">
  <img src="/images/card-demo.svg" alt="Example image" />
</Frame>

Markdown image syntax works the same way, without needing a raw <img> tag:

<Frame>
  ![Example image](/images/card-demo.svg)
</Frame>

Frame props

captionstring

Omit it and the frame renders with no text underneath, just the bordered card around whatever’s inside it.