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: fixeddisplay: 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-namedata-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.

Rate this answer

Other Webflow Questions