Adding a video background to your Shopify store homepage isn’t common option in many themes. Adding a video as background can add more value & impress your visitors at first glance as well encourage them to shop featured products. Using few technical tweaks you can easily add a hero video background to your Shopify homepage using any theme and start impressing your customers. We’re going to teach you how you can add a background video section on your Shopify store for free.
Option 1 – Add custom section in your theme using code.
This step involves some technical steps but do not worry if you’re not familiar with Shopify development. This guide will definitely help you add your video without much hustle.
Step 1: Upload the video you want to use as background on your Shopify store.
To do that follow below steps.
- Go-to Settings, located at bottom left on your Shopify dashboard.
- Click on Files.
- Upload the video you want to use as background.
- Once uploaded copy video URL, We’ll use this later.
Step 2: Add custom Video section to display your video.
- From your Shopify admin dashboard, go to Online Store > Themes.
- Select the theme and click on Actions button (three dots) > Edit code.
- Find Sections folder > Expand > Add a new section.
- Add File name for the section “background-video” and hit Done.
- Remove whole pre-added code and replace with below.
{%- if section.blocks.size > 0 -%} {%- for block in section.blocks -%} {%- assign img_url = block.settings.image | img_url: '1x1' | replace: '_1x1.', '_{width}x.' -%} {% if block.type == 'video' %} <div class="videoBox" style="{%- if block.settings.video_link == blank -%}background-image: url('{{ block.settings.video_image | img_url: 'master' }}');{%- endif -%}"> {%- if block.settings.video_link != blank -%} <div class="fullscreen-video-wrap"> <video class="video-js" loop autoplay preload="none" muted playsinline poster="https:{{ block.settings.video_image | img_url: 'master' }}"> <source src="{{ block.settings.video_link }}" type="video/mp4"> </video> </div> {% endif %} <div class="overlay" style="opacity: 0.{{ block.settings.overlay_opacity }}"></div> <div class="videoBoxInfo"> {% if block.settings.title != blank %} <h1 class="videoBoxInfoTitle" style="color: {{ block.settings.color_text }}"> {{ block.settings.title | escape }} </h1> {% endif %} {%- style -%} .videoBackground .imageBoxInfoDescription p { color: {{ block.settings.color_text }}!important; } {%- endstyle -%} {% if block.settings.text != blank %} <div class="imageBoxInfoDescription" id="{{ block.id }}" style="color: {{ block.settings.color_text }}"> {{ block.settings.text }} </div> {% endif %} {% if block.settings.button_link != blank and block.settings.button_label != blank %} <a href="{{ block.settings.button_link }}" class="videoBoxInfoBtn" style="color: {{ block.settings.color_btn_text }}; background: {{ block.settings.color_btn_bg }}"> {{ block.settings.button_label | escape }} </a> {% endif %} </div> </div> {% else %} <div class="imageBox" style="background-color: {{ block.settings.color_bg }}; {%- if block.settings.image_bg != blank -%}background-image: url('{{ block.settings.image_bg | img_url: 'master' }}');{%- endif -%}"> <div class="overlay" style="opacity: 0.{{ block.settings.overlay_opacity }}"></div> <div class="imageBoxInfo"> {% if block.settings.title != blank %} <h1 class="imageBoxInfoTitle" style="color: {{ block.settings.color_text }}"> {{ block.settings.title | escape }} </h1> {% endif %} {%- style -%} .videoBackground .imageBoxInfoDescription p { color: {{ block.settings.color_text }}!important; } {%- endstyle -%} {% if block.settings.text != blank %} <div class="imageBoxInfoDescription" id="{{ block.id }}" style="color: {{ block.settings.color_text }}"> {{ block.settings.text }} </div> {% endif %} {% if block.settings.button_link != blank and block.settings.button_label != blank %} <a href="{{ block.settings.button_link }}" class="imageBoxInfoBtn" style="color: {{ block.settings.color_btn_text }}; background: {{ block.settings.color_btn_bg }}"> {{ block.settings.button_label | escape }} </a> {% endif %} </div> </div> {% endif %} {%- endfor -%} {% else %} <div class="placeholderNoblocks"> This section doesn’t currently include any content. Add content to this section using the sidebar. </div> {%- endif -%} <style> .main-content .videoBackground { margin-top: -55px; } .videoBackground { height: 100%; position: relative; } .videoBackground .fullscreen-video-wrap { position: absolute; top: 0; left: 0; min-width: 100%; width: 100%; height: 100%; overflow: hidden; } .videoBackground .fullscreen-video-wrap .video-js { position: absolute; top: 0; left: 0; min-height: 100%; min-width: 100%; width: 100%; height: 100%; object-fit: cover; } .videoBackground .fullscreen-video-wrap video { min-height: 100%; min-width: 100%; object-fit: cover; } .videoBackground .videoBox { display: flex; align-items: center; justify-content: flex-end; flex-direction: column; padding: 100px 20px 80px; background-size: cover; background-position: center; background-repeat: no-repeat; min-height: 500px; max-height: 800px; height: calc(100vh - 165px); position: relative; } .videoBackground .imageBox { display: flex; align-items: center; justify-content: flex-end; flex-direction: column; padding: 100px 20px 80px; background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; min-height: calc(100vh - 165px); height: auto; } .videoBackground .videoBoxInfo, .videoBackground .imageBoxInfo { z-index: 2; text-align: center; } .videoBackground .overlay { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; background: #000; z-index: 1; } .videoBackground .videoBoxInfoBtn, .videoBackground .imageBoxInfoBtn { -moz-user-select: none; -ms-user-select: none; -webkit-user-select: none; user-select: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; display: inline-block; width: auto; text-decoration: none; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid transparent; border-radius: 2px; padding: 8px 15px; font-style: normal; font-weight: 800; text-transform: uppercase; letter-spacing: 0.06em; white-space: normal; font-size: 14px; margin-top: 20px; } .videoBackground .videoBoxInfoTitle, .videoBackground .imageBoxInfoTitle { color: #FFF; font-size: 30px; line-height: 40px; } .videoBackground .videoBoxInfoDescription, .videoBackground .imageBoxInfoDescription { max-width: 500px; margin: 0 auto; } .videoBackground .videoBoxInfoDescription p, .videoBackground .imageBoxInfoDescription p { font-size: 18px; line-height: 28px; } .videoBackground .placeholderNoblocks { text-align: center; max-width: 500px; margin: 0 auto; } @media screen and (max-width: 767px) { .main-content .videoBackground { margin-top: -35px; } .videoBackground .fullscreen-video-wrap { z-index: 3; } .videoBackground .videoBox { min-height: 500px; height: 100%; position: relative; padding: 0; } .videoBackground .fullscreen-video-wrap { position: relative; min-height: 300px; } .videoBackground .videoBoxInfo { padding: 40px 20px; background: #000; width: 100%; } } </style> {% schema %} { "name": { "en": "Video Background" }, "class": "videoBackground", "max_blocks": 1, "blocks": [ { "type": "video", "name": "Video", "settings": [ { "type": "url", "id": "video_link", "label": { "en": "Video link" } }, { "type": "image_picker", "id": "video_image", "label": { "en": "Cover image" } }, { "type": "range", "id": "overlay_opacity", "label": { "en": "Overlay opacity" }, "min": 0, "max": 99, "step": 1, "unit": { "en": "%" }, "default": 0 }, { "type": "header", "content": { "en": "Text" } }, { "type": "text", "id": "title", "label": { "en": "Heading" }, "default": "Video slide" }, { "type": "richtext", "id": "text", "label": { "en": "Description" }, "default": { "en": "<p>Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.</p>" } }, { "type": "color", "id": "color_text", "label": { "en": "Text color" }, "default": "#ffffff" }, { "type": "text", "id": "button_label", "label": { "en": "Button label" } }, { "type": "url", "id": "button_link", "label": { "en": "Button link" } }, { "type": "color", "id": "color_btn_bg", "label": { "en": "Background button color" }, "default": "#ffffff" }, { "type": "color", "id": "color_btn_text", "label": { "en": "Button text color" }, "default": "#ffffff" } ] }, { "type": "image", "name": "Image", "settings": [ { "type": "color", "id": "color_bg", "label": { "en": "Background color (optional)" }, "default": "#16165b" }, { "type": "image_picker", "id": "image_bg", "label": { "en": "or use an image (required)" } }, { "type": "range", "id": "overlay_opacity", "label": { "en": "Overlay opacity" }, "min": 0, "max": 99, "step": 1, "unit": { "en": "%" }, "default": 0 }, { "type": "header", "content": { "en": "Text" } }, { "type": "text", "id": "title", "default": "Image slide", "label": { "en": "Heading" } }, { "type": "richtext", "id": "text", "label": { "en": "Description" }, "default": { "en": "<p>Use this text to share information about your brand with your customers. Describe a product, share announcements, or welcome customers to your store.</p>" } }, { "type": "color", "id": "color_text", "label": { "en": "Text color" }, "default": "#ffffff" }, { "type": "text", "id": "button_label", "label": { "en": "Button label" } }, { "type": "url", "id": "button_link", "label": { "en": "Button link" } }, { "type": "color", "id": "color_btn_bg", "label": { "en": "Background button color" }, "default": "#ffffff" }, { "type": "color", "id": "color_btn_text", "label": { "en": "Button text color" }, "default": "#ffffff" } ] } ], "presets": [ { "name": { "en": "Video Background" }, "category": { "en": "Main" }, "blocks": [ { "type": "video" } ] } ] } {% endschema %}
6. Save newly added code and exit code editor.
7. Go to Online store > Customize theme you just edited.
8. From left section click Add section & add Background-video that you just created.
9. Paste video link that you uploaded and edit all details.
10. Click on save and Voila you’ve added video background on your shopify homepage.
NOTE – Adding video background may significantly increase the load time of your Online store and not all browsers may support it. You better make sure that your background video is optimized for best experience & all browsers loads it properly. It’s advised to get help from Professional Shopify Designers for perfect setup.
Option 2 – Use shopify app. for Video Slider.
If you don’t want to do all the technical work specified above, you can simply install an app. to do the same work for you. There are plenty paid options available on Shopify app. store but we’ve curated best FREE Shopify app. by POWR.io so you can conveniently add video background on your Shopify store.
YouTube + Vimeo Video Slider – Shopify App. Link
YouTube & Vimeo Video Slider
Use your video slider to announce sales, promotions, and new products. Embed videos from your YouTube or Vimeo feed on your site.
Personalize Your Video Slider
Customize video slider with titles, transitions, sizing & playback controls. Add videos from YouTube and Vimeo for an easy video embed.
Add Video Background & Banners
Showcase your products with a Vimeo or YouTube slider to keep customers engaged. Add video backgrounds, video testimonials & video banners.
Hope this will help you add Video background on your Shopify store. It’s always best to get professionals do the work so you get best out of your Shopify Store. We offer affordable package for Ecommerce website design & development. Do check our services and get FREE QUOTE FOR THE BEST SHOPIFY STORE and kickstart your online business.