Products

Compatible with Joomla 5–6

NXPopup - Accessible, Cookie-Free Joomla Popup Module

A configurable, accessible Joomla popup with audience and behavior targeting, dismissal that respects the visitor, and no cookies.

Joomla Extensions v1.1.0 Joomla Module
NXPopup — product screenshot

Features

Audience Targeting

Show your popup to everyone, guests only, or logged-in users only — enforced on the server.

Exit-Intent Trigger

Catch visitors the moment their pointer heads for the tab bar, with a sensible fallback on touch devices.

Scroll-Depth Trigger

Wait until a reader is genuinely engaged and has scrolled to the depth you choose.

Page-View Gate

Leave first-time visitors alone and open only once someone has viewed a set number of pages.

Per-Path Dismissal Control

Decide which close actions actually count, so an accidental click outside never burns a ten-day window.

Cookie-Free by Design

Dismissal lives in local or session storage, so the popup adds nothing to your consent banner.

Accessible by Default

Native dialog focus trapping, Escape to close, screen-reader labeling, and reduced-motion support.

No jQuery, No Dependencies

Vanilla ES6 on the native dialog element — fast to load and free of z-index conflicts.

Full Visual Control

Colors, background image, highlighted title words, alignment, and an optional framed border.

Unlimited Campaigns

Every module instance is an independent campaign with its own targeting and dismissal state.

Mobile Ready

The card adapts to short and narrow viewports instead of clipping or overflowing.

Description

NXPopup turns any Joomla module position into a focused campaign slot. Write your headline, highlight the words that matter, pick a background and a call to action - then decide precisely who sees it and when. Announcements, seasonal offers, newsletter prompts, and product launches all run from the module manager you already know, with Joomla’s own menu assignment and publishing controls doing the scheduling.

Targeting is where NXPopup earns its place. Show a popup to everyone, guests only, or logged-in users only - decided on the server, so the markup never reaches a visitor outside your audience. Open it after a delay, once the reader has scrolled to a chosen depth, or on exit intent as the pointer leaves for the tab bar. Add a page-view threshold and first-time visitors are left alone until their third or fifth page. Dismissal is just as deliberate: choose which close paths actually count, so an accidental click outside no longer hides your campaign for ten days.

Under the hood it is built on the native HTML <dialog> element - real focus trapping, Escape to close, and top-layer rendering that never fights your template’s z-index. The JavaScript is vanilla ES6 with no jQuery and no third-party libraries, and dismissal state lives in browser storage rather than cookies, so the popup adds nothing to your consent banner. Keyboard navigation, screen-reader labelling, and prefers-reduced-motion are handled properly, not bolted on.

Versions

v1.1.0 Stable Latest
26 July 2026
Changelog
  • Added audience targeting for guests, members, or everyone.
  • Added delay, scroll, exit-intent, and page-view display options.
  • Added flexible dismissal and session-based display controls.
  • Improved accessibility, mobile layouts, and content safety.
  • Fixed popup closing, multiple-popup, and cross-tab behaviour.
PHP: 8.1 - 8.4 Joomla: 5.0 - 6.1 License: GPL-3.0+
Checksum 08e72515f599761515e2c8cc647cf2da11a0e15bfba755c7e24f2915cfc1d78b

Frequently asked questions

Does NXPopup set any cookies?
No. Dismissal state and the page-view counter are kept in the browser's own local or session storage, which is never transmitted to the server. Nothing NXPopup does needs to appear in a cookie consent banner.
Can I show a popup only to logged-in users?
Yes. The Audience setting offers Everyone, Guests only, or Logged-in users only. The check runs on the server, so visitors outside the audience never receive the popup markup at all. Leave module caching off when using anything other than Everyone, since Joomla caches module output per module rather than per visitor.
How does exit intent work on phones and tablets?
Exit intent needs a real mouse pointer leaving the top of the window, which touch devices cannot produce. Rather than never appearing, NXPopup falls back to your configured open delay on those devices, so mobile visitors still see the campaign.
Will the popup keep reappearing if someone closes it?
No. Set a dismissal period in days and it stays hidden for that long. You also control which close paths count as a dismissal — close button, Escape, CTA click, and backdrop click are each independently switchable. Backdrop click is off by default so a stray click outside doesn't hide your campaign for the full period.
Can I run more than one popup?
Yes. Each module instance is a separate campaign with its own content, targeting, triggers, and dismissal state. Duplicate the module, assign it to different menu items, and the two never interfere.
Is it accessible?
It's built on the native dialog element, which provides a genuine focus trap and Escape-to-close. Focus returns to where it was when the popup closes, keyboard users get a visible focus indicator from their first Tab press, the dialog is labelled for screen readers, and animation is disabled for visitors who prefer reduced motion.
Which Joomla and PHP versions are supported?
Joomla 5 and Joomla 6, on PHP 8.1 or newer.
Will it clash with my template?
Very unlikely. The popup renders in the browser's top layer, so it sits above everything regardless of your template's z-index or stacking contexts, and it's moved out of its module position on load so no parent container can clip it.

Resources

Product details

Requirements

PHP
8.1 - 8.4
Joomla
5.0 - 6.1

Statistics

Total Downloads
4
Type
Joomla Module
Category
Joomla Extensions
Created
26 July 2026
Updated
26 July 2026

NexusPlugins

Tools built in the trenches. We develop the extensions we needed for our own projects, now refined for yours.