Foundra changelog
-
1.0.1
StableTag pages get a Foundra template, the header menu's items line up, and the storefront overrides follow Solidshop 1.6.0's product-page switches and structured-data fixes. Requires Solidshop 1.6.0 or later — the overrides call core classes that first ship in that release; the install script refuses an older core with a plain message.
Added
- Tag pages (
com_tags, a tag's list of tagged items) have a Foundra template. They used to fall through to Joomla's Bootstrap list group, with a heading that skipped from h1 to h3 and no card; they now render the blog listing's blocks, each item as the leading-article card, so a tag page and the blog read as one surface. Joomla's behaviour is kept — the filter form and its limit box, the "no items" notice, the content-plugin hooks and the truncation limit — with three improvements: the filter form renders only when it holds a control, an unpublished item is labelled as such rather than only tinted, and the teaser is cut as plain text, so the ellipsis stays on the paragraph's last line and no stray space sits before a comma or full stop. - Product page switches. The product page templates (standard, Downloadable and Service) and the stats and share / wishlist layouts honour the new Storefront settings in Solidshop 1.6.0: the sold count, the share button and the wishlist button can each be switched off per store. When both buttons are off, the empty row they sat in is left out.
Changed
- Only one Product per product page. A Products or Recently viewed module placed below a product page no longer marks every card up as a schema.org Product of its own. Handed several candidates, a search engine declined the page's rich result; the cards now yield to the product the page is about. Listing pages and home-page strips, where each card is a product in its own right, keep their markup.
- Product cards carry an image, description and SKU in their structured data. A card used to declare a name, URL and price only, and a missing image is a critical error in Google's Rich Results Test, so every tile on a shop listing failed it. The image is the large rendition, falling back to the original when a store has no large thumbnail size.
- Checkout summary tax is worked out at the shipping address, matching what the order records, with the store's address standing in until the shopper has entered one.
Fixed
- The sold count on the product page was hard-coded English. It is now translated in all 23 locales, plural-aware, and uses the language's thousands separator.
- In the header menu, a Menu Heading or Separator parent lost its start padding and crowded the item before it. The trim that seats the chevron against the label now applies only when a link sits beside the toggle.
- In the header menu, an item with no submenu sat a pixel lower than one with a submenu — most visible in Firefox. Every top-level item now shares one baseline.
- Tag pages (
-
1.0.0
StableFirst public release of Foundra (
tpl_foundra), the Joomla 6 site template built for Solidshop. Requires Solidshop 1.5.0 or later — the release that ships the slideshow, categories, brands and recently-viewed modules the template styles, and the extension catalogue its account pages link to when an add-on is missing. Establishes the baseline that all future changelog entries are deltas against.Added
- Five storefront presets — Default, Boutique, Electronics, Marketplace and Minimal — chosen from the template style. A preset is a small stylesheet that restyles the design tokens (palette, corner radius, shadows, spacing, the product card's picture ratio); only the active preset's stylesheet is loaded, switching presets moves no module and changes no content.
- Template options: primary and accent colour (hex-validated; left at their defaults the preset's own palette applies, once changed the colour wins on every preset and the lighter and darker tints are derived from it), font family (the visitor's system font, or the bundled self-hosted Inter — no Google Fonts request), products per row (2 / 3 / 4, the preset decides when left at the default), product card style (standard, overlay, minimal), header style (standard sticky bar, centered, transparent-over-hero that turns solid on scroll), container width (1140 / 1320 / 1536 px, or fluid), logo as image or wordmark with a separate dark-mode logo, favicon, and a back-to-top button.
- Dark mode, four ways: follow the visitor's system, force light, force dark, or a sun / moon toggle in the header whose choice is remembered in the browser. Dark values are a second set of colour tokens applied on the root element, so every override, module and add-on surface follows; the dark logo follows the class and the media query alike.
- Custom code slots on their own tab — inline CSS, inline JavaScript, raw head markup, body-start and body-end markup — all stored in the style's settings, so they survive a template update.
templates/foundra/css/custom.cssandjs/custom.jsload automatically when present (a non-empty.minsibling is preferred);.diststarter files are shipped beside them. - Nineteen module positions — banner, top, header, nav, breadcrumb, fullwidth, main-top, sidebar-left, sidebar-right, content-top, content-bottom, main-bottom, footer-fullwidth, footer-1 to footer-4, footer-bottom and debug. Each renders only when it holds a published module; either sidebar switches the page to a sidebar layout, both give three columns. The
navmodule serves the header and the mobile drawer at once. - Every Solidshop storefront view has a Foundra template: product page (including the Downloadable and Service layouts the add-ons register), product listing with its toolbar, grid and pagination, cart, checkout with its empty and confirmation states, order tracking, wishlist, and all customer account pages — overview, orders, order detail, addresses, profile, wishlist, invoices, downloads, bookings, reviews and subscriptions. Where an add-on is not installed, its account page shows a short notice linking to the add-on through the extension catalogue instead of an empty table.
- Every Solidshop layout the views render through: the product card, media gallery, name, price, options, variants, quantity, custom fields, related products, share / wishlist controls, product and download stats; the mini-cart drawer; checkout and account address forms and lists; the account sidebar; the coupon form; checkout policies; promotion notices; order and line custom fields; the bank-transfer instructions; the invoice view.
- Storefront module overrides: mini-cart, products, slideshow, categories, brands, recently viewed, reviews and the language switcher — plus Joomla's breadcrumbs, pagination and Articles module.
- Three layouts of its own for the Slideshow module, listed in the module's Layout option as
foundra:split,foundra:centeredandfoundra:bannerbeside the default full-bleed hero:- Split — the picture on the inline-end half in a fixed 4:3 box, the text on a plain surface on the other half with no scrim; the two stack picture-first below the large breakpoint.
- Centered — the full-bleed photo with the text centred in a narrower measure, the dots under it and the Previous / Next arrows on either side.
- Banner — a slim strip (eyebrow, heading and button on one line) for a promotion above a listing or on a category page; one slide is a static band, several a small slideshow.
- Three layouts of its own for the Categories module, listed in its Layout option as
foundra:editorial,foundra:compactandfoundra:cardsbeside the default picture tiles. Every display option (picture, name, product count, heading level, columns, class suffix) and the accessibility contract (one link per tile, the picture's alt empty while the name is visible) hold in all three:- Editorial — the first category as a feature tile two columns wide and two rows tall, the rest packed beside and below it; the even grid again under the large breakpoint.
- Compact — a row of small round-cornered thumbnails with the name beneath and no scrim, cells capped at 7rem, for a sidebar or a thin band; a row of chips with the picture off.
- Cards — the picture in a fixed 4:3 box, the name and count on a surface panel below, bordered like the product card; for light or busy pictures that an overlaid label reads badly on.
- The rest of the site, not just the shop. Foundra's own templates for the Joomla views a storefront leans on: a single article and the category blog (
com_content), the Contact page (com_contact), sign-in, logout, registration, password reminder, every step of password reset and the profile (com_users), and the sharedjoomla.content.*layouts for images, read-more, tags and the info line. Joomla's physical image float classes map to logicalfoundra__figure--start/--end, so an article's picture sits on the reading-start side in Persian too. The blog page and the "From the blog" module render the same card. - Error and offline pages on the same tokens: the error page keeps the template's header and logo; the offline page is a single card with the logo, the offline message and the sign-in form.
- Bootstrap re-skinned, not removed. Foundra's own templates use no Bootstrap grid or physical spacing classes, but Joomla's Bootstrap stylesheet still loads for the add-ons and third-party extensions that render its classes, and that chrome — pagination, forms, alerts, tabs, plugin-rendered order sections and review / booking fragments — is retokened onto Foundra's palette in both colour schemes.
- Right-to-left by construction: logical CSS properties throughout, so margins, padding, borders and positioning flip with the text direction, and the slideshow and gallery arrows mirror with them.
- Accessibility: skip links to the content and the search, translated landmark labels, a mobile menu that traps focus while open and closes on Escape, visible focus states, and animation that stands down under
prefers-reduced-motion. - Inheritable. Joomla's Create Child Template works out of the box; a child carries only the files it overrides and reads everything else from Foundra, so a template update leaves it untouched.
- 23 locales for the template's own strings (en-GB, es-ES, fr-FR, de-DE, it-IT, pt-BR, nl-NL, ar-AA, he-IL, fa-IR, zh-CN, zh-TW, ja-JP, ko-KR, ru-RU, tr-TR, vi-VN, th-TH, id-ID, pl-PL, cs-CZ, el-GR, hi-IN).
- Installer guard and update stream. The install script refuses to install or update against a Solidshop core older than 1.5.0, or without Solidshop at all, with a plain message instead of a fatal error. Updates arrive through Joomla's extension updater from the solidshop.app update server.