liquid assign media_count = 0 assign media_count_mobile = 0 assign fallback_to_desktop = assign media_1 = 'none' assign media_2 = 'none' assign media_1_mobile = 'none' assign media_2_mobile = 'none' assign has_only_video = false assign has_only_video_mobile = false # Desktop media checks # For each media slot, check if the media is not blank and the media type matches the slot # Need to check both (1) media picker is not blank AND (2) section.setting.media_type because user can toggle between different media types to display, but choosing "Image" doesn't clear a saved "Video" in the theme editor. # The alternate setting (section.settings.image_1 when "Video" is selected) is only visually hidden in theme editor. if section.settings.image_1 != blank and section.settings.media_type_1 == 'image' assign media_1 = 'image' assign media_count = media_count | plus: 1 endif if section.settings.video_1 != blank and section.settings.media_type_1 == 'video' assign media_1 = 'video' assign media_count = media_count | plus: 1 endif if section.settings.image_2 != blank and section.settings.media_type_2 == 'image' assign media_2 = 'image' assign media_count = media_count | plus: 1 endif if section.settings.video_2 != blank and section.settings.media_type_2 == 'video' assign media_2 = 'video' assign media_count = media_count | plus: 1 endif if section.settings.custom_mobile_media # Mobile media checks # For each media slot, check if the media is not blank and the media type matches the slot if section.settings.image_1_mobile != blank and section.settings.media_type_1_mobile == 'image' assign media_1_mobile = 'image' assign media_count_mobile = media_count_mobile | plus: 1 endif if section.settings.video_1_mobile != blank and section.settings.media_type_1_mobile == 'video' assign media_1_mobile = 'video' assign media_count_mobile = media_count_mobile | plus: 1 endif if section.settings.image_2_mobile != blank and section.settings.media_type_2_mobile == 'image' assign media_2_mobile = 'image' assign media_count_mobile = media_count_mobile | plus: 1 endif if section.settings.video_2_mobile != blank and section.settings.media_type_2_mobile == 'video' assign media_2_mobile = 'video' assign media_count_mobile = media_count_mobile | plus: 1 endif endif if media_count > 0 and media_1 != 'image' and media_2 != 'image' assign has_only_video = true endif if media_count > 0 and media_count_mobile > 0 and media_1_mobile != 'image' and media_2_mobile != 'image' assign has_only_video_mobile = true endif assign media_wrapper_desktop_class = 'hero__media-wrapper hero__media-wrapper--desktop' assign media_wrapper_mobile_class = 'hero__media-wrapper hero__media-wrapper--mobile' # If there is no custom mobile media to show, we add the mobile class to the desktop classes so content is always shown on mobile. if section.settings.custom_mobile_media == false or section.settings.custom_mobile_media == true and media_count_mobile == 0 assign media_wrapper_desktop_class = media_wrapper_desktop_class | append: ' hero__media-wrapper--mobile' endif # Should we show the blurred reflection on mobile? assign show_mobile_blurred_reflection = false if section.settings.blurred_reflection if section.settings.custom_mobile_media == true and media_count_mobile > 0 and has_only_video_mobile == false # Custom mobile media is active and a mobile image is present assign show_mobile_blurred_reflection = true elsif section.settings.custom_mobile_media == true and media_count_mobile == 0 and media_count > 0 and has_only_video == false # Custom mobile media is active, no mobile media is present, but a desktop image is present assign show_mobile_blurred_reflection = true elsif section.settings.custom_mobile_media == false and media_count > 0 and has_only_video == false # Custom mobile media is inactive, but a desktop image is present assign show_mobile_blurred_reflection = true endif endif if media_1 == 'image' and media_2 == 'image' assign media_width_desktop = '50vw' else assign media_width_desktop = '100vw' endif # If custom mobile media is disabled or no mobile media is present, we need to fallback to desktop media. if section.settings.custom_mobile_media == false or media_count_mobile == 0 or media_count == 0 assign media_count_mobile = media_count assign fallback_to_desktop = true endif if fallback_to_desktop assign media_width_mobile = media_width_desktop elsif section.settings.stack_media_on_mobile or media_1_mobile != 'image' or media_2_mobile != 'image' assign media_width_mobile = '100vw' else assign media_width_mobile = '50vw' endif assign sizes = '(min-width: 750px) ' | append: media_width_desktop | append: ', ' | append: media_width_mobile assign widths = '832, 1200, 1600, 1920, 2560, 3840' assign sizes_mobile = media_width_mobile assign mobile_widths = '416, 600, 800, 1200, 1600' assign mobile_widths_array = mobile_widths | split: ', ' assign fetch_priority = 'auto' if section.index == 1 assignfetchpriority=high' endif capture media_slot_1 - if media_1 == 'image' and media_1_mobile == 'image'
endifendcapture capture media_slot_2capture media capture media_blurred capture mobile_media_blurred
schema { "name": "t:names.hero", "tag": "section", "class": "hero-wrapper section-wrapper", "blocks": [ { "type": "@theme" }, { "type": "text" }, { "type": "button" }, { "type": "logo" }, { "type": "jumbo-text" }, { "type": "spacer" }, { "type": "group" }, { "type": "_marquee" } ], "disabled_on": { "groups": ["header"] }, "settings": [ { "type": "header", "content": "t:content.media_1" }, { "type": "select", "id": "media_type_1", "label": "t:settings.type", "options": [ { "value": "image", "label": "t:options.image" }, { "value": "video", "label": "t:options.video" } ], "default": "image" }, { "type": "image_picker", "id": "image_1", "label": "t:settings.image", "visible_if": " section.settings.media_type_1 == 'image' }, { "type": "video", "id": "video_1", "label": "t:settings.video", "visible_if": " section.settings.media_type_1 == 'video' }, { "type": "header", "content": "t:content.media_2" }, { "type": "select", "id": "media_type_2", "label": "t:settings.type", "options": [ { "value": "image", "label": "t:options.image" }, { "value": "video", "label": "t:options.video" } ], "default": "image" }, { "type": "image_picker", "id": "image_2", "label": "t:settings.image", "visible_if": "section.settings.media_type_2 == 'image' }, { "type": "video", "id": "video_2", "label": "t:settings.video", "visible_if": " section.settings.media_type_2 == 'video' }, { "type": "header", "content": "t:content.mobile_media" }, { "type": "checkbox", "id": "stack_media_on_mobile", "label": "t:settings.stack_media_on_mobile", "default": false }, { "type": "checkbox", "id": "custom_mobile_media", "label": "t:settings.custom_mobile_media", "default": false }, { "type": "header", "content": "t:content.mobile_media_1", "visible_if": "" }, { "type": "select", "id": "media_type_1_mobile", "label": "t:settings.type", "options": [ { "value": "image", "label": "t:options.image" }, { "value": "video", "label": "t:options.video" } ], "default": "image", "visible_if": "section.settings.custom_mobile_media }, { "type": "image_picker", "id": "image_1_mobile", "label": "t:settings.image", "visible_if": "section.settings.custom_mobile_media and section.settings.media_type_1_mobile == 'image' }, { "type": "video", "id": "video_1_mobile", "label": "t:settings.video", "visible_if": "section.settings.custom_mobile_media and section.settings.media_type_1_mobile == 'video' }, { "type": "header", "content": "t:content.mobile_media_2", "visible_if": section.settings.custom_mobile_media }, { "type": "select", "id": "media_type_2_mobile", "label": "t:settings.type", "options": [ { "value": "image", "label": "t:options.image" }, { "value": "video", "label": "t:options.video" } ], "default": "image", "visible_if": "" }, { "type": "image_picker", "id": "image_2_mobile", "label": "t:settings.image", "visible_if": "section.settings.custom_mobile_media and section.settings.media_type_2_mobile == 'image' }, { "type": "video", "id": "video_2_mobile", "label": "t:settings.video", "visible_if": "section.settings.custom_mobile_media and section.settings.media_type_2_mobile == 'video' }, { "type": "header", "content": "t:content.section_link" }, { "type": "url", "id": "link", "label": "t:settings.link" }, { "type": "checkbox", "id": "open_in_new_tab", "label": "t:settings.open_new_tab", "default": false }, { "type": "header", "content": "t:content.layout" }, { "type": "select", "id": "content_direction", "label": "t:settings.direction", "options": [ { "value": "column", "label": "t:options.vertical" }, { "value": "row", "label": "t:options.horizontal" } ], "default": "column" }, { "type": "checkbox", "id": "vertical_on_mobile", "label": "t:settings.vertical_on_mobile", "default": true, "visible_if": " section.settings.content_direction == 'row' }, { "type": "select", "id": "horizontal_alignment", "label": "t:settings.alignment", "options": [ { "value": "flex-start", "label": "t:options.left" }, { "value": "center", "label": "t:options.center" }, { "value": "flex-end", "label": "t:options.right" }, { "value": "space-between", "label": "t:options.space_between" } ], "default": "flex-start", "visible_if": " section.settings.content_direction == 'row' }, { "type": "select", "id": "vertical_alignment", "label": "t:settings.position", "options": [ { "value": "flex-start", "label": "t:options.top" }, { "value": "center", "label": "t:options.center" }, { "value": "flex-end", "label": "t:options.bottom" } ], "default": "center", "visible_if": " section.settings.content_direction == 'row' }, { "type": "checkbox", "id": "align_baseline", "label": "t:settings.align_baseline", "default": false, "visible_if": " section.settings.vertical_alignment == 'flex-end' }, { "type": "select", "id": "horizontal_alignment_flex_direction_column", "label": "t:settings.alignment", "options": [ { "value": "flex-start", "label": "t:options.left" }, { "value": "center", "label": "t:options.center" }, { "value": "flex-end", "label": "t:options.right" } ], "default": "flex-start", "visible_if": "section.settings.content_direction != 'row' }, { "type": "select", "id": "vertical_alignment_flex_direction_column", "label": "t:settings.position", "options": [ { "value": "flex-start", "label": "t:options.top" }, { "value": "center", "label": "t:options.center" }, { "value": "flex-end", "label": "t:options.bottom" }, { "value": "space-between", "label": "t:options.space_between" } ], "default": "center", "visible_if": "section.settings.content_direction == 'column' }, { "type": "range", "id": "gap", "label": "t:settings.gap", "min": 0, "max": 100, "step": 1, "unit": "px", "default": 12 }, { "type": "select", "id": "section_width", "label": "t:settings.width", "options": [ { "value": "page-width", "label": "t:options.page" }, { "value": "full-width", "label": "t:options.full" } ], "default": "page-width" }, { "type": "select", "id": "section_height", "label": "t:settings.height", "options": [ { "value": "auto", "label": "t:options.auto" }, { "value": "small", "label": "t:options.small" }, { "value": "medium", "label": "t:options.medium" }, { "value": "large", "label": "t:options.large" }, { "value": "full-screen", "label": "t:options.full_screen" }, { "value": "custom", "label": "t:options.custom" } ], "default": "medium" }, { "type": "range", "id": "section_height_custom", "label": "t:settings.custom_height", "min": 0, "max": 100, "step": 1, "default": 50, "unit": "%", "visible_if": " section.settings.section_height == 'custom' }, { "type": "header", "content": "t:content.appearance" }, { "type": "color", "id": "background_color", "label": "t:settings.background_color", "placeholder": "t:settings.default" }, { "type": "checkbox", "id": "toggle_overlay", "label": "t:settings.media_overlay" }, { "type": "color", "id": "overlay_color", "label": "t:settings.overlay_color", "alpha": true, "default": "#00000026", "visible_if": "section.settings.toggle_overlay }, { "type": "select", "id": "overlay_style", "label": "t:settings.overlay_style", "options": [ { "value": "solid", "label": "t:options.solid" }, { "value": "gradient", "label": "t:options.gradient" } ], "default": "solid", "visible_if": " section.settings.toggle_overlay }, { "type": "select", "id": "gradient_direction", "label": "t:settings.gradient_direction", "options": [ { "value": "to top", "label": "t:options.up" }, { "value": "to bottom", "label": "t:options.down" } ], "default": "to top", "visible_if": "section.settings.toggle_overlay and section.settings.overlay_style == 'gradient' }, { "type": "checkbox", "id": "blurred_reflection", "label": "t:settings.blurred_reflection", "default": false, "info": "t:info.applies_on_image_only", "visible_if": " section.settings.media_type_1 != 'video' or section.settings.media_type_2 != 'video' or section.settings.media_type_1_mobile != 'video' or section.settings.media_type_2_mobile != 'video' }, { "type": "range", "id": "reflection_opacity", "label": "t:settings.reflection_opacity", "min": 0, "max": 100, "step": 1, "unit": "%", "default": 75, "visible_if": "section.settings.blurred_reflection and section.settings.media_type_1 != 'video' or section.settings.media_type_2 != 'video' }}" }, { "type": "header", "content": "t:content.padding" }, { "type": "range", "id": "padding-block-start", "label": "t:settings.top", "min": 0, "max": 100, "step": 1, "unit": "px", "default": 0 }, { "type": "range", "id": "padding-block-end", "label": "t:settings.bottom", "min": 0, "max": 100, "step": 1, "unit": "px", "default": 0 } ], "presets": [ { "name": "t:names.hero", "category": "t:categories.banners", "blocks": { "text_1": { "type": "text", "settings": { "text": "t:html_defaults.new_arrivals_h2", "type_preset": "h1", "max_width": "narrow" } }, "text_2": { "type": "text", "settings": { "text": "t:html_defaults.made_with_care", "max_width": "narrow", "padding-block-end": 32 } }, "button": { "type": "button", "name": "t:names.button", "settings": { "label": "t:text_defaults.shop_now_button_label", "link": "shopify://collections/all" } } }, "block_order": ["text_1", "text_2", "button"], "settings": { "horizontal_alignment_flex_direction_column": "center", "gap": 16, "section_height": "large", "padding-block-start": 40, "padding-block-end": 40, "toggle_overlay": true, "overlay_style": "gradient" } }, { "name": "t:names.hero_marquee", "category": "t:categories.banners", "blocks": { "spacer": { "type": "spacer", "settings": { "size": "pixel", "pixel_size": 24 } }, "marquee": { "type": "_marquee", "blocks": { "text": { "type": "text", "settings": { "text": "t:html_defaults.explore_latest_products", "type_preset": "h1" } } }, "block_order": ["text"] }, "button": { "type": "button", "settings": { "label": "t:text_defaults.shop_now_button_label", "link": "shopify://collections/all" } } }, "block_order": ["spacer", "marquee", "button"], "settings": { "horizontal_alignment_flex_direction_column": "center", "vertical_alignment_flex_direction_column": "space-between", "gap": 32, "section_height": "large", "padding-block-start": 0, "padding-block-end": 40, "toggle_overlay": true, "overlay_style": "gradient" } }, { "name": "t:names.hero_bottom_aligned", "category": "t:categories.banners", "blocks": { "group_main": { "type": "group", "name": "t:names.group", "settings": { "content_direction": "row", "vertical_on_mobile": true, "horizontal_alignment": "flex-start", "vertical_alignment": "flex-end", "align_baseline": true, "horizontal_alignment_flex_direction_column": "flex-start", "vertical_alignment_flex_direction_column": "center", "gap": 18, "width": "fill", "custom_width": 100, "width_mobile": "fill", "custom_width_mobile": 100, "height": "fit", "custom_height": 100, "background_media": "none", "video_position": "cover", "background_image_position": "cover", "border": "none", "border_width": 1, "border_opacity": 100, "border_radius": 0, "padding-block-start": 0, "padding-block-end": 0, "padding-inline-start": 0, "padding-inline-end": 0 }, "blocks": { "content_group": { "type": "group", "name": "t:names.group", "settings": { "content_direction": "column", "vertical_on_mobile": true, "horizontal_alignment": "flex-start", "vertical_alignment": "center", "align_baseline": false, "horizontal_alignment_flex_direction_column": "flex-start", "vertical_alignment_flex_direction_column": "center", "gap": 6, "width": "custom", "custom_width": 100, "width_mobile": "fill", "custom_width_mobile": 100, "height": "fit", "custom_height": 100, "background_media": "none", "video_position": "cover", "background_image_position": "cover", "border": "none", "border_width": 1, "border_opacity": 100, "border_radius": 0, "padding-block-start": 0, "padding-block-end": 0, "padding-inline-start": 0, "padding-inline-end": 0 }, "blocks": { "text_intro": { "type": "text", "name": "t:names.text", "settings": { "text": "t:html_defaults.introducing_p", "width": "100%", "max_width": "normal", "alignment": "left", "type_preset": "h6", "font": "var(--font-accent--family)", "font_size": "1rem", "line_height": "normal", "letter_spacing": "normal", "case": "none", "wrap": "pretty", "padding-block-start": 0, "padding-block-end": 0, "padding-inline-start": 0, "padding-inline-end": 0 } }, "text_main": { "type": "text", "name": "t:names.heading", "settings": { "text": "t:html_defaults.new_arrivals_h2", "width": "100%", "max_width": "normal", "alignment": "left", "type_preset": "h2", "font": "var(--font-primary--family)", "font_size": "", "line_height": "normal", "letter_spacing": "normal", "case": "none", "wrap": "pretty", "padding-block-start": 0, "padding-block-end": 0, "padding-inline-start": 0, "padding-inline-end": 0 } } }, "block_order": ["text_intro", "text_main"] }, "text_description": { "type": "text", "name": "t:names.text", "settings": { "text": "t:html_defaults.make_things_better_extended", "width": "fit-content", "max_width": "none", "alignment": "left", "type_preset": "rte", "font": "var(--font-primary--family)", "font_size": "", "line_height": "normal", "letter_spacing": "normal", "case": "none", "wrap": "pretty", "padding-block-start": 0, "padding-block-end": 0, "padding-inline-start": 0, "padding-inline-end": 0 } } }, "block_order": ["content_group", "text_description"] } }, "block_order": ["group_main"], "settings": { "media_type_1": "image", "horizontal_alignment_flex_direction_column": "center", "vertical_alignment_flex_direction_column": "flex-end", "gap": 16, "section_height": "large", "padding-block-start": 40, "padding-block-end": 40, "toggle_overlay": true, "overlay_style": "gradient", "gradient_direction": "to top"