Display Collections as Carousel slider on Desktop

Topic summary

A user seeks to display collection cards (not individual products) in a carousel slider format on desktop for their Dawn theme store, rather than the default grid layout. They have Flickity slider installed but it only shows products from a single collection.

Solution provided:

  • LitExtension offers modified code that changes the slider to accept multiple collection blocks instead of products
  • The solution uses Dawn’s built-in card-collection snippet and adds a blocks structure to the schema
  • Additional CSS adjustments provided for full-width display on desktop and single-card view on mobile

Key technical steps:

  • Replace product loop with collection blocks loop using {% render 'card-collection' %}
  • Add blocks configuration in schema to allow selecting multiple collections
  • Apply custom CSS targeting section ID for width and responsive behavior

Outcome:
The original poster successfully implemented the carousel with proper collection cards displaying. Later participants encountered similar issues with mobile responsiveness and missing snippets in older themes. Alternative solutions shared include YouTube tutorials for creating collection sliders without third-party apps, though one user reports errors with the card-collection.liquid snippet not existing in the deprecated Minimal theme.

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

Hello!

I am currently looking for a way to display my collections in a single carousel row on desktop rather than the current grid format offered by the current “collection list” section in Dawn theme.

I have installed the Flickity slider on my Dawn theme but that only allows for products from a specific collection be displayed…I would like the slider to show the collection cards themselves.

Does anyone know if it is possible to customise either the “collections list” section or the Flickity slider?

Any help would be appreciated!

SITE: https://ebony-design.myshopify.com/

Password: dawlaw

Hi @Bird_on_a_Wire ,

Are you trying to change this ‘Collections (standard section)’ section to a Flickity slider like List Products?

Please send me the code of the Flickity slider section, I will edit it for you.

Hi @LitExtension

Yes, I would like the ‘Collections (standard section)’ to be a single row Flickity slider but showing the Collections, not individual products.

Here is the Section code for Feature-slider.liquid


{% comment %}
* Make sure you have the Flickity plugin installed and the proper license for this to function on your store
* Plugin, licensing and documentation at https://flickity.metafizzy.co/
{% endcomment %}

{% assign collection_main = collections[section.settings.collection_main] %}
{% assign collection_limit = section.settings.collection_limit %}

{% assign cell_align = section.settings.cell_align %}
{% assign wrap_around = section.settings.wrap_around %}
{% assign img_width = section.settings.img_width | append: 'x' %}

{{ section.settings.title }}

{% for product in collection_main.products limit: collection_limit %}
{%- if product.metafields.inventory.ShappifyHidden == 'true' -%}{%- continue -%}{%- endif -%}
{% assign first_variant = product.selected_or_first_available_variant %}
{% assign featured_img_src=first_variant.featured_img.src | default: product.featured_image.src %}
{% assign price = first_variant.price %}
{% assign compare_at_price = first_variant.compare_at_price %}

##### {{ product.title }}

{% if compare_at_price > price %}
~~{{ compare_at_price | money }}~~

{{ price | money }}

{% else %}

{{ price | money }}

{% endif %}

{% endfor %}
{% comment %}
{% for block in section.blocks %}
{% assign block_product = all_products[block.settings.featured_product] %}
{% assign block_first_variant = block_product.selected_or_first_available_variant %}
{% assign featured_img_src=block_first_variant.featured_img.src | default: block_product.featured_image.src %}
{% assign price = block_first_variant.price %}
{% assign compare_at_price = block_first_variant.compare_at_price %}

{% if block.settings.featured_product != blank %}

{% else %}
{{ 'product-1' | placeholder_svg_tag: 'placeholder-svg' }}
{% endif %}

##### {{ block_product.title }}

{% if compare_at_price > price %}
~~{{ compare_at_price | money }}~~

{{ price | money }}

{% else %}

{{ price | money }}

{% endif %}

{% endfor %}
{% endcomment %}

