For Framer

Hotspot images inside your Framer site.

Drag in Framer's Embed component, paste one iframe, and your photo or diagram becomes clickable — without leaving the visual canvas.

Free forever plan · No credit card · Works in Wix, Webflow, WordPress, Shopify, Squarespace

Framer canvas with an Embed component holding an interactive image iframe
Publishing gives you one iframe snippet — paste it into any embed or HTML block.

Native Embed component

Framer's canvas already has an Embed layer built for exactly this — no code override, no plugin marketplace.

Design-first workflow

Position the Embed layer like any other Framer element, then let motion effects wrap around it.

Breakpoint-aware sizing

Set the Embed to fill and Framer's responsive engine and the image's own percentage hotspots stay aligned together.

What you get

  • No code override required — use the built-in Embed layer
  • Works inside Framer's component and page structure
  • Popups render inside the iframe, independent of Framer's motion layer
  • Percentage hotspots track Framer's responsive width changes
  • Great for portfolio case studies and product marketing pages

Where this fits in a Framer site

Framer sites tend to lean heavily on motion and layout polish, and a static screenshot in a case study or product page can feel flat next to that. An interactive image gives visitors something to do without adding custom React overrides — you keep the whole page inside Framer's visual editor. It works well for agency case studies annotating a redesign, SaaS product tours pointing at UI elements, and portfolio pieces breaking down a layout decision. Compare it with other embed approaches on the comparison page.

Framer's Embed component vs a code override

Framer gives you two ways to get an iframe onto the canvas, and the Embed component is the right one for this:

  • Embed component (recommended): A built-in layer type made for pasting HTML/iframe snippets. Drag it in from the Insert panel, paste the code, resize like any other layer. No code editor, no override file, works on the free plan.
  • Code override: A React file you attach to a layer to change its behavior. Useful if you need to swap the embed URL per CMS item or per breakpoint dynamically, but it's unnecessary overhead for a single static interactive image.

Unless you have a CMS-driven use case, skip the override and use the Embed component directly.

Sizing the Embed component so hotspots stay accurate

Framer's Embed layer takes whatever width and height you give it, and the iframe fills that box exactly:

  1. Set the layer's width to Fill so it stretches to its parent's width on every breakpoint.
  2. Leave height on Fit or paste the snippet that already wraps the iframe in an aspect-ratio box — that way height is derived from width automatically instead of a fixed pixel value that breaks on narrower screens.
  3. If you do need a fixed height (for a hero band, for example), calculate it as width ÷ aspect ratio for each breakpoint you check.
<div style="position:relative;width:100%;aspect-ratio:16/9">
  <iframe src="https://interactiveimage.com/embed/YOUR-ID"
    style="position:absolute;inset:0;width:100%;height:100%;border:0"
    scrolling="no" loading="lazy" title="Interactive image"></iframe>
</div>

What Framer's native tools can't do on their own

Framer's Link and Stack components let you make a whole image clickable, or overlay one interactive element per layer, but building several independent click targets with their own popup content on one photo means stacking many absolutely-positioned layers by hand and re-aligning them at every breakpoint. Interactive Image handles that positioning with percentages internally, so the Embed component just holds one iframe instead of a pile of layered elements. For background on the approach, see what is an interactive image.

Setup at a glance

Framer · Embed component (HTML mode)

Time
About 4 minutes
Requirement
Any Framer site plan
Component
Embed → HTML
Breakpoints
All
Code required
Paste only

Step by step

How to add an interactive image to Framer

Five steps, no developer. Everything below happens once — after that you edit hotspots in Interactive Image and your Framer page updates on its own.

  1. 01

    Upload your image

    Create the interactive image with your artwork.

    Uploading an image into the Interactive Image editor canvas
  2. 02

    Add hotspots

    Place dots, set styling, and write the popup cards.

    Placing clickable hotspot dots on an image with a popup information card
  3. 03

    Copy the snippet

    Copy the responsive iframe from the Embed panel.

    <div style="position:relative;width:100%;padding-top:56.25%">
      <iframe src="https://interactiveimage.com/embed/YOUR-ID"
        style="position:absolute;inset:0;width:100%;height:100%;border:0"
        scrolling="no" loading="lazy"></iframe>
    </div>
    The Embed panel showing the responsive iframe snippet and a copy button
  4. 04

    Insert Framer's Embed

    Add the Embed component from the insert menu, switch it to HTML, and paste the snippet. Set the layer to Fill width and Fit height.

  5. 05

    Publish

    Preview on each breakpoint and publish. The embed behaves like any other Framer layer inside stacks and grids.

    The finished interactive image running on a laptop and a phone

Troubleshooting

Fixes for the Framer issues people hit

The embed has a fixed height that ignores my layout

Set the Embed layer's width to Fill and let the padding-based wrapper in the snippet control the height instead of a hard pixel value.

Where do I choose the map type and edit a dot?

In the account dashboard, New Map offers Image map or Mapbox map. This choice is fixed after creation. For image maps, choose Upload Background Image and Add new dot; geographic maps offer address search and Import locations. Select a dot and use Content for its type, text, media, and links, Appearance for that dot, and Map settings for shared defaults. Enable embedding and copy the current snippet before publishing it on your website.

The embed looks cropped or has scrollbars

The iframe height doesn't match the image aspect ratio. Copy a fresh snippet from the Embed panel — it bakes the exact ratio into a padding-based wrapper — or set the iframe height to width ÷ aspect ratio.

Hotspots look slightly offset from the artwork

That happens when the container letterboxes the image. Interactive Image measures the rendered image box, so hotspots stay glued to the artwork — just make sure you didn't force a fixed height that differs from the image ratio.

Changes aren't showing on the live site

Save in the editor, then hard-refresh the published page. The embed always renders the latest saved version — you never need to re-paste the snippet unless the aspect ratio changed.

Guides for other platforms

The same embed works anywhere you can paste an iframe or a link.

Turn any image into a guided experience.

Free forever plan. Paste one iframe into your site and ship.

Create your interactive image