diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a4930d..d75159f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,12 +1,15 @@ # Changelog + ## [Unreleased] -## [01.17.00] --- 2026-06-04 +## [01.17] - 2026-06-04 -## [01.16.00] --- 2026-06-04 +### Added +- Download key support (`dlid`) in module manifest for update server authentication +- Auto-remove deprecated system plugin (`plg_system_mokojoomhero`) on install/upgrade - -## [01.15.00] --- 2026-06-04 +### Fixed +- Skip overlay background on solid colour and gradient hero modes — gradient was invisible behind 50% black overlay ## [01.14] - 2026-06-04 @@ -23,3 +26,101 @@ - Restructure from package extension back to standalone site module - Remove system plugin (`plg_system_mokojoomhero`) and package wrapper - Simplify build target for module ZIP + +## [01.12] - 2026-06-04 + +### Changed +- Remove static `updates.xml` and `update.xml` from repository +- Update server now managed by Gitea release system + +## [01.11] - 2026-06-04 + +### Changed +- Clean up `updates.xml` — remove stale dev/alpha/beta/rc entries + +## [01.10] - 2026-06-04 + +### Added +- A/B testing with weighted random variation selection and session-sticky assignment (#21) +- Hero scheduling with start/end datetime fields and site timezone support (#22) + +## [01.09] - 2026-06-04 + +### Added +- Licensing system with free/pro tier constant (free tier — no key required) + +## [01.08] - 2026-06-04 + +### Added +- Solid colour and gradient hero background modes +- Configurable slide transitions: crossfade, slide, fade-to-black, zoom (Ken Burns) +- Vertical text alignment (top/center/bottom) (#53) +- Mobile-specific hero height via CSS custom property (#55) +- Gradient overlay direction (dark at bottom/top/left/right) (#54) +- Prefers-reduced-motion accessibility support (WCAG 2.1 AA) (#49) +- Scroll-down indicator with bounce animation (#50) +- Video poster image fallback (#51) +- Content entrance animations: fade-in, slide-up, slide-left, slide-right (#52) +- Parallax scroll effect with configurable speed (#48) +- Article content source — pull hero content from a Joomla article (#56) +- Per-slide unique content via subform repeatable field (#57) + +### Changed +- Restructure from standalone module to package extension with system plugin +- Hardcode package description in manifest + +### Fixed +- CSS injection prevention on `heroHeight` with regex validation +- Hex colour validation for all colour parameters +- Allowlist validation for textAlign, fadeType, overlayType +- `video.play()` promise rejection handling +- `iframe.contentWindow` null guards on postMessage calls +- `DirectoryIterator` try-catch for filesystem errors +- Article content filtered through `HTMLHelper::content.prepare` for XSS prevention +- Null guards on scroll indicator and mute toggle DOM elements +- Logging for article query, image folder, and JSON decode failures +- Plugin manifest `` folder attribute and display name +- Missing language keys in `.sys.ini` files +- SPDX license headers on all PHP files +- Consistent tab indentation throughout + +## [01.07] - 2026-06-02 + +### Added +- Package extension structure (`pkg_mokojoomhero`) +- System plugin for license key validation + +## [01.06] - 2026-05-30 + +### Added +- Deploy target in Makefile with language file sync + +## [01.05] - 2026-05-30 + +### Added +- Card fade-in delay with configurable timing +- Video mute/unmute toggle button + +## [01.04] - 2026-05-30 + +### Added +- Local video mode with Joomla Media Manager picker + +## [01.03] - 2026-05-30 + +### Added +- Video pause/resume on viewport exit via IntersectionObserver +- Module title rendered inside hero card +- WebAsset registration fix and iframe video cover + +## [01.02] - 2026-05-30 + +### Added +- Card fade-in delay and video mute toggle (#39, #40) + +## [01.01] - 2026-05-30 + +### Fixed +- WebAsset registration and iframe video cover +- Hero card title rendering +- Video viewport pause/resume diff --git a/src/tmpl/default.php b/src/tmpl/default.php index 8720a9c..5c1b96d 100644 --- a/src/tmpl/default.php +++ b/src/tmpl/default.php @@ -62,7 +62,10 @@ $overlayDirections = [ 'gradient-right' => 'to right', ]; -if ($overlayType !== 'solid' && isset($overlayDirections[$overlayType])) { +// Skip overlay on solid colour/gradient modes — background is already a controlled design choice +if ($heroMode === 'color' || $heroMode === 'gradient') { + $overlayBg = ''; +} elseif ($overlayType !== 'solid' && isset($overlayDirections[$overlayType])) { $dir = $overlayDirections[$overlayType]; $overlayBg = "background: linear-gradient($dir, $rgbaTransparent, $rgbaOpaque);"; } else {