Breadcrumbs are not displayed in the mobile version

Topic summary

A user’s breadcrumb navigation is hidden on mobile devices but visible on desktop. Multiple solutions were provided using CSS media queries to display breadcrumbs on mobile screens.

Working Solutions:

  • Adding CSS targeting .page__sub-header with display: flex for screens under 640px successfully resolved the mobile visibility issue
  • Alternative approaches included targeting .ProductItem-nav and .hidden-sm-down classes with !important flags

New Issue - Incomplete Breadcrumb Path:
After implementing the mobile fix, the user discovered breadcrumbs only show “Home/Product” or “Home/Collection” instead of the full navigation path like “Home/Collection/Product” or “Home/Collection/Collection/Product”. The user shared their current breadcrumb code (Liquid template) and is seeking help to display the complete hierarchical path.

Additional Recommendation:
One responder advised keeping mobile breadcrumbs on a single line for better usability, suggesting shortened paths if needed, though this limits the ability to see the full navigation hierarchy.

Status: The mobile display issue is resolved, but the breadcrumb path logic requires further code modifications to show the complete collection hierarchy.

Summarized with AI on October 28. AI used: claude-sonnet-4-5-20250929.

With my theme, the breadcrumbs are only displayed on the desktop view. Do you have any idea what I need to change in the code to make it display on the mobile view as well? My Website is called https://footpieces.de/

Hi!
You should double check if there is a setting to show breadcrumbs on mobile version.

If there is no setting, you can make a copy of a theme ( just to keep it as a backup ).
And then add to your theme.css file this:

@media screen and (max-width: 640px) {
.page__sub-header{
display: flex;
margin: 20px 0 0 20px;
}
}
1 Like

Hi @Sebastian42

  1. Go to Online Store → Theme → Edit code.
  2. Open your theme.css / based.css file and paste the code in the bottom of the file.
@media screen and (max-width: 640px) {
    .page__sub-header {
        justify-content: space-between;
        align-items: center;
        display: flex;
    }
}

Result:

If my reply is helpful, kindly click like and mark it as an accepted solution.
Thanks!
Use our Big Bulk Discount app to boost your sales! :rocket: (https://apps.shopify.com/big-bulk-discount). Easy to set up and perfect for attracting more customers with bulk discounts. Try it now and watch your revenue grow!

1 Like

Hi @Sebastian42

Let me share with you another proposal concerning your request of making breadcrumbs display on mobile port:

You can use the below CSS to test on store and see if works or not:

@media screen and (max-width:767px) {
.ProductItem-nav .ProductItem-nav-breadcrumb, .ProductItem-nav {
    display: flex !important;
}
.hidden-sm-down {
    display: block !important;
    width: 100% !important;
}
}

Just a quick note about mobile breadcrumbs—to keep them user-friendly, it is recommended to ensure they stay within a single line. When breadcrumbs wrap to two or more lines, the trail can become harder to follow, which might reduce clarity for users. If the breadcrumb trail feels too long on smaller screens, shortening it to show only the immediate previous page is a great space-saving option. While this approach prioritizes simplicity and screen efficiency, it does mean users won’t be able to jump back multiple steps or see their full navigation path. In this case, the breadcrumb acts more like a “back” button and may limit context about the user’s location in the app or site hierarchy.

I hope my idea shared here can be beneficial to your question. Thank you!

1 Like
Your solution worked, thank you very much :) Do you perhaps have a solution for displaying Home/Collection/Product or Home/Collection/Collection/Product? Currently, only Home/Collection or Home/Product is displayed. My current code:
.breadcrumbs { margin: 0 0 0.8em; }

.breadcrumbs__list {
list-style-type: none;
margin: 0;
padding: 0;
}

.breadcrumbs__item {
display: inline-block;
}

.breadcrumbs__item:not(:last-child):after {
content: ‘/’;
margin: 0 0.1em;
color: #000;
}

.breadcrumbs__link {
text-decoration: underline;
}

.breadcrumbs__link[aria-current=“page”] {
color: inherit;
font-weight: normal;
text-decoration: none;
}

.breadcrumbs__link[aria-current=“page”]:hover,
.breadcrumbs__link[aria-current=“page”]:focus {
text-decoration: underline;
}

{%- unless template == ‘index’ or template == ‘cart’ or template == ‘list-collections’ or template == ‘404’ -%}
{%- assign t = template | split: ‘.’ | first -%}

  1. Home
  2. {%- case t -%} {%- when 'page' -%}
  3. {{ page.title }}
  4. {%- when 'product' -%} {%- if collection.url -%}
  5. {{ collection.title | link_to: collection.url }}
  6. {%- endif -%}
  7. {{ product.title }}
  8. {%- when 'collection' and collection.handle -%} {%- if current_tags -%}
  9. {{ collection.title | link_to: collection.url }}
  10. {%- capture tag_url -%}{{ collection.url }}/{{ current_tags | join: "+"}}{%- endcapture -%} {{ current_tags | join: " + "}}
  11. {%- else -%}
  12. {{ collection.title }}
  13. {%- endif -%} {%- when 'blog' -%} {%- if current_tags -%}
  14. {{ blog.title | link_to: blog.url }}
  15. {%- capture tag_url -%}{{blog.url}}/tagged/{{ current_tags | join: "+" }}{%- endcapture -%} {{ current_tags | join: " + " }}
  16. {%- else -%}
  17. {{ blog.title }}
  18. {%- endif -%} {%- when 'article' -%}
  19. {{ blog.title | link_to: blog.url }}
  20. {{ article.title }}
  21. {%- else -%}
  22. {{ page_title }}
  23. {%- endcase -%}
Your solution worked, thank you very much :) Do you perhaps have a solution for displaying Home/Collection/Product or Home/Collection/Collection/Product? Currently, only Home/Collection or Home/Product is displayed.
1 Like
Thank you! I have another problem: When I click on Collection and then Product, my breadcrumbs look like this: Home/ Product, but they should be displayed as Home/Collection/Product.  How do I solve this?