feat(template): header background opacity + position theming; remove unused codeception.yml #170

Closed
jmiller wants to merge 7 commits from chore/cascade-main-to-dev into dev
15 changed files with 291 additions and 56 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
# FILE INFORMATION
# DEFGROUP: MokoGIT.Workflow
# INGROUP: MokoCLI.Automation
# VERSION: 02.29.11
# VERSION: 02.30.04
# BRIEF: Auto-create feature branch when an issue is opened
name: "Universal: Issue Branch"
+5 -2
View File
@@ -8,23 +8,26 @@
DEFGROUP: Joomla.Template.Site
INGROUP: MokoOnyx.Documentation
PATH: ./CHANGELOG.md
VERSION: 02.29.11
VERSION: 02.30.04
BRIEF: Changelog file documenting version history of MokoOnyx
-->
# Changelog — MokoOnyx (VERSION: 02.29.11)
# Changelog — MokoOnyx (VERSION: 02.30.04)
## [Unreleased]
### Added
- Accessible GDPR cookie-consent banner (opt-in via template settings): a `role="dialog"` banner with focus trap, Escape-to-decline, `aria-live` status, and `localStorage` persistence. Blocks Google Analytics / Tag Manager via Consent Mode (`analytics_storage` defaults to `denied` until the visitor accepts) and can be reopened from any `[data-cookie-open]` control. Optional privacy-policy link.
- Tabbed user profile edit and registration screens: `com_users` fieldsets are grouped into Bootstrap tabs via the shared `layouts/mokoonyx/profile-tabset` layout (Account, Basic Settings, Passkey Login, Multi-factor Authentication, plus any plugin-contributed fieldsets such as MokoSuiteCRM / MokoSuiteCommunity)
- Header background theming controls: new `--header-background-position`, `--header-background-opacity`, and `--header-background-filter` variables let each theme place, fade, and colour-treat the header image independently. The image renders on a `.container-header::before` pseudo-element so `--header-background-opacity` fades only the artwork, not the logo or menu.
### Changed
- Drawer menu links now follow the drawer's own foreground colour (`--offcanvas-color`) instead of the header navbar link colour, so they adapt to the active theme
- Header background now uses the branding `header-background.svg` in both themes (`cover`, `position: bottom`, `0.35` opacity). Dark theme inverts the monochrome artwork via `filter: invert(1)`, mirroring the light treatment. Light and dark palettes are kept in sync across their standard and custom (`source/templates/*.custom.css`) files.
### Fixed
- Extensions Manager now shows the template as **"Template - MokoOnyx"** (Type - Name standard): added the `MOKOONYX` sys.ini key that Joomla's `Text::_($item->name)` actually resolves (uppercased element name). The manifest `<name>` stays `mokoonyx` (it is the element/folder, so it must not change).
- Drawer menu links were invisible (white-on-white) in the light theme; they now render correctly in both light and dark themes
- Light theme palette was missing the `--color-active` variable that the dark palette defined; added it so all four theme files (light/dark × standard/custom) declare an identical variable set
### Removed
- Retired the right drawer entirely: the `drawer-right` template position, its toggle button, offcanvas markup, the `drawerRightIcon` parameter, and the associated CSS / JS / RTL rules. On update, any modules still assigned to `drawer-right` are automatically moved to the `sidebar-right` position
+1 -1
View File
@@ -10,7 +10,7 @@
INGROUP: MokoOnyx.Governance
REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
FILE: SECURITY.md
VERSION: 02.29.11
VERSION: 02.30.04
BRIEF: Security policy and vulnerability reporting process for MokoOnyx.
PATH: /SECURITY.md
NOTE: This policy is process oriented and does not replace secure engineering practices.
-34
View File
@@ -1,34 +0,0 @@
namespace: Tests
paths:
tests: tests
output: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
shuffle: false
lint: true
colors: true
memory_limit: 1024M
coverage:
enabled: true
include:
- src/*
exclude:
- src/vendor/*
- src/media/*
- src/language/*
extensions:
enabled:
- Codeception\Extension\RunFailed
params:
- env
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=joomla_test'
user: 'root'
password: ''
dump: tests/_data/dump.sql
populate: true
cleanup: true
-1
View File
@@ -1 +0,0 @@
Sat May 23 23:50:00 CDT 2026
+1 -1
View File
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /html/layouts/joomla/module/card.php
* VERSION: 02.29.11
* VERSION: 02.30.04
* BRIEF: Custom card module chrome — renders module titles for all modules
*/
@@ -11,7 +11,7 @@
* INGROUP: MokoOnyx.Layouts
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: /src/html/layouts/mokoonyx/article-metadata.php
* VERSION: 02.29.11
* VERSION: 02.30.04
* BRIEF: Article metadata footer layout -- renders jcfields grouped by field group
*/
+1 -1
View File
@@ -10,7 +10,7 @@
* INGROUP: MokoOnyx.Accessibility
* REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx
* PATH: ./media/css/a11y-high-contrast.css
* VERSION: 02.29.11
* VERSION: 02.30.04
* BRIEF: High-contrast stylesheet for accessibility toolbar
*/
+23 -3
View File
@@ -14222,14 +14222,34 @@ fieldset>* {
}
.container-header {
position: relative;
z-index: 100;
background-color: var(--header-background-color, #adadad);
background-image: var(--header-background-image, url('../../../../../../media/templates/site/mokoonyx/images/bg.svg'));
background-size: var(--header-background-size, auto);
background-repeat: var(--header-background-repeat, repeat);
box-shadow: 0 5px 5px hsla(0, 0%, 0%, 0.03) inset;
}
/*
* Header background IMAGE lives on this pseudo-element, not on .container-header
* itself, so --header-background-opacity fades ONLY the image. Setting opacity on
* .container-header directly would also fade the logo, menu and all other content.
* Layer order: solid --header-background-color (element bg, back) < faded image
* (this pseudo, z-index -1) < header content (normal flow, front).
*/
.container-header::before {
content: "";
position: absolute;
inset: 0;
z-index: -1;
background-image: var(--header-background-image, url('../../../../../../media/templates/site/mokoonyx/images/header-background.svg'));
background-size: var(--header-background-size, cover);
background-repeat: var(--header-background-repeat, repeat);
background-position: var(--header-background-position, center);
background-attachment: var(--header-background-attachment, fixed);
opacity: var(--header-background-opacity, 1);
filter: var(--header-background-filter, none);
pointer-events: none;
}
/* Sticky header: override z-index to stay above all content */
.container-header.sticky-top {
z-index: 1020;
+5 -2
View File
@@ -211,10 +211,13 @@ color-scheme: dark;
/* ===== HEADER BACKGROUND ===== */
--header-background-color: #1a1f2b;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/bg.svg');
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/header-background.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
--header-background-size: cover;
--header-background-position: bottom;
--header-background-opacity: 0.35;
--header-background-filter: invert(1);
/* ===== CONTAINER BACKGROUNDS ===== */
+7 -3
View File
@@ -181,6 +181,7 @@ color-scheme: light;
/* ===== LINKS ===== */
--color-link: #224FAA;
--color-hover: var(--accent-color-primary);
--color-active: var(--mainmenu-nav-link-color);
--link-color: #224faa;
--link-color-rgb: 34, 79, 170;
--link-decoration: underline;
@@ -209,11 +210,14 @@ color-scheme: light;
/* ===== HEADER BACKGROUND ===== */
--header-background-color: #adadad;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/bg.svg');
--header-background-color: #dfdfdf;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/header-background.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
--header-background-size: cover;
--header-background-position: bottom;
--header-background-opacity: 0.35;
--header-background-filter: none;
/* ===== CONTAINER BACKGROUNDS ===== */
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 96 KiB

+1 -1
View File
@@ -35,7 +35,7 @@
</updateservers>
<dlid prefix="dlid=" suffix=""/>
<name>mokoonyx</name>
<version>02.29.11</version>
<version>02.30.04</version>
<scriptfile>script.php</scriptfile>
<creationDate>2026-05-16</creationDate>
<author>Jonathan Miller || Moko Consulting</author>
+5 -2
View File
@@ -211,10 +211,13 @@ color-scheme: dark;
/* ===== HEADER BACKGROUND ===== */
--header-background-color: #1a1f2b;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/bg.svg');
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/header-background.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
--header-background-size: cover;
--header-background-position: bottom;
--header-background-opacity: 0.35;
--header-background-filter: invert(1);
/* ===== CONTAINER BACKGROUNDS ===== */
+7 -3
View File
@@ -181,6 +181,7 @@ color-scheme: light;
/* ===== LINKS ===== */
--color-link: #224FAA;
--color-hover: var(--accent-color-primary);
--color-active: var(--mainmenu-nav-link-color);
--link-color: #224faa;
--link-color-rgb: 34, 79, 170;
--link-decoration: underline;
@@ -209,11 +210,14 @@ color-scheme: light;
/* ===== HEADER BACKGROUND ===== */
--header-background-color: #adadad;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/bg.svg');
--header-background-color: #dfdfdf;
--header-background-image: url('../../../../../../media/templates/site/mokoonyx/images/header-background.svg');
--header-background-attachment: fixed;
--header-background-repeat: repeat;
--header-background-size: auto;
--header-background-size: cover;
--header-background-position: bottom;
--header-background-opacity: 0.35;
--header-background-filter: none;
/* ===== CONTAINER BACKGROUNDS ===== */