User / Level Icon
Advanced
Gear Time Icon
Webflow
Time Icon
20
 Minutes

CMS Maps

Learn how to build a clickable CMS room map in Webflow using dynamic popups, data attributes, and JavaScript. Perfect for hotels, real estate, and interactive layouts.

<script>
document.addEventListener("DOMContentLoaded", () => {

 // Handle opening
 document.querySelectorAll("[data-open-popup]").forEach(btn => {
   btn.addEventListener("click", () => {
     const id = btn.getAttribute("data-open-popup");
     const popup = document.querySelector(`[data-popup="${id}"]`);
     if (popup) {
       popup.style.display = "flex";
     }
   });
 });

 // Handle closing (optional)
 document.querySelectorAll(".popup").forEach(popup => {
   popup.addEventListener("click", e => {
     if (e.target === popup) {
       popup.style.display = "none";
     }
   });
 });

});
</script>

Copy Code

How to Build a Clickable CMS Room Map in Webflow (Interactive Floor Plan Tutorial)

Webflow makes it easy to design beautiful layouts, but creating an interactive, clickable room map powered by the CMS requires a smart combination of structure, attributes, and lightweight JavaScript.

In this tutorial, you’ll learn how to build a clickable CMS room map in Webflow where users can click rooms or hotspots on an image and open dynamic popups connected to CMS content.

This approach is perfect for hotels, real estate, venues, exhibitions, campuses, or any project that needs an interactive visual layout tied to structured data.

What Is a Clickable CMS Room Map in Webflow?

A clickable CMS room map is an interactive image (such as a floor plan or site map) where each clickable area opens detailed information pulled from the Webflow CMS.

Instead of hard-coding content, each room or hotspot:

  • Is linked to a CMS item
  • Opens a popup dynamically
  • Can be reused, filtered, and updated from the CMS

This allows designers and clients to manage room data without touching the layout or code.

Why Use the Webflow CMS for Interactive Maps?

Using the CMS for interactive maps gives you:

  • Centralised content management
  • Easy updates without redesigning the map
  • Scalable layouts for large projects
  • Clean separation between design and data
  • Better long-term maintainability

This method is far more flexible than static image links or manually duplicated popups.

How the Clickable CMS Room Map Works

The setup relies on three key parts:

  1. A visual map or image
    This can be a floor plan, illustration, or photograph.
  2. Clickable triggers
    Each room or hotspot has a unique data attribute that references a CMS item.
  3. CMS-driven popups
    Each popup is tied to a CMS item and opens dynamically when triggered.

When a user clicks a room:

  • JavaScript reads the room’s identifier
  • The matching CMS popup is displayed
  • Clicking outside the popup closes it

No page reloads, no complex frameworks, and no third-party libraries.

Step 1: Structure Your CMS Collection

Create a CMS Collection for your rooms or spaces. Typical fields include:

  • Room name
  • Description
  • Image or gallery
  • Capacity or features
  • Availability or pricing (optional)

Each CMS item will correspond to one clickable area on your map.

Step 2: Add Clickable Triggers to the Map

Place clickable elements (divs, buttons, or links) on top of your image using absolute positioning.

Each trigger needs a unique identifier, for example:

  • data-open-popup="room-101"
  • data-open-popup="suite-a"

This identifier is what connects the visual map to the CMS content.

Step 3: Build CMS-Connected Popups

For each CMS item:

  • Create a popup container
  • Assign a matching data attribute (for example data-popup="room-101")
  • Bind CMS fields inside the popup

All popups can be styled once and reused across the site.

Step 4: Use JavaScript to Handle Interactions

A lightweight script listens for clicks on the map triggers and shows the correct popup.

This approach:

  • Keeps the DOM clean
  • Avoids unnecessary page loads
  • Works reliably across browsers
  • Plays nicely with Webflow interactions

Because the logic is attribute-based, it’s scalable and CMS-friendly.

Best Use Cases for Clickable CMS Maps

This pattern works especially well for:

  • Hotel room maps
  • Real estate floor plans
  • Office or campus directories
  • Event seating maps
  • Retail store layouts
  • Museum or gallery guides

Anywhere users need to explore spaces visually, this approach improves clarity and engagement.

Performance and SEO Considerations

This method is SEO-safe because:

  • Content lives in the CMS
  • Popups are rendered on the page
  • No heavy JavaScript frameworks are used
  • Page speed remains fast

Search engines can still crawl your CMS content, even though it’s revealed interactively.

Final Thoughts

A clickable CMS room map is a powerful way to combine visual storytelling with structured content in Webflow. By using simple data attributes and a small amount of JavaScript, you can create interactive experiences that remain easy to manage and scale over time.

This pattern is especially valuable for hospitality, real estate, and venue-based projects where clarity and usability matter.

Frequently Asked Questions

Can I build a clickable room map in Webflow without custom code?

Not fully. While you can create basic interactions visually, JavaScript is required to dynamically connect map clicks to CMS-driven popups.

Can this work with CMS Collection Lists?

Yes. Both the clickable triggers and the popups can be generated from CMS Collection Lists, making the system fully dynamic.

Is this mobile-friendly?

Yes. You can reposition hotspots for different breakpoints and adjust popup layouts for mobile devices. In my tutorial you see I also use a responsive unit such as VW (Viewport Width)

Can I animate the popup opening and closing?

Yes. You can combine this setup with Webflow Interactions or CSS transitions for smooth animations.

Does this work for large maps with many rooms?

Yes. The attribute-based system scales well and keeps your layout manageable even with dozens of rooms. Just note the more "rooms" it may be hard to fit all visible on Mobile, so you will need to factor that in for consideration.
Have Any Further Questions?
I'm Always Down To Help.
Contact Me

You Might Also Like...

View All Tutorials