StudioNope Themes Get the module →
HubSpot CMS module

Popup & Modal Pro

Modals, split offers, full-screen launches, corner slide-ins, bars, drawers and video lightboxes. Open them with a click, a delay, a scroll, an exit, a quiet minute or a link from your email, and choose how often each one shows and to whom. Every colour, size and word is a field.

Get the module See it live ↓

Demo 1

The bar at the top of this page

A top bar in push mode. Three seconds after the page loads it slides in above the header and moves the page down once, so nothing is covered. It has no overlay and does not take focus, so you can keep reading with it open. Close it and it stays closed until the next page view.

Show the bar again

Opens by itself 3 seconds after load.


Demo 2

A newsletter sign-up when you go to leave

A centred modal with an image on top, an email field and a No thanks link. On a computer it opens when the pointer leaves through the top of the window. On a phone it opens on a fast scroll back up. It shows once per visit and three times in total, and never again after you subscribe. On a phone it becomes a sheet from the bottom of the screen.

Also opens when you move the pointer out of the top of the window, once per visit.


Demo 3

A linen offer with a code and a deadline

A split popup, image on the left. The code copies with one click and the countdown runs to the end of the offer. It opens when a new visitor has read 30% of the page, or straight away when the page is opened with ?offer=autumn in the address, the way a link in an email or an ad would open it. It shows once every seven days.

Open the offer Open this page with ?offer=autumn

Also opens at 30% scroll, for new visitors, once a week.


Demo 4

A recorded webinar that plays over the page

A video lightbox. The poster below is an ordinary image on the page. The popup listens for clicks on anything matching .demo-webinar-card, so the poster opens it, and so does the link in this sentence. The player grows out of whatever you clicked and stops the sound when it closes.

Click only. This popup never opens by itself.


Demo 5

A demo request from a button

The popup draws its own button. It sits wherever you drop the module, in the button style you choose, and opens a split popup with the image on the right and a form. This one uses the default colours: nothing in the Style tab has been changed. Once someone sends the form, the popup stops opening for them by itself. On a phone it opens as a sheet.

No automatic trigger. The button is the module's own.


Demo 6

What's new, in a drawer

A side drawer from the right, opened by an outline button with a count on it. The header and footer stay put while the body scrolls, so a long changelog still reads well. The entries are one rich text field: headings, paragraphs, images and a tag before each heading.

No automatic trigger.


Demo 7

A question box that arrives with its section

A slide-in from the bottom-right corner. It opens once this section scrolls into view, and the page stays usable around it: no overlay, no locked scroll, and focus stays where you are. On a phone it docks along the bottom edge. It stops opening by itself once a question has been sent.

Show the slide-in

Opens by itself when this section comes into view, once per visit.


Demo 8

A launch-week sale that takes the whole screen

A full-screen takeover for a launch-week sale: the offer, a code to copy, a countdown and one button, with the page frosted behind it. It opens from a link to #launch-week, which works from anywhere on the page, from another page, or from an email. The close button names itself and the Esc key, and a plain link under the button takes people straight to the site.

Open the sale

Click or link only. A full-screen popup that opens by itself is hard to forgive.


Demo 9

A pricing sheet for someone who has stopped scrolling

A bottom bar with an email field built in. It opens after 20 seconds without a scroll, click or key press, or after 90 seconds on the page, whichever comes first. It opens by itself on computers only. A phone gets the button, because a bar with a keyboard over it leaves little room to read. It shows at most twice.

Show the bottom bar

Opens by itself after 20 seconds idle, on a computer.


End-of-year campaigns

The same module, from November to January

Q4 set up for shops and for software teams alike: a Black Friday code that copies in one click, a Cyber Monday code that appears once someone subscribes, a last-order date for Christmas delivery, support hours over the holidays and a New Year offer. Each one opens from its button here, so you can see them without waiting for a trigger.

Demo 10 · Black Friday

A Black Friday code for someone on their way out

A centered modal with a code to copy and a countdown to the end of the sale on December 1. It opens on exit intent from the second page of a visit, so a first-time reader meets the newsletter in Demo 2 first. It shows once per visit, and copying the code counts as a conversion, so it stops opening by itself after that. When the countdown reaches zero, a line saying the sale has ended takes its place.

Open the Black Friday offer

Also opens on exit intent from the second page of a visit, once per visit.


