Ectobuilder
Guides

How to Add Dropdown Menus to Ghost (Without Code)

Ghost's navigation is a flat list, so most themes have no dropdowns. Here's how to add list or wide dropdown menus to your Ghost site with Ectobuilder, managed from Ghost's own Navigation settings.

Michal Wlosik

Michal Wlosik

· 5 min read

How to Add Dropdown Menus to Ghost (Without Code)

Ghost's navigation is a flat list: a label and a link, one after another. There's no way in Ghost Admin to put links under other links, so most Ghost themes have no dropdown menus at all.

You can still have them. Ghost themes built with Ectobuilder read a simple naming rule: start a link's label with a dash and it goes under the link above it. This guide shows how to set it up, from choosing the header to checking it on a phone. It takes about five minutes and needs no code.

A website header with Home, Product, Blog and About links; the Product dropdown is open, showing Features, Integrations and Pricing
A dropdown menu on a Ghost site. Product holds Features, Integrations and Pricing.

Why Ghost has no dropdown menus

Ghost keeps its settings simple. Under Settings → Navigation you get two lists of links, primary and secondary, and each link has only a label and an address. The theme decides how they look.

That leaves dropdowns to the theme, and a theme only has the flat list to work with. The common solution, used by several Ghost themes, is a naming rule: a link whose label starts with a dash belongs to the link above it. The theme's script then groups the links into menus when the page loads. Ectobuilder uses the same rule, so you manage everything from Ghost's own navigation settings.

Step 1: Choose a header and the menu style

Every header in Ectobuilder that shows Ghost's navigation supports dropdowns, including the one your theme already has. If you'd like a header made for them, add one from the library: open Add section → Navigation and pick Ghost header with menus or Ghost header with wide menus. Hover over Product in the editor to see the sample menu.

Ectobuilder Add section window with the Navigation category open, showing Ghost header with menus and Ghost header with wide menus among the Ectobuilder headers
Add section → Navigation. Ghost header with menus and Ghost header with wide menus are made for dropdowns.

Then select the header and find Dropdowns in its settings:

  • List: a simple column of links. This is the default.
  • Wide: a two-column panel where each link can have a short description underneath. Good for product or service pages.
  • Off: no menus. Dashed links show as normal links, without the dash.
The same header with a wide dropdown open: Features, Integrations, Pricing and Changelog in two columns, each with a one-line description
The Wide style: two columns, each link with a line of description.
CTA Image

Don't have an Ectobuilder theme yet? Pick one from the gallery or start from scratch, change it by clicking, and publish it to your Ghost site. Dropdown menus come built in.

Try it free

In Ghost Admin, open Settings → Navigation. In the primary navigation, add the menu's parent link, then the links that go under it straight after, each label starting with a dash:

LabelURLShows as
Home/A normal link
Product#The menu's title
- Features/features/Under Product
- Integrations/integrations/Under Product
- Pricing/pricing/Under Product
Blog/blog/A normal link
About/about/A normal link
Ghost Admin Navigation settings with the primary menu: Home, Product, then - Features, - Integrations and - Pricing, then Blog and About
Ghost Admin → Settings → Navigation. The three dashed links go under Product.

Click Save. A few things to know:

  • The dash goes first. A space after it is optional: -Pricing and - Pricing both work.
  • A parent can go somewhere or nowhere. With # as its URL, clicking it opens the menu. With a real address, clicking it opens that page, and the small arrow next to it opens the menu.
  • Descriptions are for wide menus. Add a vertical bar and the text after the label: - Pricing | Plans for every team. List menus show only the label.
  • One level only. A menu can't contain another menu. Keep each one to between three and seven links.

Step 3: Deploy and check

Back in Ectobuilder, click Deploy. You only need to deploy once: after that, any menu changes you make in Ghost's Navigation settings show on your site straight away.

Open your site and hover over the parent link. The menu opens on hover or click, and closes when you click elsewhere or press Escape. It also works with the keyboard: tab to the arrow and press Enter.

On phones

On a phone there's no room for a menu that drops down, so the links appear inside the header's menu button instead, indented under their parent and always open. Nothing to set up: it uses the same links.

The site on a phone with the menu open: Home, Product with Features, Integrations and Pricing indented below it, then Blog and About
On a phone, the menu's links sit indented under Product.

Tips for a good menu

  • Name the parent for what's inside. "Product", "Services" or "Resources" tells readers what they'll find; "More" doesn't.
  • Keep the important pages on top. Readers who don't open menus should still find your main pages in one click.
  • Use the footer for the rest. The footer's links (Ghost's secondary navigation) never become menus, so it's the place for legal pages and less-visited links.
  • Check the order. A dashed link always goes under the nearest normal link above it, so reordering links in Ghost can move them into another menu.
CTA Image

Build your Ghost theme without code. Headers with dropdown menus, search and filters for your blog, contact forms and more. Start free and only pay if you're happy with it.

Start free

Frequently asked questions

Does this work with any Ghost theme?

Only with themes that read the dash rule. Ghost's default themes, Source and Casper, don't: they show the dashed links as normal links, dash included. Every theme built with Ectobuilder does.

Can I have a menu inside a menu?

No, one level only. Deeper menus are hard to use, especially on phones; a page that lists the links is usually the better choice.

Do dropdown menus hurt SEO?

No. Every link is in the page as a normal link, so search engines find them all. The menu only changes how they're shown.

Do I need to redeploy when I change the menu?

No. Once your theme is deployed, add, remove or reorder links in Ghost's Navigation settings and the menus update on your site straight away. Only switching between List, Wide and Off needs a deploy.

Why does my dashed link show with the dash?

Your site is using a theme that doesn't support the rule, or a theme deployed before menus were added. Deploy your Ectobuilder theme again and reload the page.

Michal Wlosik

Written by

Michal Wlosik

Founder of Ectobuilder, the AI-powered visual theme editor for Ghost. Indie software builder in Wrocław and co-author of The AdTech Book. I write about Ghost themes, newsletters and building websites with AI.

Comments

Questions or thoughts? Share them below.

Keep reading