{% schema %}
{
"name": "Collection Slider",
"settings": [
{
"type": "collection",
"id": "collection_main",
"label": "Choose a Collection"
},
{
"type": "range",
"id": "collection_limit",
"min": 2,
"max": 50,
"step": 1,
"unit": ".",
"label": "How many products to show",
"default": 4
},
{
"type": "color",
"id": "bg",
"label": "Background Color"
},
{
"type": "text",
"id": "title",
"label": "Title",
"default": "Featured Collection Slider"
},
{
"type": "range",
"id": "img_width",
"min": 200,
"max": 600,
"step": 5,
"unit": "px",
"label": "Image Width",
"default": 200
},
{
"type": "select",
"id": "cell_align",
"label": "Slide Alignment",
"options": [
{
"value": "center",
"label": "Center"
},
{
"value": "left",
"label": "Left"
}
],
"default": "center"
},
{
"type": "range",
"id": "title_mb",
"min": 30,
"max": 120,
"step": 1,
"unit": "px",
"label": "Title Margin Bottom",
"default": 48
},
{
"type": "select",
"id": "cell_width",
"label": "Choose number of slides to show on start",
"options": [
{
"value": "25%",
"label": "Four"
},
{
"value": "20%",
"label": "Five"
},
{
"value": "16.6666667%",
"label": "Six"
},
{
"value": "12.5%",
"label": "Eight"
}
],
"default": "25%"
},
{
"type": "radio",
"id": "wrap_around",
"label": "Enable Wrap Around (endless scrolling)",
"options": [
{
"value": "true",
"label": "True"
},
{
"value": "false",
"label": "False"
}
],
"default": "true"
},
{
"type": "range",
"id": "mr",
"min": 0,
"max": 48,
"step": 1,
"unit": "px",
"label": "Cell Margin Right",
"default": 16,
"info": "Save page to see changes."
}
],
"presets": [
{
"name": "Collection Slider",
"category": "Slider"
}
]
}
{% endschema %}

Many thanks in advance!

Hi @Bird_on_a_Wire ,

Please change code here:


{% comment %}
* Make sure you have the Flickity plugin installed and the proper license for this to function on your store
* Plugin, licensing and documentation at https://flickity.metafizzy.co/
{% endcomment %}

{% assign cell_align = section.settings.cell_align %}
{% assign wrap_around = section.settings.wrap_around %}
{% assign img_width = section.settings.img_width | append: 'x' %}

{{ section.settings.title }}

{% for product in collection_main.products limit: collection_limit %}

{% endfor %}
{%- for block in section.blocks -%}
  
    {% render 'card-collection', card_collection: block.settings.collection , media_aspect_ratio: section.settings.image_ratio, columns: 1 %}
  

{%- endfor -%}

{% schema %}
{
"name": "Collection Slider",
"settings": [
{
"type": "color",
"id": "bg",
"label": "Background Color"
},
{
"type": "text",
"id": "title",
"label": "Title",
"default": "Featured Collection Slider"
},
{
  "type": "select",
  "id": "image_ratio",
  "options": [
    {
      "value": "adapt",
      "label": "t:sections.collection-list.settings.image_ratio.options__1.label"
    },
    {
      "value": "portrait",
      "label": "t:sections.collection-list.settings.image_ratio.options__2.label"
    },
    {
      "value": "square",
      "label": "t:sections.collection-list.settings.image_ratio.options__3.label"
    }
  ],
  "default": "square",
  "label": "t:sections.collection-list.settings.image_ratio.label",
  "info": "t:sections.collection-list.settings.image_ratio.info"
},
{
"type": "select",
"id": "cell_align",
"label": "Slide Alignment",
"options": [
{
"value": "center",
"label": "Center"
},
{
"value": "left",
"label": "Left"
}
],
"default": "center"
},
{
"type": "range",
"id": "title_mb",
"min": 30,
"max": 120,
"step": 1,
"unit": "px",
"label": "Title Margin Bottom",
"default": 48
},
{
"type": "select",
"id": "cell_width",
"label": "Choose number of slides to show on start",
"options": [
{
"value": "25%",
"label": "Four"
},
{
"value": "20%",
"label": "Five"
},
{
"value": "16.6666667%",
"label": "Six"
},
{
"value": "12.5%",
"label": "Eight"
}
],
"default": "25%"
},
{
"type": "radio",
"id": "wrap_around",
"label": "Enable Wrap Around (endless scrolling)",
"options": [
{
"value": "true",
"label": "True"
},
{
"value": "false",
"label": "False"
}
],
"default": "true"
},
{
"type": "range",
"id": "mr",
"min": 0,
"max": 48,
"step": 1,
"unit": "px",
"label": "Cell Margin Right",
"default": 16,
"info": "Save page to see changes."
}
],
"blocks": [
  {
    "type": "collection",
    "name": "Collection",
    "settings": [
      {
        "type": "collection",
        "id": "collection",
        "label": "Select collection"
      }
    ]
  }
],
"presets": [
{
"name": "Collection Slider",
"category": "Slider"
}
]
}
{% endschema %}

