Editor experience
ADR-001 defines why presets generate saved subform rows instead of acting as hidden frontend logic.
mod_bib_cta documentation
This page indexes the architecture decisions behind the Baby in Brazil CTA module. Each ADR explains why a choice was made, what alternatives were rejected and which files are affected.
| ADR | Decision | Status | Primary files |
|---|---|---|---|
| ADR-001 | Feature presets as administrator generators | Accepted | FeaturepresetField.php, admin-feature-presets.js |
| ADR-002 | CSS Grid over Bootstrap grid dependency | Accepted | cta.css, tmpl/*.php |
| ADR-003 | Layout partials over monolithic templates | Accepted | tmpl/*.php, layouts/cta/*.php |
| ADR-004 | Inline SVG icons over font icons | Accepted | CtaHelper.php, forms/feature.xml |
| ADR-005 | Joomla module over Joomla component | Accepted | mod_bib_cta.xml, Dispatcher.php |
| ADR-006 | Normalised CTA data contract in helper | Accepted | CtaHelper.php, layouts/cta/*.php |
| ADR-007 | Administrator JavaScript fallback loading | Accepted | FeaturepresetField.php, joomla.asset.json |
| ADR-008 | CSS custom properties as the public theme API | Accepted | cta.css, CtaHelper.php |
| ADR-009 | JED preparation without placeholder update server in manifest | Accepted | dist/update-server/*, mod_bib_cta.xml |
| ADR-010 | HTML developer documentation as primary handover format | Accepted | docs/html/*, README.md |
| ADR-011 | Accessibility-first CTA semantics | Accepted | tmpl/*.php, layouts/cta/media.php |
ADR-001 defines why presets generate saved subform rows instead of acting as hidden frontend logic.
ADR-002, ADR-004 and ADR-008 keep the module portable by avoiding Bootstrap and icon-font dependencies.
ADR-003 and ADR-006 define the separation between high-level layouts, partial layouts and the normalised data contract.
ADR-009 and ADR-010 document the packaging, update-server and handover documentation decisions.
When a future implementation changes an accepted architecture decision, do not delete the old ADR. Add a new ADR that supersedes it and link the two records.