Demo 11 · Cyber Monday

A Cyber Monday code that appears after sign-up

A centered modal with a HubSpot form. The code stays hidden behind a line that says how to get it. Subscribe, and the code appears in its place with a Copy button and a thank-you of the popup's own. It also opens straight away when the page is opened with ?sale=cyber-monday in the address, the way a link in a Cyber Monday email would open it.

Open the Cyber Monday offer Open this page with ?sale=cyber-monday

Click or link only. The form is real, so any address you send goes into this site's HubSpot.


Demo 12 · Christmas

A last-order date for Christmas delivery

A bottom bar with a countdown to the last day to order for delivery before Christmas, and one button. It sits over the page without an overlay, so the shop stays usable around it. When the countdown runs out, the bar swaps it for a line about gift cards, so the same popup keeps working until it comes down after the holidays.

Show the Christmas bar

Click or link only.


Demo 13 · Holiday support hours

Holiday support hours for a software team

A slide-in from the top-right corner for a payroll product. The hours sit in the rich text field as a short list, and two buttons follow: one books a year-end check-in, the other closes the note. There is no overlay and it does not take focus when it opens, so customers can keep working with it on screen.

Show the support hours

Click or link only.


Demo 14 · New Year

A New Year membership offer in the corner

A slide-in from the bottom-left corner with an inline countdown to the end of the offer on January 15. There is no overlay and the page keeps scrolling, so it reads as a note beside the content. The same countdown runs to a date here and to a number of hours after the first view in Demo 8.

Show the New Year offer

Click or link only.

What it is

One module that is one popup. Drop it anywhere in a drag-and-drop area and it shows where you put it only as an optional button; the popup itself opens over the page when one of its triggers fires. Put several on a page, or in a global group on every page, and they share one queue, so a visitor only ever sees one at a time.

Set it up

  1. Drop it in. Drag Popup & Modal Pro into a drag-and-drop area on a site page, landing page or blog template. Published with no edits, it already works: a Get 15% off button where it sits, and a centred offer with a code that opens eight seconds after the page loads, once per visit.
  2. Popup ID. Under Popup, give it a short name of its own, such as spring-offer. Links to #spring-offer open it, and visitors' counts are kept under it. Every popup on the site needs its own.
  3. Layout. Still under Popup. Pick it early: it decides which of the other fields appear.
  4. Content. The eyebrow, heading and text, and an icon, image or video. Then something to act on: a form, up to two buttons, or a coupon with an optional countdown.
  5. When it opens. Under Triggers, clicks and links are on already, and so is the eight-second delay. Switch the delay off for a popup that should only open when asked.
  6. How often. Frequency and targeting sets how often the automatic triggers may open it, on which devices and for which visitors.
  7. Trigger button. Keep it where the module sits, float it in a corner, or switch it off when your own links open the popup.
  8. Style. Set Colours → Accent first, then the group for your layout, then work down the Style tab.

The popup shows open in the page editor, so you see every change as you make it. To test the automatic triggers after publishing, use a private window: once it has shown, it remembers.

Layouts

LayoutWhat it is for
Centred modalAn offer, a sign-up or a notice in the middle of the screen, with an optional image on top
SplitImage on one side, content on the other. Left or right
Full-screen takeoverA launch or an announcement that owns the screen, image beside, below or behind the text
Corner slide-inA small panel in any corner. The page stays usable around it
Top barA line of news across the top. It can sit over the page or push it down
Bottom barThe same along the bottom edge, with room for a code, a countdown, a button or one form field
Side drawerA tall panel from the left or right, with a header and footer that stay put
Video lightboxYouTube, Vimeo, HubSpot video or an MP4 file over a dark overlay

On phones the modal, the split and the drawer can become a sheet from the bottom of the screen that the visitor can drag down to close, stay as they are, or fill the screen. The breakpoint is a field.

Triggers

Switch on as many as you like. The first one to fire opens the popup, and the rest wait for the next page view.

How often, and to whom

These rules apply to the automatic triggers. A click or a link always opens the popup, whatever the limits say, because the visitor asked for it.

Counts are kept in the visitor's browser under the Popup ID, so the same popup placed on many pages shares its counts. Give every popup on your site its own ID. No cookies are set.

Content

