# Popup Widget

> Build a free website popup with delay, scroll or exit-intent triggers and frequency capping. Four layouts, images and buttons. Copy the embed code, no signup.

- Canonical URL: https://www.zyff.app/widget-builder/popup
- Status: working
- Price: free to build and embed, no signup, no watermark; saving a widget so it can be edited later needs an account, and the paid plans raise the saved-widget and monthly-view ceilings — see https://www.zyff.app/pricing
- Processing: runs on Zyff's servers; input is held in memory for the request and never stored

Zyff's popup widget builds a website popup you can trigger on a delay, at a scroll depth or on exit intent, and cap so one visitor never sees it twice in a row. Pick a centred modal, a slide-in corner card, a sticky bar or a full-screen takeover, add an image, a heading, a message and buttons, then copy the embed code. It runs entirely in the visitor's browser, so it costs your page nothing on load, and the output is one div and one script tag that works in WordPress, Shopify, Wix, Squarespace, Webflow or a hand-written HTML page alike.

## How to add a popup to your website

1. **Choose the trigger** — Show it after a delay, once a visitor has scrolled a share of the page, when their pointer heads for the tab bar, or immediately. Exit intent falls back to a timed trigger on touch devices, where it can never fire.
2. **Cap how often it appears** — Once per visit, once every few days, or on every page view. The first two are remembered in the visitor's own browser, so the popup does not follow them from page to page.
3. **Write it and pick a layout** — Add a heading, a message, an optional image and up to two buttons, then choose a centred modal, a slide-in corner, a sticky bar or a full-screen layout.
4. **Copy the embed code** — Paste the container div and script tag just before your closing body tag, or download the standalone HTML file. Check the 390px mobile preview before you ship it.

## Features

- **Four triggers, including exit intent**: Delay, scroll depth, exit intent or immediate. Exit intent needs a mouse, so on phones it falls back to a timed trigger instead of simply never appearing.
- **Frequency capping that actually holds**: Once per visit uses session storage and once every few days uses a dated flag, so a visitor who closes the popup is not shown it again on the next page they open.
- **Four layouts**: A centred modal over a dimmed page, a slide-in corner card that leaves the content readable, a full-width sticky bar, and a full-screen takeover for one decision.
- **Always escapable**: The Escape key closes the popup whatever else is configured, and if you switch off both the dismiss link and click-outside, the close button stays on rather than shipping a popup nobody can leave.
- **Phone-only or desktop-only**: Target one device class and the widget checks the real viewport in the browser, so a cached page still shows the right thing to each visitor.
- **Nothing to slow your page**: The whole popup runs in the visitor's browser from the settings in your snippet, so it makes no request to Zyff when your page loads, and the entrance animation respects a visitor's reduce-motion setting.

## Specifications

| Property | Value |
| --- | --- |
| Triggers | Delay 0-120s, scroll 5-95%, exit intent, or immediate |
| Frequency | Once per visit, once every 1-365 days, or every page view |
| Layouts | 4 templates: centred modal, slide-in corner, sticky bar, full screen |
| Content | Image, heading, body up to 600 characters, main button and dismiss link |
| Device targeting | All devices, mobile only, or desktop only |
| Styling | Light or dark, 5 hex colors, 6 fonts, width 260-720px, radius 0-32px |
| Output | One container div plus one script tag, or a downloadable HTML file |
| Price | Free to build; paid plans for saved widgets |

## Frequently asked questions

**How do I add a popup to my website without a plugin?**

Build it in Zyff's popup builder, then copy the generated embed code into your page — one div and one script tag. The whole flow is free with no signup, and the snippet drops into any CMS block that accepts custom code, so you do not need a WordPress plugin or a Shopify app.

**How does exit-intent detection work, and does it work on mobile?**

Exit intent watches for the pointer leaving the top of the window, toward the tab bar or the address bar. That needs a mouse, so it cannot fire on a phone. Rather than showing nothing there, Zyff's popup falls back to a timed trigger on touch devices — which matters, because mobile is usually the majority of a site's traffic.

**Will the popup keep appearing on every page?**

Not unless you choose that. Once per visit remembers the dismissal for the rest of the browsing session, and once every few days stores a dated flag in the visitor's own browser. Both are kept per widget, so two popups on one site do not suppress each other.

**Can a visitor always close the popup?**

Yes, and deliberately so. The Escape key closes it whatever the settings say, so a keyboard visitor is never trapped. If you turn off both the dismiss link and closing by clicking the background, the × button is forced back on rather than letting you ship a popup with no way out — the shape browsers and regulators both treat as a dark pattern.

**Can I show the popup only on mobile?**

Yes. Choose mobile only or desktop only, and the widget checks the real viewport width in the visitor's browser. That is the part that matters on a cached or statically generated page, where a decision baked in when the page was built would show the mobile-only popup to everyone.

**Does the popup slow my page down?**

Very little. The whole popup runs in the visitor's browser from the settings baked into your snippet, so it makes no request to Zyff at all when your page loads. You can also switch on lazy loading so it only initialises once the container is scrolled near.

**Can I collect email addresses with it?**

Not directly — this popup shows a message and links out, so the usual pattern is to point its button at your existing sign-up page or form. A popup that collected addresses itself would mean Zyff storing your visitors' personal data, which is a different product with different privacy obligations.

**Where do I paste the popup embed code?**

Just before the closing body tag, on every page you want the popup to appear on. Most site builders have a footer or custom-code field that does this for the whole site at once. Keep the container div and the script tag together.

**Is the popup widget really free?**

Yes. Building a popup, styling it and embedding it are free with no signup, no trial and no watermark — a free embed carries a small "Popup by Zyff" link, which is how the tool stays free. Every trigger and the frequency capping are free too, deliberately: charging for the setting that stops a popup nagging people would be the wrong way round. An optional account saves a widget so you can edit it later, and a paid plan adds the slide-in and full-screen layouts, full colour control and removes the attribution link.

## Related tools

- [Countdown Timer Widget](https://www.zyff.app/widget-builder/countdown-timer): Add a live countdown to a sale, launch or daily cut-off.
- [FAQ Widget](https://www.zyff.app/widget-builder/faq): A collapsible FAQ section with search, in four layouts.
- [WhatsApp Chat Widget](https://www.zyff.app/widget-builder/whatsapp-chat): A floating WhatsApp button visitors tap to message you.
- [Google Reviews Widget](https://www.zyff.app/widget-builder/google-reviews): Show your real Google reviews on your site in 6 layouts.
- [Chat Widget](https://www.zyff.app/widget-builder/chat-widget): One button that opens Telegram, Messenger, Instagram, Viber, LINE or a call.
