Unlock Your Horizon Theme's Potential: Create a Dynamic Tabbed Menu with Email Signup

Hey everyone! As a Shopify expert who spends a lot of time digging into what real store owners are talking about, I often see common challenges and brilliant solutions bubbling up in the community. Recently, a thread started by EddieJune caught my eye – they were wrestling with the Horizon theme’s menu, wanting to transform its static hamburger drawer into something much more dynamic, akin to the Aime Leon Dore (ALD) style: think "Shop" and "Explore" tabs, an email signup, and neatly organized footer links, all without the drawer constantly closing. This isn't just a cosmetic tweak; it's about enhancing user experience and making your navigation truly work for your brand. And the good news? The community rallied with some fantastic, actionable advice! Moeed, Priyasha, gotinker, and Ploqo really zeroed in on the core challenge, cutting through some of the less helpful suggestions (like generic AI answers or app pitches). The consensus? Yes, it's absolutely doable, but it steps into custom code territory. Don't worry, it's not as scary as it sounds, especially with the clear guidance shared. The key insight, as many pointed out, is that you want the panels inside the drawer to switch visibility, not the entire drawer to close and reopen. This keeps the experience smooth and seamless for your customers. Here's what that dynamic, tabbed menu looks like, with the 'Shop' tab open in the drawer:

And here's the 'Explore' tab, switching seamlessly without closing the drawer:

Let's break down how you can achieve this polished, tabbed menu for your Horizon theme, drawing directly from the community's best practices.

Before You Begin: The Golden Rule

Before you even think about touching a single line of code, always, always, duplicate your theme! This is non-negotiable. Go to your Shopify Admin -> Online Store -> Themes. Find your Horizon theme, click the "..." button, and select "Duplicate." Work on this unpublished copy. This way, if anything goes awry, your live store remains unaffected. Seriously, this step will save you headaches!

The Community-Approved Approach: Custom Liquid Section

While some discussions delved into specific file paths like sections/header.liquid or snippets/header-drawer.liquid (thanks, gotinker, for that deep dive!), the most straightforward and robust solution shared by Ploqo involves adding a single "Custom Liquid" section. This method is great because it keeps your custom code somewhat isolated, making it easier to manage and less likely to be overwritten by theme updates (though still, always test on a duplicate!). Here’s how to do it, step-by-step:

Step 1: Create Your Navigation Menus

First, you'll need to set up the structure for your new menu tabs in your Shopify admin.
  1. Go to your Shopify Admin.
  2. Navigate to Online Store > Navigation.
  3. Create two new menus: one for your "Shop" tab (e.g., "Shop Menu") and one for your "Explore" tab (e.g., "Explore Menu"). Add all the links you want to appear under each of these tabs.
  4. While you're there, confirm or create a menu for your footer links (e.g., "Footer Menu") if you don't have one already. This will house links like Privacy Policy, Terms, Accessibility, etc.

This is super important because it means you can manage all your menu links directly from your admin, without touching any code again later. A huge win for ongoing store management!

Step 2: Add the Custom Liquid Section to Your Theme

Now for the code injection! This is where Ploqo's detailed steps really shine.
  1. From your Shopify Admin, go to Online Store > Themes.
  2. On your duplicated theme, click Customize.
  3. In the theme editor, scroll down the left panel to the Footer group.
  4. Click Add section, then choose Custom Liquid. Adding it here ensures the code loads on every page, making your drawer functional across your entire site.
  5. Paste the provided code into the Custom Liquid section.

Before saving, make sure to adjust the shop_handle, explore_handle, and footer_handle variables at the top of the code to match the actual handles of the menus you created in Step 1. For example, if you named your menu "Shop Menu," its handle would be shop-menu.

{%- assign shop_handle    = 'shop-menu' -%}
{%- assign explore_handle = 'explore-menu' -%}
{%- assign footer_handle  = 'footer' -%}
{%- assign shop_label     = 'Shop' -%}
{%- assign explore_label  = 'Explore' -%}
{%- assign signup_title   = 'Sign up for our newsletter' -%}
{%- assign signup_button  = 'Join' -%}

{%- assign shop_list = linklists[shop_handle] -%}
{%- assign explore_list = linklists[explore_handle] -%}
{%- assign footer_list = linklists[footer_handle] -%}





Understanding the Code and What Happens Next

The code snippet Ploqo provided is quite clever. It contains:
  • Liquid Logic: This pulls in your newly created "Shop," "Explore," and "Footer" menus dynamically.
  • HTML Structure: It sets up the two tabs ("Shop" and "Explore") and their corresponding content panels, along with the email signup form and footer links. This entire structure is initially hidden.
  • CSS Styling: This ensures your new tabs and panels look good and behave correctly within the Horizon theme's menu drawer, making them switch seamlessly.
  • JavaScript: This is the magic that listens for clicks on your "Shop" or "Explore" tabs and toggles the visibility of the corresponding content panel, all without closing the main menu drawer. It also cleverly hides the Horizon theme's default menu list (.ald-native-hidden) to make way for your custom layout.
Once you've pasted the code and saved the section, you should see the new tabbed menu structure appear in your theme editor preview. Test it thoroughly on both desktop and mobile to ensure everything looks and functions as expected. Pay close attention to the smooth transition between the "Shop" and "Explore" tabs – that's the desired behavior! The email signup form uses Shopify's native customer form, which is fantastic because it automatically handles customer creation and email marketing consent. If you're planning to use a service like Klaviyo down the line, as EddieJune mentioned, you can easily swap out that specific block with a Klaviyo embed later without affecting the overall tabbed menu structure.

When to Call in a Pro

While these steps are detailed, modifying theme code isn't for everyone. If you find yourself feeling overwhelmed or unsure, don't hesitate to reach out to a Shopify expert. Several community members, like kai_xing and Moeed, offered their services for scoped customizations like this. It's often a worthwhile investment to ensure a professional, bug-free implementation that aligns perfectly with your brand. Remember, it's a contained change, so it shouldn't require a full theme rebuild. This kind of customization truly elevates your store's user experience, making navigation intuitive and engaging. It's a great example of how tapping into the collective wisdom of the Shopify community can help you achieve sophisticated results without needing to be a full-stack developer. By following these steps and leveraging the insights from the forum, you'll be well on your way to a more dynamic and user-friendly Horizon theme menu!
Share:

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools