NXPopup
Introduction
NXPopup is a Joomla site module that displays a configurable popup dialog. It is built on the native HTML dialog element, uses vanilla ES6 with no jQuery or third-party libraries, and stores its dismissal state in browser storage rather than cookies.
Each published module instance is an independent campaign with its own content, targeting rules, open trigger and dismissal state, so several popups can run on one site without interfering with each other. Joomla's standard menu assignment, publishing and access controls apply as usual.
## Display targeting
- Audience — show the popup to everyone, to guests only, or to logged-in users only. The check runs on the server, so the popup markup is not sent to visitors outside the selected audience.
- Open trigger — open after a configurable delay, after the visitor scrolls to a chosen depth, or on exit intent when the pointer leaves the top of the window. Exit intent falls back to the configured delay on touch devices, which have no pointer.
Page-view threshold — skip the popup until the visitor has viewed a set number of pages. Combines with any of the open triggers.
Dismissal
Set a dismissal period in days, after which the popup may appear again. A value of 0 shows it on every page load.
- Choose independently whether the close button, the Escape key, a backdrop click, or a click on the call-to-action records a dismissal. Backdrop click is off by default, so an accidental click outside the popup does not hide it for the whole dismissal period.
- Store the dismissal flag and page-view count in
localStorage(persists across visits) orsessionStorage(cleared when the tab closes). No cookies are set, and nothing is sent to the server. An optional storage key suffix lets you reset the dismissal state for all visitors when you change a campaign.
Content and appearance
Popup title with support for highlighted words in a configurable color. - Rich text body, edited with your site's default editor and filtered through Joomla's per-group Text Filters on save.
- Independent horizontal alignment for the title and the body content.
- Background color, background image with position and size options, and an optional framed border.
Call-to-action button with configurable text, URL, link target, and background, text and border colours. Links opened in a new tab automatically receive
rel="noopener noreferrer".Accessibility
The native
dialogelement provides a real focus trap, Escape-to-close and top-layer rendering, so the popup is not affected by template stacking contexts.- Focus is restored to the previously focused element when the popup closes.
- Keyboard users receive a visible focus indicator from the first Tab press.
- The dialog is labelled for screen readers, with a fallback accessible name when no visible title is configured.
Animation is disabled for visitors who have set
prefers-reduced-motion.Technical notes
Joomla 5 and Joomla 6.
- PHP 8.1 or newer.
- No jQuery and no external scripts or fonts.
- Standard module layout override support and module class suffix.
English (en-GB) language files included; all interface strings are translatable.
Requirements
Joomla 5.0 or later, PHP 8.1 or later, and a browser supporting the HTML
dialogelement (Chrome/Edge 37+, Firefox 98+, Safari 15.4+).What's new in 1.1.0 - July 26, 2026
- 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.
NXPopup
- Version:
- 1.1.0
- Developer:
- Zoran Tanevski
- Last updated:
-
Jul 28 2026
1 day ago - Date added:
- Jul 26 2026
- License:
- GPLv2 or later
- Type:
- Free download
- Includes:
- m
- Compatibility:
- J5 J6
Share