Hi @LitExtension

I added the changed the code as suggested but the slider is still only allowing me to select one Collection and displaying products from that category rather than allowing me to add each Collection as an individual card.

Here is how it is currently displaying

This is what I would like to achieve

Hi @Bird_on_a_Wire ,

With the code I changed you can add blocks like “Collections List” section, have you tried it again?

Hi @LitExtension

I have added a video below of what shows up on my screen

https://drive.google.com/file/d/1UJ-rdsE1gm-tQo6Rlu7N3BUvR4Tkk_jx/view?usp=sharing

Also when I added the flickity slider, I added in these two sections of code as new Assets- not sure if it’s relevant maybe?

flickity.css https://drive.google.com/file/d/1RDTcvuO2athoFsg2KudOGTZFer6nWZtz/view?usp=sharing

flickity.pkgd.jshttps://drive.google.com/file/d/1aa12u7hVyHPOCCdKFlwvCz_1XbswX6zb/view?usp=sharing

Hi @Bird_on_a_Wire ,

When you create a new file section and add my code, it will be a ‘Collection Slider’ section, not a ‘Featured Collection’ section.

Did you change the whole code according to my post?


{% comment %}
* Make sure you have the Flickity plugin installed and the proper license for this to function on your store
* Plugin, licensing and documentation at https://flickity.metafizzy.co/
{% endcomment %}

{% assign cell_align = section.settings.cell_align %}
{% assign wrap_around = section.settings.wrap_around %}
{% assign img_width = section.settings.img_width | append: 'x' %}

{{ section.settings.title }}

{% for product in collection_main.products limit: collection_limit %}

{% endfor %}
{%- for block in section.blocks -%}
  
    {% render 'card-collection', card_collection: block.settings.collection , media_aspect_ratio: section.settings.image_ratio, columns: 1 %}
  

{%- endfor -%}

{% schema %}
{
"name": "Collection Slider",
"settings": [
{
"type": "color",
"id": "bg",
"label": "Background Color"
},
{
"type": "text",
"id": "title",
"label": "Title",
"default": "Featured Collection Slider"
},
{
  "type": "select",
  "id": "image_ratio",
  "options": [
    {
      "value": "adapt",
      "label": "t:sections.collection-list.settings.image_ratio.options__1.label"
    },
    {
      "value": "portrait",
      "label": "t:sections.collection-list.settings.image_ratio.options__2.label"
    },
    {
      "value": "square",
      "label": "t:sections.collection-list.settings.image_ratio.options__3.label"
    }
  ],
  "default": "square",
  "label": "t:sections.collection-list.settings.image_ratio.label",
  "info": "t:sections.collection-list.settings.image_ratio.info"
},
{
"type": "select",
"id": "cell_align",
"label": "Slide Alignment",
"options": [
{
"value": "center",
"label": "Center"
},
{
"value": "left",
"label": "Left"
}
],
"default": "center"
},
{
"type": "range",
"id": "title_mb",
"min": 30,
"max": 120,
"step": 1,
"unit": "px",
"label": "Title Margin Bottom",
"default": 48
},
{
"type": "select",
"id": "cell_width",
"label": "Choose number of slides to show on start",
"options": [
{
"value": "25%",
"label": "Four"
},
{
"value": "20%",
"label": "Five"
},
{
"value": "16.6666667%",
"label": "Six"
},
{
"value": "12.5%",
"label": "Eight"
}
],
"default": "25%"
},
{
"type": "radio",
"id": "wrap_around",
"label": "Enable Wrap Around (endless scrolling)",
"options": [
{
"value": "true",
"label": "True"
},
{
"value": "false",
"label": "False"
}
],
"default": "true"
},
{
"type": "range",
"id": "mr",
"min": 0,
"max": 48,
"step": 1,
"unit": "px",
"label": "Cell Margin Right",
"default": 16,
"info": "Save page to see changes."
}
],
"blocks": [
  {
    "type": "collection",
    "name": "Collection",
    "settings": [
      {
        "type": "collection",
        "id": "collection",
        "label": "Select collection"
      }
    ]
  }
],
"presets": [
{
"name": "Collection Slider",
"category": "Slider"
}
]
}
{% endschema %}
1 Like