From top to bottom: an icon, an image or a video; an eyebrow with an optional icon; the heading; rich text; a countdown; a coupon code with a Copy button; a HubSpot form; up to two buttons; small print; a “Don't show this again” checkbox; and a No thanks link. Each part shows only when it has something in it. A button can go to a link, close the popup or copy the code. The slide-in can show up to three sets of initials and a status line above the heading.

The countdown runs to a date and time, or to a number of hours after each visitor first sees the popup. When it reaches zero it can hide itself, show an “offer ended” line, or stop the popup opening by itself.

Forms

Pick any HubSpot form. Forms from the legacy form editor render inside the popup and take its styling: labels, fields, errors, the submit button and the consent text all follow the Form group on the Style tab. Forms from the new form editor render in HubSpot's own frame, which a page's styles cannot reach, so they keep the look set in the form editor.

After a submit the popup can stay open or close after a few seconds. The thank-you can be the form's own message or redirect, or a heading and text of your own with a tick. A coupon can stay hidden until the form is sent.

Closing and accessibility

A close button, the Esc key, a click on the overlay, a No thanks link, a “Don't show this again” checkbox, or closing by itself after some seconds, paused while the pointer is over it or focus is inside it. Esc always works.

Modal layouts use the browser's own dialog: the page behind is out of reach for the keyboard and screen readers, Tab stays inside, the page does not scroll, and focus returns to whatever opened the popup. Slide-ins and bars leave the page usable and do not take focus when they open by themselves; screen readers hear the heading once. Visitors who ask their device for reduced motion get a quick fade and no autoplaying video.

One at a time

Only one popup is ever on screen. When a second one's trigger fires while another is open, it waits in a queue ordered by each popup's Priority and opens shortly after the first one closes, if its rules still allow it. A click on another popup's link closes the open one and opens the new one straight away. On this page the top bar counts too: close it and the others can arrive.

In the page editor

The popup renders in place, open, inside a dashed frame, so you can click into every field. A line above it names the layout, the triggers and the frequency. Nothing opens by itself in the editor, nothing covers it and the page never stops scrolling. Notes appear there, and only there, when something needs attention: nothing to show, a video that is missing, a button without a link, a click selector that is not valid, or a Popup ID used twice on the page.

Tracking

With the dataLayer switch on, the module pushes an event when a popup shows, converts and closes, for Google Tag Manager to pick up. The event names are fields.

window.dataLayer.push({
  event: 'popup_show',        // popup_convert, popup_close
  popup_id: 'linen-offer',
  popup_layout: 'split',
  popup_trigger: 'scroll',    // hash, selector, button, url, delay, engaged, exit, inactivity, api
  popup_method: 'esc',        // on close: button, esc, overlay, auto, dismiss_link, button_close, after_submit, replaced
  popup_conversion: 'form'    // on convert: form, button, coupon_copy
});

The same details go out as popupmodalpro:show, popupmodalpro:convert and popupmodalpro:close events on the document. A developer can open and close popups with PopupModalPro.open('linen-offer') and PopupModalPro.close().

Style

Every colour, size, spacing, border, radius, shadow and duration is a field on the Style tab, in this order: Typography, Eyebrow, Colours, Overlay, Popup box, a group for each layout, Phones, Close button, Esc key, Buttons, Form, Coupon, Countdown, the No thanks link, the Trigger button, Motion, Layering and the page editor preview. Many fields start empty and follow another value, such as small buttons following the button height; each one's note says what it follows. The accent colour, the fonts and the link colour follow your theme until you change them.

Every word the module prints that isn't your content, such as Copy, Copied, the countdown units and the close button's name for screen readers, is under Content → Words, so the popup can be translated in full. A word you clear is left out. With the grow setting on, a popup opened by a click grows out of the button or link that opened it and shrinks back into it.

Troubleshooting

Notes on this page

Every demo above is an instance of the module on the same container as its text. Foundry Row, Halden, Hollis & Pine, Planyard, Brightwork, Flagpost, Kestrel, Marram, Ledgerline, Alder & Finch, Corvid Audio, Fernhill Candle Co., Tallyhouse and Loma Pilates are made up for the demo, and so are their pictures. The forms are real HubSpot forms on this site. The webinar video is a public tutorial on YouTube standing in for a recorded session. No CSS on this page touches the module.

The automatic triggers remember that you have seen them. to see them fire again.