First Joomla 5 native release. Quasar has been rebuilt for Joomla 5.4.10 + VirtueMart 4.8.4 + PHP 8.3 + Bootstrap 5. The Bootstrap 2 framework, the Joomla 3 class aliases and the jQuery plugin stack the previous release depended on are gone. Measured against the previous download (11.08.2025, Joomla 5.3.0 / VirtueMart 4.4.4): 35 files removed, 11 added and 60 modified, with 192 Joomla 3 static calls across 44 files reduced to 0, 55 output-escaping helper calls added where the previous release had none, and the js/ folder down from 30 files to 14.
Added
Template Options — colour pickers and a Favicon tool
All 102 colour settings now use a real colour picker with a live swatch — the largest set of any template in this range. On Joomla 5 every one of them rendered as an empty text box, so changing a colour meant knowing its hex code and typing it correctly. The donor bootstrapped the Joomla 3-era jscolor library from a <script> buried in a settings field's label attribute, which never ran under Joomla 5; it has been retired for a self-contained picker that ships with the template, so nothing is fetched from an outside site.
New Favicon tab. Upload or pick an image and the template crops it and generates the icon set for you, rather than leaving you to produce an .ico by hand. With thanks to Gianluca, whose favicon question inspired this tool.
The Options screen's own icons load again. They were fetched as Font Awesome 4.6.3 from MaxCDN, which has shut down, so that screen's icons returned a 404 on every load. They now come from the same current icon set as the front end.
A JavaScript error on the Options screen is gone. Joomla's own colour field used to pull in jQuery as a side effect; with that field replaced, older admin scripts that quietly depended on it began failing with jQuery is not defined. The template now declares that dependency itself.
The template's Details panel now follows whichever admin theme you have selected, instead of a hardcoded light treatment that was legible on Joomla's dark admin only by accident.
68 settings that were still Joomla 3-era checkboxes are now native Joomla 5 Yes/No switches.
Joomla 5.4's "What's New" tour no longer takes over the first admin visit. On a fresh install it was set to auto-start and to open at the dashboard, so every administrator link went to the dashboard instead of where you clicked.
Convenience
Show/hide control on every password field. Login, registration and account forms now have an eye icon to reveal what you have typed.
A Checkout button in the header cart panel, shown once the cart holds products. The panel previously offered only a "Show Cart" link, with no visible way to check out.
The site name / logo links to the home page by default in a fresh standalone install, and the slideshow is on and advances by itself. Both previously shipped off.
Changed
Joomla 3 → Joomla 5 API migration
192 Joomla 3 static calls removed, template-wide — now 0.JRoute (60), JText (30), JHtml (30), JFactory (20), JHTML (20), JURI (14), JModuleHelper (8), JPluginHelper (4), JComponentHelper (2), JDocumentHTML (2), JError and JDispatcher are gone in favour of the namespaced Joomla 4+ API, across index.php, component.php, error.php and the html/ overrides — 44 files in all. These aliases exist only while the Behaviour - Backward Compatibility plugin is enabled.
Error pages work again. The template's error page used the removed aliases, and when it fatals Joomla cannot render any error page — every 404 was served as a 500, with the real error never shown. It has been rebuilt on the Joomla 4+ API.
The legacy form validator is gone. The VirtueMart login override called Joomla 3's behavior.formvalidation, removed in Joomla 5, which fataled with behavior::formvalidation not found. It now uses the Joomla 5 behavior.formvalidator. With thanks to Zoltán Szász, whose report led to this fix across our templates.
Two layout tests that could never be true. The template asked Joomla whether two module positions both held modules using a Joomla 3 condition that Joomla 4 and later read as a single position name, so the test always failed and the layout it controlled never applied.
Bootstrap 2 → Bootstrap 5
The bundled Bootstrap 2 framework has been removed — eight stylesheets under css/ and css/bootstrap/ and js/bootstrap.min.js. The template now builds on the Bootstrap 5 that Joomla 5 already loads, with a compatibility layer that keeps the original design intact.
The print view, VirtueMart's pop-ups and the error page now use the same Bootstrap 5 foundation as the rest of the template. These three views still carried the original pre-Joomla-5 stylesheet stack, in some cases loading files that no longer exist. They also now load Bootstrap before the template's own styles, so they use the template's colours rather than Bootstrap blue.
The tab headings ran together — "HOT PRODUCTSFEATURED PRODUCTS..." — because the spacing between them came from a Bootstrap 2 rule with no Bootstrap 5 equivalent.
Product thumbnails were being stretched beyond their natural size, to 322px in the grid and about 460px in single-column modules against the original 300px, and the sidebar's compact list was drawing them at 90px instead of 70px.
Stylesheets
Style changes now reach visitors immediately after an update. The template's stylesheets were served with no version marker, so browsers kept showing the previously cached copy until the visitor cleared their cache by hand. Every local stylesheet and script is now stamped with its own file date.
Stylesheet requests for files that are no longer part of the template have been removed. Each returned the site's "page not found" response on every single page load.
The web font is back. An earlier step removed the Google font loader without putting anything in its place, so the template's typeface was simply absent; the font is now linked directly.
The home-page slideshow engine is unchanged in this release. Quasar's slideshow has been kept as it is, so your existing slide settings, transitions and timings continue to behave exactly as before.
Fixed
The template had lost its colours
The colour-theme stylesheet was not being loaded at all. The template picks one of six colour themes and loads it from css/presets/; that link sat immediately after a block of Internet Explorer conditional comments, and the step that removed those comments took the link with it. The theme is loaded again, so the template renders in its chosen colours.
A colour setting printed its own fallback into the page as literal text rather than applying it.
Desktop and tablet layout
Four of the template's own screen-size rules had never worked. They were written as (min-width: …) && (max-width: …), which is not valid CSS, so browsers dropped them — and from 768px to 1599px the consequences were serious: the fixed header covered the top of the page, the left category bar collapsed to 3px with its icons floating over the sidebar and covering Add to Cart, and the header's search, account, register and cart cells measured zero, so there was no cart icon at all at 1400px. All four are now valid and the header cells are sized per breakpoint.
The tablet panel openers worked again — the Quick Menu and the sidebar opener had lost the scripts behind them.
The hover-only buttons under every product were showing permanently. "Product details", "advanced" and "zoom" are meant to appear on hover; a change of wrapper element stopped two dozen of the donor's rules matching, so they sat visible under every product tile.
The login pop-up's reveal-password eye no longer paints over the field's border, and VirtueMart's cart and account "Login" button is styled like the template's own buttons.
On the login page the password field is the same width as the username — both now 60%, as the original design draws them.
Phones
Nothing in the phone header could be tapped. Two separate faults overlapped it: the page reserved no space for the fixed header, so the row of buttons sat underneath it, and the menu button was anchored inside a desktop-only hover panel that is invisible, which put it off the layout entirely. The header now has six usable buttons and the menu, the second panel and the drawer all open.
Fifty-nine invisible boxes were sitting over the page. VirtueMart's product-image links share a name with Bootstrap's dialog, so each one was being given a dialog's fixed, full-width shell — invisible, but intercepting taps across the page.
The cart button in the phone header was blank, with no basket symbol in it.
The page content ran edge to edge as the original does. The rebuilt page had gained a side margin the original never had, which narrowed the content by 40px and truncated module titles.
The product tabs read "0", "1" and "2" instead of their titles, the slideshow captions were rendering at 6.4px, and the "Useful Information" menu had disappeared.
On product cards an invisible "advanced" icon was catching taps, so tapping a product image did nothing instead of opening the product.
On phones, page titles share the template's one side margin instead of sitting further in, and the last breadcrumb no longer runs to the screen edge.
The carousel arrows sat over the module titles on small phones.
Opening a phone panel no longer dims the logo and menu button at the top of the page.
The mobile header no longer reserves an empty band above the page, the search panel no longer shows a duplicate submit button, and the cart is a proper control in the mobile toolbar.
The cart, checkout and account forms
The cart's address-edit page no longer fatals on PHP 8. The "Bill To / Ship To" step in guest checkout called count() on a value that can be empty, so editing an address during checkout produced a blank page.
The "added to your cart" pop-up is sized to read properly, with its two links as proper buttons, and fits small phones. Its "Show Cart" button also printed in black on the brand colour, and the two buttons were different widths; they now match.
The cart count no longer jumps. The count sat low inside the cart icon while the cart was empty and leapt to the top-right corner the moment something was added. It now stays in one place in both states.
The pop-up that confirms an item was added no longer opens behind the product. The product's own fly-out panel was stacked above it, and on a touch screen that panel stays open after the tap.
Product rows could collapse to a few pixels tall, letting the content below overlap the product tiles.
"Check Out Now" is coloured on phones and tablets. The button takes its colour from a hover rule, and a touch screen has no hover, so it stayed white until it was tapped.
The registration form's Username and Password fields are full height again — they were rendering at 23px against the 50px the original draws.
Registration and account forms no longer draw a line above and below every row, and the "Ask a question" pop-up's form no longer does either.
"Ask a question" opens at its full size and the form fits inside it — labels on one line, fields within the pop-up, and the Send button no longer overlapping the character count.
The My Account pop-up no longer shows a scrollbar; it was capped shorter than the form inside it.
With the "Ask a question" pop-up open, the menu button works again. The pop-up's backdrop was stacked above the menu, so the menu opened underneath it and nothing appeared to happen.
The phone menu
The first letter of every menu item was being clipped. A fixed 54px-wide column of icons was painted over the left edge of the open menu, exactly where the text starts.
The submenu buttons no longer sit hard against the right edge of the screen.
Maintenance fixes carried across our templates
The search icon rendered as a stray character and cost a failed request on every page. The stylesheet loaded an icon font from a Joomla 3 folder that no longer exists in Joomla 4 and later. The font is no longer requested and the search icon is now a self-contained image.
Pagination arrows showed as empty squares. Joomla 4 and later emit different icon names, which the template's icon styles did not map.
Tall featured articles were clipped to their title in the featured-articles view.
The search button was detached from its input box by a global button margin.
With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
Removed
The jQuery plugin stack is gone — jQuery 1.8.1 itself, together with nicescroll, slick, iscroll, dropkick (both files), selectric, equalHeights, matchHeight, backstretch, flexibility, imgSizer, modernizr, selectivizr, stellar, jQuery Mobile, superfish, supersubs and the noConflict shim. The parallax effect the stellar plugin provided is now a self-contained script with no jQuery dependency.
The Internet Explorer stylesheetsie.css, ie6.css and ie9-10.css, the conditional loads that pulled them in, and the unused css/reset.css and css/slideshow.css.
A module-styling file Joomla 5 never reads, html/modules.php, together with utils/admin-js.js.
The old jscolor colour-picker library and its image set, which never loaded under Joomla 5.
Dead settings code — a header offset computed from a setting that does not exist, which only ever produced the same fixed value.
An internal development report file that was riding inside the shipped template tree.
Security
Every template setting printed into the page is now escaped for where it lands — HTML text, attribute, CSS value, CSS url() and JavaScript string. Before this release a setting holding a quote or a fragment of markup could break out of the page. 55 escaping helper calls do that work, where the previous release had none.
The two settings that are meant to contain markup, the two header titles, are filtered through Joomla's own HTML filter instead, which still strips scripts, styles, frames and inline event handlers.
Every social link carries rel="noopener".
Five stale extension update sources have been cleaned up — two with a malformed address that broke the updater, one pointing at a retired domain, one still carrying unreplaced build placeholders, and one a duplicate.
Quickstart
Two third-party VirtueMart demo templates have been removed from the quickstart — they were not part of this product, served no purpose in a customer install, and carried broken error pages of their own, so activating either would have produced a 500 instead of an error page.
Three menu links that pointed nowhere now work — "Special Offers" opens the shop front and "Contact Us" the contact page.
"Ask a question" shows guests the question form rather than only a login form.
Article hit counters start at zero, the copyright year is current, and the administrator's post-install messages are the five Joomla intros rather than sixteen.
Package
Built against Joomla 5.4.10 and VirtueMart 4.8.4, PHP 8.3.
Ships a proper Joomla package manifest for the first time, so the template installs and updates as a package and is offered updates through Joomla's own Update Manager.
php -l clean across all 69 PHP files; xmllint clean on the manifest.