Webflow answer

How can I make my CMS Сollections in Webflow open a popup to view details instead of loading a separate page? I have been unable to find a solution.

TL;DR

  • Create a hidden modal outside the Collection List and style it as a popup.  
  • Add trigger elements inside each CMS Collection item and use custom attributes or hidden fields to pass data.  
  • Use Webflow Interactions to open the modal on click and custom JavaScript to populate modal content dynamically.  
  • Include a close interaction to hide the modal, or use Finsweet Attributes for a low-code alternative.

To display CMS Collection item details in a popup instead of navigating to a separate page, you need to use a combination of Collection Lists, Interactions, and a hidden detail modal inside the same page. Here's how to set it up.

1. Set Up Your CMS Collection List

  • Add a Collection List to your page and connect it to your desired CMS Collection.
  • Inside each item, include a summary preview (e.g., thumbnail, title).
  • Add a button or div that users will click to open the popup.

2. Design the Popup Modal

  • Create a div block outside the Collection List. This will serve as your popup/modal container.
  • Set this modal to position: fixed, display: none, and z-index: high. Apply a background overlay if needed.
  • Inside this modal, add text/image blocks with static elements that will get filled dynamically via CMS data using Webflow's Interactions.
  • Include a close button and style as desired.

3. Add CMS Fields Using Custom Attributes or Embed

Webflow doesn't allow binding dynamic CMS content into a popup that's outside the Collection List by default. You can work around this by:

  • Adding custom attributes (like data-name, data-description, etc.) to the popup trigger inside the Collection item.
  • Alternatively, place hidden text elements inside each CMS item that store the extra info (e.g., description, image URL).

4. Use Webflow Interactions to Open and Populate Modal

  • Add a Click interaction to the popup trigger element inside the CMS item.
  • In the interaction:
  • Set display: flex/block on the modal container.
  • Use Element trigger animations (Interaction → Mouse click (tap)).
  • To populate the modal:
  • You need to use custom JavaScript because Webflow interactions alone can’t dynamically move CMS data into a separate modal. For example:
    • On popup trigger click, use JavaScript to fetch the data-* attributes from the clicked item.
    • Then inject those values into the modal content fields (e.g., modal title, body, image src).

5. Add a Close Interaction

  • Add another interaction to the close button inside your modal to:
  • Hide the modal container (set display: none).
  • Optionally reset any fields or styles.

6. Optional – Use Finsweet Attributes (No-Code/Low-Code Option)

  • If you want a no-code route, check Finsweet’s CMS Load and CMS Filter tools.
  • You can dynamically display details in a modal using Finsweet Attributes with minimal code, and they offer documentation for creating dynamic modals from CMS items.

Summary

To open CMS Collection details in a popup instead of a new page, design a separate hidden modal on the same page, trigger it via a CMS-linked button using Webflow Interactions, and pass data from the clicked item using custom attributes or JavaScript. For an easier alternative, consider Finsweet’s Attributes tools.

Other Webflow questions