Hi @LitExtension

Thanks for the clarification, the slide is displaying now but not pulling any collection cards. See slider on home page titled “Featured Collection Slider (NEW)”

Hi @Bird_on_a_Wire ,

did you add ‘Blocks Collection’ to it?

@LitExtension Whoops that was blonde of me! Yes blocks are added now and the slide is starting to take shape! YAY

A couple of styling questions- would it be possible to make the slider stretch all the way to the edge of the screen on a desktop

And then on mobile; to only show one card at a time, looks a bit cluttered when it shows multiple + arrows

Hi @Bird_on_a_Wire ,

Go to Assets > base.css and paste this at the bottom of the file:

#shopify-section-template--14524002631768__16643539933e8bc029 .page-width {
  max-width: 100% !important;
}
@media screen and (max-width: 749px) {
  #shopify-section-template--14524002631768__16643539933e8bc029 .carousel__cell {
    width: 100% !important;
  }
}

If it helped you solve your issue, please mark it as a solution. Thank you and good luck.

1 Like

Thank you @LitExtension you have been amazingly helpful and patient! Endless thanks :victory_hand:

1 Like

@Jasoliya @NomtechSolution

Hii it works well in desktop but not in mobile please help… for refresh theme.

here’s URL https://herbovedam.com/

ok need to check code of this

I found this thread incredibly useful in setting up my own store and ran into this same problem. Too much clutter in mobile. I fixed by overwriting settings for testing purposes to section template shown above:

"type": "select",
"id": "cell_width",
"label": "Choose number of slides to show on start",
"options": [
  {
"value": "50%",
"label": "Two"
},
{
"value": "33%",
"label": "Three"
},
{
"value": "25%",
"label": "Four"
},
{
"value": "20%",
"label": "Five"
},
{
"value": "16.6666667%",
"label": "Six"
},
{
"value": "12.5%",
"label": "Eight"
}
],
"default": "25%"
},

Then I decided I needed to make it so only two slides show at a time on mobile by adding this css:

@media screen and (max-width: 749px) {
  .carousel__cell {
    width: 50% !important;
  }

Now desktop can show ‘x’ slides while mobile only shows 2 and is not cluttered.

Following the tread shattered some light. I have a similar problem. I got the collections to appear using the featured collection section, however, I am struggling with getting my slider full width and also need to get rid of shadow on hover. I used the same code from the thread. but still can see the shadow active.

@LitExtension @Bird_on_a_Wire

This was an awesome coding lesson! I managed to get the collection carousel to work with different collections. I am trying to backtrack to the product collection carousel, so with only 1 collection and different products in the carousel. I got one of the first codes and it works, only the product image is not showing for some reason. I have also removed the metafield check as I don’t have this on my products.

Could someone help me to adapt this code to make it a working product carousel? That would be awesome!

Thanks in advance and have a great day!

Here is the code I am trying to use right now for the product carousel:


{% comment %}
* Make sure you have the Flickity plugin installed and the proper license for this to function on your store
* Plugin, licensing and documentation at https://flickity.metafizzy.co/
{% endcomment %}

{% assign collection_main = collections[section.settings.collection_main] %}
{% assign collection_limit = section.settings.collection_limit %}

{% assign cell_align = section.settings.cell_align %}
{% assign wrap_around = section.settings.wrap_around %}
{% assign img_width = section.settings.img_width | append: 'x' %}

{{ section.settings.title }}

{% for product in collection_main.products limit: collection_limit %}
{%- if product.metafields.inventory.ShappifyHidden == 'true' -%}{%- continue -%}{%- endif -%}
{% assign first_variant = product.selected_or_first_available_variant %}
{% assign featured_img_src=first_variant.featured_img.src | default: product.featured_image.src %}
{% assign price = first_variant.price %}
{% assign compare_at_price = first_variant.compare_at_price %}

##### {{ product.title }}

{% if compare_at_price > price %}
~~{{ compare_at_price | money }}~~

{{ price | money }}

{% else %}

{{ price | money }}

{% endif %}

{% endfor %}
{% comment %}
{% for block in section.blocks %}
{% assign block_product = all_products[block.settings.featured_product] %}
{% assign block_first_variant = block_product.selected_or_first_available_variant %}
{% assign featured_img_src=block_first_variant.featured_img.src | default: block_product.featured_image.src %}
{% assign price = block_first_variant.price %}
{% assign compare_at_price = block_first_variant.compare_at_price %}

{% if block.settings.featured_product != blank %}

{% else %}
{{ 'product-1' | placeholder_svg_tag: 'placeholder-svg' }}
{% endif %}

##### {{ block_product.title }}

{% if compare_at_price > price %}
~~{{ compare_at_price | money }}~~

{{ price | money }}

{% else %}

{{ price | money }}

{% endif %}

{% endfor %}
{% endcomment %}

{% schema %}
{
"name": "Collection Slider",
"settings": [
{
"type": "collection",
"id": "collection_main",
"label": "Choose a Collection"
},
{
"type": "range",
"id": "collection_limit",
"min": 2,
"max": 50,
"step": 1,
"unit": ".",
"label": "How many products to show",
"default": 4
},
{
"type": "color",
"id": "bg",
"label": "Background Color"
},
{
"type": "text",
"id": "title",
"label": "Title",
"default": "Featured Collection Slider"
},
{
"type": "range",
"id": "img_width",
"min": 200,
"max": 600,
"step": 5,
"unit": "px",
"label": "Image Width",
"default": 200
},
{
"type": "select",
"id": "cell_align",
"label": "Slide Alignment",
"options": [
{
"value": "center",
"label": "Center"
},
{
"value": "left",
"label": "Left"
}
],
"default": "center"
},
{
"type": "range",
"id": "title_mb",
"min": 30,
"max": 120,
"step": 1,
"unit": "px",
"label": "Title Margin Bottom",
"default": 48
},
{
"type": "select",
"id": "cell_width",
"label": "Choose number of slides to show on start",
"options": [
{
"value": "25%",
"label": "Four"
},
{
"value": "20%",
"label": "Five"
},
{
"value": "16.6666667%",
"label": "Six"
},
{
"value": "12.5%",
"label": "Eight"
}
],
"default": "25%"
},
{
"type": "radio",
"id": "wrap_around",
"label": "Enable Wrap Around (endless scrolling)",
"options": [
{
"value": "true",
"label": "True"
},
{
"value": "false",
"label": "False"
}
],
"default": "true"
},
{
"type": "range",
"id": "mr",
"min": 0,
"max": 48,
"step": 1,
"unit": "px",
"label": "Cell Margin Right",
"default": 16,
"info": "Save page to see changes."
}
],
"presets": [
{
"name": "Collection Slider",
"category": "Slider"
}
]
}
{% endschema %}

You can create a beautiful slider in your shopify DAWN theme or any of the Shopify free themes without any App.

Without using any third party library.

Here is the way you can follow:

1 Like

Add carousel collection slider in your store: