{%- comment -%} MIT License · (c) 2026 Lintel · https://lintelagency.com/resources/shopify-sections {%- endcomment -%} {%- comment -%} Shoppable image carousel: a swipeable row of lifestyle photos, each with up to three product hotspots (the Shop the look pattern). A hotspot opens a small product card beside the dot; the products in each photo are also listed as plain links under it, so they stay reachable without JavaScript. Scroll-snap row with previous and next buttons; it never moves on its own. Separate desktop and mobile image per slide, optional mobile hotspot positions. Depends on: snippets/lib-image.liquid {%- endcomment -%} {%- liquid assign s = section.settings assign heading_tag = s.heading_tag | default: 'h2' assign uid = 'LibShc-' | append: section.id assign slide_total = section.blocks.size -%}
Tap a dot to see what is in each photo.
" }, { "type": "header", "content": "Words" }, { "type": "text", "id": "card_link_label", "label": "Product card link", "default": "View product" }, { "type": "text", "id": "show_label", "label": "Screen reader: before a hotspot's product", "default": "Show" }, { "type": "text", "id": "close_label", "label": "Screen reader: close card", "default": "Close" }, { "type": "text", "id": "prev_label", "label": "Screen reader: previous", "default": "Previous photo" }, { "type": "text", "id": "next_label", "label": "Screen reader: next", "default": "Next photo" }, { "type": "text", "id": "carousel_label", "label": "Screen reader: name of the row", "default": "Shoppable photos" }, { "type": "text", "id": "sale_label", "label": "Screen reader: sale price", "default": "Sale price" }, { "type": "text", "id": "regular_label", "label": "Screen reader: regular price", "default": "Regular price" }, { "type": "header", "content": "Photos" }, { "type": "select", "id": "slide_width", "label": "Photo width on desktop", "info": "On mobile each photo takes most of the screen, with the next one peeking in.", "options": [ { "value": "large", "label": "Large (one photo)" }, { "value": "medium", "label": "Medium (next one peeks in)" }, { "value": "small", "label": "Small (two and a half)" } ], "default": "medium" }, { "type": "select", "id": "image_ratio", "label": "Photo shape on desktop", "info": "Hotspot positions are measured on the photo as shown.", "options": [ { "value": "landscape", "label": "Landscape (4:3)" }, { "value": "wide", "label": "Wide (16:9)" }, { "value": "square", "label": "Square" }, { "value": "portrait", "label": "Portrait (4:5)" } ], "default": "landscape" }, { "type": "select", "id": "image_ratio_mobile", "label": "Photo shape on mobile", "options": [ { "value": "landscape", "label": "Landscape (4:3)" }, { "value": "square", "label": "Square" }, { "value": "portrait", "label": "Portrait (4:5)" } ], "default": "portrait" }, { "type": "range", "id": "image_radius", "label": "Photo corner radius", "min": 0, "max": 40, "step": 2, "unit": "px", "default": 14 }, { "type": "header", "content": "Hotspots" }, { "type": "select", "id": "hotspot_style", "label": "Hotspot style", "options": [ { "value": "dot", "label": "Dot" }, { "value": "plus", "label": "Plus" }, { "value": "number", "label": "Number (also shown in the product links)" } ], "default": "plus" }, { "type": "range", "id": "hotspot_size", "label": "Hotspot size", "min": 24, "max": 48, "step": 2, "unit": "px", "default": 32 }, { "type": "color", "id": "color_hotspot", "label": "Hotspot color", "default": "#FFFFFF" }, { "type": "color", "id": "color_hotspot_icon", "label": "Hotspot icon color", "default": "#1C1917" }, { "type": "checkbox", "id": "pulse", "label": "Pulse the hotspots", "info": "Always off for visitors who prefer reduced motion.", "default": true }, { "type": "header", "content": "Layout" }, { "type": "select", "id": "section_width", "label": "Width", "options": [ { "value": "page", "label": "Page width" }, { "value": "full", "label": "Full width" } ], "default": "page" }, { "type": "text_alignment", "id": "text_alignment", "label": "Heading alignment on desktop", "default": "left" }, { "type": "select", "id": "text_alignment_mobile", "label": "Heading alignment on mobile", "options": [ { "value": "left", "label": "Left" }, { "value": "center", "label": "Center" }, { "value": "right", "label": "Right" } ], "default": "left" }, { "type": "header", "content": "Colors" }, { "type": "color", "id": "color_bg", "label": "Background", "default": "#F5F2EC" }, { "type": "color_background", "id": "color_bg_gradient", "label": "Background gradient", "info": "Optional. Covers the background color." }, { "type": "color", "id": "color_text", "label": "Text", "default": "#1C1917" }, { "type": "color", "id": "color_accent", "label": "Accent (arrows, active product)", "default": "#1C1917" }, { "type": "color", "id": "color_card", "label": "Product card background", "default": "#FFFFFF" }, { "type": "color", "id": "color_card_text", "label": "Product card text", "default": "#1C1917" }, { "type": "color", "id": "color_sale", "label": "Sale price", "default": "#B4432F" }, { "type": "header", "content": "Spacing and visibility" }, { "type": "range", "id": "padding_top", "label": "Top padding on desktop", "min": 0, "max": 200, "step": 4, "unit": "px", "default": 80 }, { "type": "range", "id": "padding_bottom", "label": "Bottom padding on desktop", "min": 0, "max": 200, "step": 4, "unit": "px", "default": 80 }, { "type": "range", "id": "padding_top_mobile", "label": "Top padding on mobile", "min": 0, "max": 160, "step": 4, "unit": "px", "default": 48 }, { "type": "range", "id": "padding_bottom_mobile", "label": "Bottom padding on mobile", "min": 0, "max": 160, "step": 4, "unit": "px", "default": 48 }, { "type": "select", "id": "show_on", "label": "Show on", "options": [ { "value": "all", "label": "All devices" }, { "value": "desktop", "label": "Desktop only" }, { "value": "mobile", "label": "Mobile only" } ], "default": "all" }, { "type": "text", "id": "anchor_id", "label": "Anchor ID", "info": "Optional. Link to this section with #your-id." } ], "blocks": [ { "type": "slide", "name": "Photo", "settings": [ { "type": "image_picker", "id": "image", "label": "Desktop image" }, { "type": "image_picker", "id": "image_mobile", "label": "Mobile image", "info": "Optional. If it is cropped differently, set mobile hotspot positions below." }, { "type": "text", "id": "caption", "label": "Caption", "info": "Optional. Shown under the photo." }, { "type": "header", "content": "Hotspot 1" }, { "type": "product", "id": "product_1", "label": "Product" }, { "type": "range", "id": "x_1", "label": "Horizontal position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 30 }, { "type": "range", "id": "y_1", "label": "Vertical position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 60 }, { "type": "header", "content": "Hotspot 2" }, { "type": "product", "id": "product_2", "label": "Product" }, { "type": "range", "id": "x_2", "label": "Horizontal position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 55 }, { "type": "range", "id": "y_2", "label": "Vertical position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 45 }, { "type": "header", "content": "Hotspot 3" }, { "type": "product", "id": "product_3", "label": "Product" }, { "type": "range", "id": "x_3", "label": "Horizontal position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 78 }, { "type": "range", "id": "y_3", "label": "Vertical position", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 65 }, { "type": "header", "content": "Mobile" }, { "type": "checkbox", "id": "mobile_custom", "label": "Different hotspot positions on mobile", "default": false }, { "type": "range", "id": "xm_1", "label": "Hotspot 1 horizontal", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 30, "visible_if": "{{ block.settings.mobile_custom }}" }, { "type": "range", "id": "ym_1", "label": "Hotspot 1 vertical", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 60, "visible_if": "{{ block.settings.mobile_custom }}" }, { "type": "range", "id": "xm_2", "label": "Hotspot 2 horizontal", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 55, "visible_if": "{{ block.settings.mobile_custom }}" }, { "type": "range", "id": "ym_2", "label": "Hotspot 2 vertical", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 45, "visible_if": "{{ block.settings.mobile_custom }}" }, { "type": "range", "id": "xm_3", "label": "Hotspot 3 horizontal", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 78, "visible_if": "{{ block.settings.mobile_custom }}" }, { "type": "range", "id": "ym_3", "label": "Hotspot 3 vertical", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 65, "visible_if": "{{ block.settings.mobile_custom }}" } ] } ], "presets": [ { "name": "Lib · Shoppable carousel", "blocks": [ { "type": "slide" }, { "type": "slide" }, { "type": "slide" } ] } ] } {% endschema %}