Taming Your Shopify Collection Titles: How to Hide Text & Keep Images Clickable

Hey there, fellow store owners! As a Shopify migration expert and someone who spends a lot of time digging through the community forums, I often see common design tweaks that can make a huge difference to your store's aesthetic and user experience. One such popular request recently popped up in a thread started by Lisa, who was looking for a way to achieve a cleaner look for her collection lists. Her question was straightforward: "How do I remove the text underneath a collection list image while still keeping the image clickable?"

It’s a fantastic question because, let’s be honest, sometimes those default collection titles can feel a bit redundant when the image itself is perfectly descriptive. You want that sleek, image-focused layout, but you absolutely can't sacrifice usability. And that's exactly where Lisa hit a snag.

The Initial Hurdle: Hiding Text vs. Keeping Clickability

Lisa, like many of us, had already tried some code snippets she found, but they either didn't work or, worse, they removed the text but also made the collection images unclickable. This is a super common pitfall when you're tweaking CSS, and it highlights a crucial point: simply telling an element to display: none; can sometimes remove it entirely from the page’s interactive flow, taking its clickability with it.

In the thread, an initial suggestion from topnewyork involved adding this CSS:

.collection-list .card__heading {
    display: none !important;
}

Lisa quickly confirmed that while this did remove the text, it indeed broke the clickability. This is because, in many themes, the card__heading might be part of the clickable link or its removal might collapse the clickable area. It's a classic case of solving one problem and inadvertently creating another!

Other community members like Ansel2005 and suyash1 jumped in, asking for Lisa's theme name or page link. This is always a smart move because Shopify themes, even within the Online Store 2.0 ecosystem, can have slightly different class names and structures, meaning a "universal" solution sometimes needs a little tweak.

The Community's Best Solutions: Hiding Smartly

Thankfully, the community came through with a couple of robust solutions that address both parts of Lisa’s dilemma. The key is to hide the text visually without removing it from the document flow or interfering with the underlying link.

Option 1: The "Invisible Content" Approach (Using Opacity)

One of the most elegant solutions came from tim_tairli, who suggested making the text content transparent and positioning it. This method works by making the text invisible to the eye but still present in the HTML structure, meaning any associated links remain fully functional. It's like putting an invisible cloak on the text!

Here’s the code tim_tairli shared:

.collection-list__item .card__content {
  opacity: 0;
  position: absolute;
  align-items: center;
  height: 100%;
}

This snippet targets the .card__content within a collection list item. By setting opacity: 0, the content becomes fully transparent. The position: absolute; and height: 100%; ensure that even though it's invisible, it still occupies space in a way that doesn't disrupt the overall layout or the click area of the collection card.

Tim also provided fantastic before and after visuals, which really helped illustrate the impact:


Option 2: The Targeted "Text Only" Hide (Using Display: None on Specific Classes)

WebsiteDeveloper offered another excellent and widely applicable solution, emphasizing the safest way to implement it: using the theme customizer's Custom CSS feature. This approach specifically targets the text elements, rather than the entire content wrapper, which reduces the risk of impacting clickability.

Here's their recommended CSS, designed to cover several common class names for collection titles:

.collection-card__title,
.card__heading,
.collection-list-title {
    display: none !important;
}

By targeting these specific classes, you're telling the browser to hide only the text part of the collection title, leaving the surrounding clickable area untouched. The !important flag ensures your custom CSS overrides any default theme styles.

How to Implement These Solutions Safely (The Online Store 2.0 Way)

Both of these solutions are best implemented using the built-in Custom CSS feature available in Shopify's Online Store 2.0 themes. This is by far the safest method because it keeps your customizations separate from the main theme files, making updates much easier and reducing the risk of breaking your store. No direct file editing means less headache!

Here’s a step-by-step guide:

  1. Go to your Shopify admin dashboard: Navigate to Online Store > Themes.
  2. Customize your theme: Click the Customize button next to your active theme.
  3. Find your Collection List section: In the theme customizer, navigate to the page where your Collection List section is located (e.g., your homepage).
  4. Select the Collection List section: In the left-hand sidebar menu, click directly on the Collection list section.
  5. Locate Custom CSS: Scroll down to the very bottom of the right-hand settings panel until you see a section labeled Custom CSS.
  6. Paste the code: Copy one of the CSS snippets above (either tim_tairli's opacity: 0 code or WebsiteDeveloper's display: none code) and paste it into the Custom CSS box.
  7. Save your changes: Click Save at the top right corner.
  8. Test thoroughly: Always check your store on different devices and browsers to ensure everything looks and functions as expected, especially clickability!

Which Solution Should You Choose?

Both solutions are valid and effective. The opacity: 0 method (Option 1) is often preferred by developers when you want to visually hide an element but ensure it still occupies its space and can be interacted with (like a clickable area). The display: none method (Option 2) is excellent for simply removing elements from the visual and interactive flow, and when applied to specific text classes, it works perfectly for hiding titles.

If you're unsure, I'd suggest starting with Option 2 (WebsiteDeveloper's display: none for specific title classes) because it's generally the most straightforward for just hiding text. If you find it still affects clickability on your specific theme (which is less likely with this targeted approach), then try Option 1 (tim_tairli's opacity: 0).

The beauty of the Custom CSS box is that you can try one, save, test, and if it's not quite right, swap it out for the other without touching your theme's core files. Just remember to always test your changes!

It's always amazing to see the Shopify community come together to solve these kinds of practical challenges. A little bit of CSS knowledge, combined with the helpfulness of fellow store owners and experts, can really empower you to fine-tune your store's design exactly how you envision it. Happy customizing!

Share:

Start with the tools

Explore migration tools

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

Explore migration tools