Atomic module positions

Interactive position map for the Atomic template for Joomla. Use this to plan your site layout or migrate from Cassiopeia.

Shared (works in both templates)
Atomic only
Cassiopeia compatibility
Support Cassiopeia positions Shows Cassiopeia-only positions that appear when compatibility is enabled in template settings
{alert}
<header>
{topbar}Cassiopeia — inside header, before header row
{below-top}Cassiopeia — inside header, after topbar
Logo
Site title / description
{header}
{header-center}
{header-right}
Switcher
{topmenu}Atomic main navigation
{menu}Cassiopeia — renders inside the topmenu nav bar
{mobilemenu}Offcanvas panel (renders outside header)
<main>
{hero}
{banner}Cassiopeia — renders after {hero}
{top-a}Cassiopeia
{top-b}Cassiopeia
{leftbody}
{sidebar-left}Cassiopeia — same column as {leftbody}
{breadcrumbs}
{abovebody}
{main-top}Cassiopeia
Message / Component
{belowbody}
{main-bottom}Cassiopeia
{rightbody}
{sidebar-right}Cassiopeia — same column as {rightbody}
{bottom-a}Cassiopeia — own row
{bottom-b}Cassiopeia — own row
<footer>
{footer}
{footer-center}
{footer-right}
Copyright
{debug}

Position mapping reference

Atomic positionCassiopeia equivalentNotes
{hero} {banner} Cassiopeia {banner} content renders after Atomic's {hero} position when compatibility is on. They are not the same position — {hero} is always available, {banner} is Cassiopeia-only.
{topmenu} {menu} Cassiopeia {menu} modules render inside the {topmenu} nav bar when compatibility is on.
{leftbody} {sidebar-left} Both render in the left sidebar column. {leftbody} is Atomic-native (always available); {sidebar-left} only appears when Cassiopeia compatibility is on.
{rightbody} {sidebar-right} Both render in the right sidebar column. {rightbody} is Atomic-native (always available); {sidebar-right} only appears when Cassiopeia compatibility is on.
{breadcrumbs} {breadcrumbs} Same name. Always rendered (not behind compatibility toggle).
{footer} {footer} Same name in both.
{debug} {debug} Same name in both.
Atomic-only positions (no Cassiopeia equivalent)
{alert} Top-of-page alert/notification bar. Renders before the header.
{header} Inside the header row, adjacent to logo/site title branding.
{header-center} Center column of the header row.
{header-right} Right side of the header row, before the style switcher.
{topmenu} Primary navigation bar below the header row. When Cassiopeia compatibility is on, {menu} modules also render here.
{mobilemenu} Offcanvas mobile navigation panel. Triggers a hamburger button in the header.
{hero} Full-width hero area at the top of main content, before the body columns.
{abovebody} Inside the main content column, between {breadcrumbs} and {main-top} / message output.
{belowbody} Inside the main content column, below the component output.
{footer-center} Center column of the footer (when 3-column footer layout is configured).
{footer-right} Right column of the footer.
Cassiopeia-only positions (require "Support Cassiopeia positions" enabled)
{topbar}Inside header Renders inside the header container, before the header row.
{below-top}Inside header Renders inside the header container, after {topbar}.
{menu}Inside topmenu nav Renders inside the {topmenu} navigation bar.
{banner}After {hero} Renders in the main area, after the {hero} position.
{top-a}After {banner} Renders after {banner} in the main area.
{top-b}After {banner} Renders alongside {top-a}, after {banner}.
{sidebar-left}Left column Renders in the same left sidebar column as {leftbody}.
{sidebar-right}Right column Renders in the same right sidebar column as {rightbody}.
{main-top}Center column Renders inside the main content column, after {abovebody} and before the message/component output.
{main-bottom}Center column Renders inside the main content column, after {belowbody}.
{bottom-a}Own row Renders as a full-width row below the body columns.
{bottom-b}Own row Renders as a separate full-width row, below {bottom-a}.
Error page positions (both templates, used in error.php only)
{error-403}{error-403} Same name in both.
{error-404}{error-404} Same name in both.

Migration checklist

When moving from Cassiopeia to Atomic:

  1. Enable Cassiopeia compatibility — Turn on "Support Cassiopeia positions" in Atomic's template settings. All your existing module assignments will continue to work.
  2. Understand the differences — Cassiopeia's {banner} is not the same as Atomic's {hero} — when compatibility is on, {banner} content renders after {hero}. Similarly, {sidebar-left} and {sidebar-right} render alongside {leftbody} and {rightbody}, not in place of them. {menu} renders inside Atomic's {topmenu} nav bar.
  3. Note what's Cassiopeia-only — Positions like {topbar}, {below-top}, {top-a}, {top-b}, {bottom-a}, {bottom-b}, {main-top}, and {main-bottom} only work with compatibility on. Plan to migrate these modules to Atomic-native positions when ready.
  4. Explore new positions — Atomic adds {alert}, {abovebody}, {belowbody}, {header}, {header-center}, {header-right}, {mobilemenu}, {footer-center}, and {footer-right} — none of which exist in Cassiopeia.
  5. Migrate gradually — Reassign modules from Cassiopeia position names to Atomic equivalents, then disable compatibility mode for a cleaner setup.