- .container-nav a now uses --mainmenu-nav-link-color so all links
in the navigation area match the navbar color scheme.
- Blog items use flex: 1 + height: 100% so cards in the same row
are equal height. Read more button pinned to bottom via
margin-top: auto.
- #system-message-container:empty hides the Joomla message wrapper
when no messages are present, removing empty whitespace.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Simplify Font Awesome loading to scan three candidate paths for
all.css, register whichever exists via WebAssetManager, then call
useStyle(). Falls back to joomla.asset.json registry if no local
file found. Covers both standard Joomla media path and SFTP
deploy layout.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the partial 10-icon mapping with a comprehensive layer
that covers 80+ Joomla IcoMoon icon-* classes. All icon-* prefixed
elements now render using Font Awesome 7 Free glyphs via ::before
pseudo-elements with the correct font-family, weight, and
smoothing. Covers navigation, actions, objects, status, media,
layout, and publishing icons.
Also fix back-to-top icon in error.php (icon-arrow-up → fa-solid
fa-arrow-up).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Main menu links in the header now explicitly use
--mainmenu-nav-link-color via .container-header .nav-link
selector, preventing the generic --nav-link-color from bleeding
through when variables resolve to the body link color.
Back-to-top link:
- Switch icon from IcoMoon (icon-arrow-up) to Font Awesome
(fa-solid fa-arrow-up) for consistency with the rest of the
template.
- Add id="top" to the header element so the href="#top" fallback
works even when JavaScript is disabled.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Font Awesome CSS was not loading because the asset path
(media/templates/site/mokocassiopeia/) doesn't exist when
deployed via SFTP to the template directory. Now checks the
file system for both the standard Joomla media path and the
SFTP-deployed template-relative path before falling back to
the asset registry.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Bump a11y toolbar bottom from 3.5rem to 5rem when theme FAB is
present, ensuring the toggle button clears the FAB completely.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Create default.php for mod_menu with showtitle support, suitable
for sidebar and footer menu modules (simple nav list, not navbar).
- Fix accessibility toolbar overlapping theme FAB by stacking the
a11y toggle above the FAB instead of beside it.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New overrides: mod_articles_archive, mod_articles_categories,
mod_banners, mod_languages, mod_random_image, mod_syndicate.
Fix mod_stats: replace right-aligned badge layout with definition
list (dl/dt/dd) for natural left-aligned display of stat labels
and values. Add CSS for the stats definition list.
All standard Joomla 5 site modules now have template overrides
with showtitle support and BEM-style class names.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New module overrides with showtitle support:
- mod_stats, mod_feed, mod_wrapper, mod_whosonline, mod_users_latest
Footer CSS:
- Each footer module now stacks full-width (flex-direction: column)
- Remove hardcoded padding-right: 300px inline style
- Dynamic footer padding-right based on theme FAB and a11y toolbar
Accessibility toolbar positioning:
- Toolbar now sits to the right of the theme FAB (bottom-right area)
- Shifts automatically when theme FAB is enabled via CSS attribute
selectors on body data attributes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move data-toc-scope from outer column to .article-content div so
the TOC only sees headings inside the article body, ignoring page
headers and article titles.
- Pass $scope explicitly in the JS auto-init so headings outside the
article content are never picked up.
- Replace hardcoded article title in TOC heading with a
TPL_MOKOCASSIOPEIA_TOC_TITLE language string ("Table of Contents").
- Add Text use statement to both toc-left.php and toc-right.php.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Development mode now activates automatically when Joomla global
debug is enabled, so admins don't need to toggle both settings.
- Bootstrap TOC now detects the highest heading level present (even
if only one exists) and includes up to two levels below it
(e.g. h2 → h2, h3, h4). Fixes incorrect top-level detection and
adds proper three-level nesting support.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add update-safe note to light and dark custom palette descriptions
in both en-US and en-GB language files, matching the existing
user.css/user.js messaging.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a floating accessibility toolbar to the template with individually
enable/disable options: text resize, color inversion, high contrast,
highlight links, readable font, and pause animations. Each option has
an admin toggle in the Theme tab and persists visitor preferences in
localStorage. Also fixes count() on null in mod_login override.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
.container-header had position:relative which overrode .sticky-top's
position:sticky due to CSS source order (container-header appeared
later). Removed the conflicting rule. Added .container-header.sticky-top
with z-index:1020 to keep header above all content. Mobile media query
now only disables sticky when the sticky class is present.
Fixes#115
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Load only all.css (or all.min.css) instead of 5 redundant files
- Trim fA6KitCode to prevent whitespace from triggering CDN path
- Remove nested try/catch with 10 fallback registrations
- Single clean try/catch with one dynamic fallback
- all.css already bundles brands + solid + regular + fontawesome
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mod_finder:
- Use correct language keys (MOD_FINDER_SEARCH_VALUE, JSEARCH_FILTER_SUBMIT)
- Use $app (available from module dispatcher) instead of Factory
- Load com_finder.finder script and awesomplete preset
- Add show_label, show_button, show_advanced support from core
- Register com_finder extension assets
- Use $route from module dispatcher (not hardcoded)
mod_footer:
- Use $lineone variable from module helper (not $module->content)
- Add MOD_FOOTER_LINE2 language string output
- mod_footer generates its own content, it's not a custom HTML module
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added explicit language loading for overrides that use Text::_():
- mod_breadcrumbs: loads mod_breadcrumbs language
- mod_login: loads mod_login language
- mod_finder: loads mod_finder + com_finder language
- mod_articles_category: loads mod_articles_category language
Without this, language strings could show as raw keys when the
module chrome doesn't preload the language file.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- helper/minify.php: PHP-based CSS/JS minifier with timestamp caching
- Dev mode ON: deletes all .min.css and .min.js files
- Dev mode OFF: regenerates .min files from source if stale or missing
- Covers template.css, light/dark standard/custom theme CSS, template.js
- No external build tools needed — template is self-contained
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- When dev mode OFF (default): loads template.min.css,
template.min.js, minified theme CSS, and minified FA7
- When dev mode ON: loads unminified sources for debugging
- Uncommented developmentmode field in templateDetails.xml
with default set to 0 (off) for production use
- Updated language strings to describe minification behavior
- Resolved hero-card-max-width to 800px
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The vendor/ rule was causing the deploy workflow to skip all files
under media/vendor/ (FA7, bootstrap-toc) because the deployed path
no longer has the src/ prefix. This repo has no Composer vendor
directory, so the rule is unnecessary.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Both positions already existed but rendered unconditionally.
Now wrapped with $this->countModules() checks so the containing
<div> only renders when modules are assigned to the position.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rewrote .gitignore: removed ~700 lines of Joomla CMS core paths,
Dolibarr entries, and other framework-specific rules not applicable
to a template repository. Kept only relevant rules.
- Added Usage section to README.md (required by MokoStandards)
- Added changelog entry for all work in this development cycle
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New default.php overrides for 11 Joomla core modules:
- mod_custom (default + updated hero layout)
- mod_articles_latest, mod_articles_popular, mod_articles_news
- mod_articles_category, mod_breadcrumbs, mod_footer
- mod_login (BS5 form with FA7 icons), mod_finder (BS5 search)
- mod_tags_popular (badge layout), mod_tags_similar, mod_related_items
All overrides consistently respect:
- $module->showtitle — renders title only when enabled
- header_tag param — configurable heading level (h1-h6)
- header_class param — custom CSS class on the title
- moduleclass_sfx — custom suffix class on the wrapper
CSS additions in template.css:
- Shared __title styles for all module headings
- List styling for article/tag/related modules
- Newsflash card layout, tag badges, search form, login form
- Breadcrumb and footer module styling
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New "Favicon" tab in template config with media picker for PNG upload
- helper/favicon.php generates all standard sizes from source PNG using GD:
- favicon.ico (16x16 + 32x32 embedded)
- apple-touch-icon.png (180x180)
- favicon-32x32.png, favicon-16x16.png
- android-chrome-192x192.png, android-chrome-512x512.png
- site.webmanifest for PWA icon discovery
- Generated files cached in images/favicons/ with timestamp checking
- Link tags auto-injected in <head> when favicon source is configured
- Language strings added for en-GB and en-US
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Hero card fully variable-driven: --hero-card-bg/color/overlay/border-radius/padding/max-width
- Alternative hero variant: --hero-alt-card-* for secondary theme
- Overlay bg-position and bg-size now customizable via variables
- Mobile breakpoint: photo bg hidden, hero full-bleed on small screens
- Added fallback values to 1365 var() calls in template.css
- .btn --btn-bg changed from transparent to var(--body-bg) in dark/light themes
- .offcanvas-header .btn-close gets background-color from overlay
- Stripped file info headers (@package/DEFGROUP/VERSION) from 48 files, kept copyright/SPDX
- Synced all theme variables across standard and custom templates
- Removed 26 mobile.php layout overrides
- Added *.py to .gitignore, card-border-radius fallback
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>