This custom code is completely free to use, but please note it does not include 1-on-1 technical support. If you need a bespoke, done-for-you solution to customize your Shopify store, my team is here to help! Head to my channel homepage and use the link in the trailer to reach out.
{% comment %}
<!-- Designed by ONHOW Studio - Anas El Medlaoui -->
{% endcomment %}
{%- assign onhow_studio_section_id = section.id | replace: '-', '_' -%}
{%- assign onhow_studio_desktop_vid = section.settings.onhow_studio_desktop_video -%}
{%- assign onhow_studio_mobile_vid = section.settings.onhow_studio_mobile_video -%}
{%- assign onhow_studio_has_video = false -%}
{%- if onhow_studio_desktop_vid != blank or onhow_studio_mobile_vid != blank -%}
{%- assign onhow_studio_has_video = true -%}
{%- endif -%}
{%- if section.settings.onhow_studio_enable_section and onhow_studio_has_video -%}
<div id="onhow-studio-video-intro-{{ section.id }}"
class="onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }}"
data-session-type="{{ section.settings.onhow_studio_session_type }}"
data-auto-close-delay="{{ section.settings.onhow_studio_auto_close_delay }}"
style="--onhow-studio-bg: {{ section.settings.onhow_studio_bg_color }};
--onhow-studio-text: {{ section.settings.onhow_studio_text_color }};
--onhow-studio-overlay-opacity: {{ section.settings.onhow_studio_overlay_opacity | divided_by: 100.0 }};
--onhow-studio-text-size: {{ section.settings.onhow_studio_text_size }}px;
--onhow-studio-logo-size: {{ section.settings.onhow_studio_logo_size }}px;">
<div class="onhow-studio-video-container">
{%- if onhow_studio_desktop_vid != blank -%}
<video class="onhow-studio-desktop-video onhow-studio-video-element" muted playsinline preload="auto">
{%- for source in onhow_studio_desktop_vid.sources -%}
<source src="{{ source.url }}" type="{{ source.mime_type }}">
{%- endfor -%}
</video>
{%- endif -%}
{%- if onhow_studio_mobile_vid != blank -%}
<video class="onhow-studio-mobile-video onhow-studio-video-element" muted playsinline preload="auto">
{%- for source in onhow_studio_mobile_vid.sources -%}
<source src="{{ source.url }}" type="{{ source.mime_type }}">
{%- endfor -%}
</video>
{%- endif -%}
<div class="onhow-studio-video-overlay"></div>
<div class="onhow-studio-content-overlay onhow-studio-position-{{ section.settings.onhow_studio_content_position }}">
{%- if section.settings.onhow_studio_overlay_text != blank -%}
<div class="onhow-studio-text-content">
{{ section.settings.onhow_studio_overlay_text }}
</div>
{%- endif -%}
{%- if section.settings.onhow_studio_overlay_logo != blank -%}
<div class="onhow-studio-logo-content">
{{ section.settings.onhow_studio_overlay_logo | image_url: width: 500 | image_tag: alt: 'Video Overlay Logo', loading: 'eager', class: 'onhow-studio-logo-img' }}
</div>
{%- else -%}
<div class="onhow-studio-logo-content">
{{ 'image' | placeholder_svg_tag: 'onhow-studio-logo-placeholder' }}
</div>
{%- endif -%}
</div>
<button type="button"
class="onhow-studio-skip-button onhow-studio-skip-{{ section.settings.onhow_studio_skip_position }}"
aria-label="{{ section.settings.onhow_studio_skip_text | default: 'Skip Intro' }}"
onclick="onhowStudioCloseVideo_{{ onhow_studio_section_id }}()">
{{ section.settings.onhow_studio_skip_text | default: 'Skip Intro' }}
</button>
</div>
</div>
<style>
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} * {
box-sizing: border-box;
}
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} p,
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} h1,
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} h2,
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} ul {
margin: 0;
padding: 0;
}
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }} {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
z-index: 999999;
background: var(--onhow-studio-bg, #000000);
opacity: 1;
visibility: visible;
transition: opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
will-change: opacity;
}
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }}.onhow-studio-fade-out {
opacity: 0;
pointer-events: none;
}
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }}.onhow-studio-hidden {
display: none;
}
#shopify-section-{{ section.id }} .onhow-studio-video-container {
position: relative;
width: 100%;
height: 100%;
cursor: pointer;
background: #000;
}
#shopify-section-{{ section.id }} .onhow-studio-video-element {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 1;
}
#shopify-section-{{ section.id }} .onhow-studio-desktop-video {
display: block;
}
#shopify-section-{{ section.id }} .onhow-studio-mobile-video {
display: none;
}
#shopify-section-{{ section.id }} .onhow-studio-video-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, var(--onhow-studio-overlay-opacity));
z-index: 2;
pointer-events: none;
}
#shopify-section-{{ section.id }} .onhow-studio-content-overlay {
position: absolute;
left: 50%;
transform: translateX(-50%);
z-index: 3;
text-align: center;
pointer-events: none;
max-width: 90%;
}
#shopify-section-{{ section.id }} .onhow-studio-position-top {
top: 20%;
transform: translateX(-50%) translateY(-50%);
}
#shopify-section-{{ section.id }} .onhow-studio-position-center {
top: 50%;
transform: translateX(-50%) translateY(-50%);
}
#shopify-section-{{ section.id }} .onhow-studio-position-bottom {
bottom: 20%;
transform: translateX(-50%) translateY(50%);
}
#shopify-section-{{ section.id }} .onhow-studio-text-content {
color: var(--onhow-studio-text, #ffffff);
font-size: var(--onhow-studio-text-size);
font-weight: 700;
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
line-height: 1.2;
margin-bottom: 1rem;
font-family: var(--font-heading-family);
}
#shopify-section-{{ section.id }} .onhow-studio-logo-content {
display: flex;
justify-content: center;
align-items: center;
}
#shopify-section-{{ section.id }} .onhow-studio-logo-img {
max-width: var(--onhow-studio-logo-size);
height: auto;
filter: drop-shadow(2px 2px 8px rgba(0, 0, 0, 0.6));
}
#shopify-section-{{ section.id }} .onhow-studio-logo-placeholder {
max-width: var(--onhow-studio-logo-size);
height: auto;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-button {
position: absolute;
background: rgba({{ section.settings.onhow_studio_skip_bg_color.red }}, {{ section.settings.onhow_studio_skip_bg_color.green }}, {{ section.settings.onhow_studio_skip_bg_color.blue }}, 0.85);
color: {{ section.settings.onhow_studio_skip_text_color }};
border: 1px solid rgba(255, 255, 255, 0.2);
padding: 0.75rem 1.5rem;
border-radius: 2rem;
font-size: 0.875rem;
font-weight: 600;
font-family: var(--font-body-family);
cursor: pointer;
z-index: 4;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
white-space: nowrap;
opacity: 0;
animation: onhowStudioSkipFadeIn_{{ section.id | replace: '-', '_' }} 0.4s ease forwards;
animation-delay: 2s;
}
@keyframes onhowStudioSkipFadeIn_{{ section.id | replace: '-', '_' }} {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
#shopify-section-{{ section.id }} .onhow-studio-skip-button:hover {
background: rgba({{ section.settings.onhow_studio_skip_bg_color.red }}, {{ section.settings.onhow_studio_skip_bg_color.green }}, {{ section.settings.onhow_studio_skip_bg_color.blue }}, 1);
transform: translateY(-2px) scale(1.02);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}
#shopify-section-{{ section.id }} .onhow-studio-skip-button:active {
transform: translateY(0) scale(0.98);
}
#shopify-section-{{ section.id }} .onhow-studio-skip-top-right {
top: 2rem;
right: 2rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-top-left {
top: 2rem;
left: 2rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-right {
bottom: 2rem;
right: 2rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-left {
bottom: 2rem;
left: 2rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-center {
bottom: 2rem;
left: 50%;
transform: translateX(-50%);
}
body.onhow-studio-video-playing {
overflow: hidden;
height: 100vh;
}
@media (max-width: 768px) {
#shopify-section-{{ section.id }} .onhow-studio-desktop-video {
display: none;
}
#shopify-section-{{ section.id }} .onhow-studio-mobile-video {
display: block;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-button {
padding: calc(0.75rem * 0.75) calc(1.5rem * 0.75);
font-size: 0.8125rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-top-right,
#shopify-section-{{ section.id }} .onhow-studio-skip-top-left {
top: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-top-right {
right: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-top-left {
left: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-right,
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-left,
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-center {
bottom: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-right {
right: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-skip-bottom-left {
left: 1rem;
}
#shopify-section-{{ section.id }} .onhow-studio-text-content {
font-size: calc(var(--onhow-studio-text-size) * 0.8);
}
#shopify-section-{{ section.id }} .onhow-studio-logo-img,
#shopify-section-{{ section.id }} .onhow-studio-logo-placeholder {
max-width: calc(var(--onhow-studio-logo-size) * 0.8);
}
}
@media (prefers-reduced-motion: reduce) {
#shopify-section-{{ section.id }} .onhow-studio-section-wrapper-{{ section.settings.onhow_studio_core_logic }},
#shopify-section-{{ section.id }} .onhow-studio-skip-button {
transition: none;
animation: none;
opacity: 1;
}
}
</style>
<script>
(function() {
const onhowStudioCredit = atob("RGVzaWduZWQgYnkgT05IT1cgU3R1ZGlvIC0gU3Vic2NyaWJlIQ==");
console.log(`%c ${onhowStudioCredit}`, 'background: #222; color: #00ff00; padding: 4px; border-radius: 4px;');
var onhow_studio_root_{{ onhow_studio_section_id }} = document.querySelector('#shopify-section-{{ section.id }}');
var onhow_studio_section_{{ onhow_studio_section_id }} = onhow_studio_root_{{ onhow_studio_section_id }}?.querySelector('#onhow-studio-video-intro-{{ section.id }}');
var onhow_studio_container_{{ onhow_studio_section_id }} = onhow_studio_section_{{ onhow_studio_section_id }}?.querySelector('.onhow-studio-video-container');
var onhow_studio_desktop_{{ onhow_studio_section_id }} = onhow_studio_section_{{ onhow_studio_section_id }}?.querySelector('.onhow-studio-desktop-video');
var onhow_studio_mobile_{{ onhow_studio_section_id }} = onhow_studio_section_{{ onhow_studio_section_id }}?.querySelector('.onhow-studio-mobile-video');
var onhow_studio_current_{{ onhow_studio_section_id }} = null;
var onhow_studio_playing_{{ onhow_studio_section_id }} = false;
var onhow_studio_timer_{{ onhow_studio_section_id }} = null;
function onhowStudioGetActiveVideo_{{ onhow_studio_section_id }}() {
var isMobile = window.innerWidth <= 768;
var preferred = isMobile ? onhow_studio_mobile_{{ onhow_studio_section_id }} : onhow_studio_desktop_{{ onhow_studio_section_id }};
return preferred || onhow_studio_desktop_{{ onhow_studio_section_id }} || onhow_studio_mobile_{{ onhow_studio_section_id }};
}
function onhowStudioCheckSession_{{ onhow_studio_section_id }}() {
var sessionType = onhow_studio_section_{{ onhow_studio_section_id }}?.dataset.sessionType;
var sessionKey = 'onhow_studio_video_played_{{ onhow_studio_section_id }}';
if (sessionType === 'once' && sessionStorage.getItem(sessionKey)) {
onhowStudioCloseVideo_{{ onhow_studio_section_id }}(true);
return false;
}
return true;
}
function onhowStudioStartTimer_{{ onhow_studio_section_id }}() {
var delay = parseInt(onhow_studio_section_{{ onhow_studio_section_id }}?.dataset.autoCloseDelay) || 0;
if (delay > 0) {
onhow_studio_timer_{{ onhow_studio_section_id }} = setTimeout(function() {
onhowStudioCloseVideo_{{ onhow_studio_section_id }}();
}, delay * 1000);
}
}
function onhowStudioPlayVideo_{{ onhow_studio_section_id }}() {
if (!onhow_studio_current_{{ onhow_studio_section_id }} || onhow_studio_playing_{{ onhow_studio_section_id }}) return;
var playPromise = onhow_studio_current_{{ onhow_studio_section_id }}.play();
if (playPromise !== undefined) {
playPromise.then(function() {
onhow_studio_playing_{{ onhow_studio_section_id }} = true;
document.body.classList.add('onhow-studio-video-playing');
if (onhow_studio_timer_{{ onhow_studio_section_id }}) {
clearTimeout(onhow_studio_timer_{{ onhow_studio_section_id }});
}
}).catch(function() {});
}
}
window.onhowStudioCloseVideo_{{ onhow_studio_section_id }} = function(immediate) {
if (onhow_studio_timer_{{ onhow_studio_section_id }}) {
clearTimeout(onhow_studio_timer_{{ onhow_studio_section_id }});
}
document.body.classList.remove('onhow-studio-video-playing');
var sessionType = onhow_studio_section_{{ onhow_studio_section_id }}?.dataset.sessionType;
if (sessionType === 'once') {
sessionStorage.setItem('onhow_studio_video_played_{{ onhow_studio_section_id }}', 'true');
}
if (immediate) {
onhow_studio_section_{{ onhow_studio_section_id }}.style.display = 'none';
return;
}
onhow_studio_section_{{ onhow_studio_section_id }}.classList.add('onhow-studio-fade-out');
setTimeout(function() {
onhow_studio_section_{{ onhow_studio_section_id }}.style.display = 'none';
}, 800);
};
function onhowStudioInit_{{ onhow_studio_section_id }}() {
if (!onhow_studio_section_{{ onhow_studio_section_id }} || !onhowStudioCheckSession_{{ onhow_studio_section_id }}()) return;
onhow_studio_current_{{ onhow_studio_section_id }} = onhowStudioGetActiveVideo_{{ onhow_studio_section_id }}();
if (!onhow_studio_current_{{ onhow_studio_section_id }}) {
onhowStudioCloseVideo_{{ onhow_studio_section_id }}(true);
return;
}
document.body.classList.add('onhow-studio-video-playing');
onhow_studio_current_{{ onhow_studio_section_id }}.addEventListener('ended', function() {
onhowStudioCloseVideo_{{ onhow_studio_section_id }}();
});
if (onhow_studio_container_{{ onhow_studio_section_id }}) {
onhow_studio_container_{{ onhow_studio_section_id }}.addEventListener('click', function() {
onhowStudioPlayVideo_{{ onhow_studio_section_id }}();
});
}
onhowStudioStartTimer_{{ onhow_studio_section_id }}();
onhowStudioPlayVideo_{{ onhow_studio_section_id }}();
window.addEventListener('resize', function() {
var newVideo = onhowStudioGetActiveVideo_{{ onhow_studio_section_id }}();
if (newVideo !== onhow_studio_current_{{ onhow_studio_section_id }}) {
onhow_studio_current_{{ onhow_studio_section_id }} = newVideo;
onhow_studio_playing_{{ onhow_studio_section_id }} = false;
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', onhowStudioInit_{{ onhow_studio_section_id }});
} else {
onhowStudioInit_{{ onhow_studio_section_id }}();
}
})();
</script>
{%- endif -%}
{% comment %}
<!-- Designed by ONHOW Studio - Anas El Medlaoui -->
{% endcomment %}
{% schema %}
{
"name": "OnHOW 3D Intro",
"settings": [
{
"type": "header",
"content": "✨ Built by ONHOW Studio"
},
{
"type": "paragraph",
"content": "Get free sections & tutorials at youtube.com/@ONHOWStudio"
},
{
"type": "text",
"id": "onhow_studio_core_logic",
"label": "Section Architecture (Do Not Edit)",
"default": "built-by-onhow-studio",
"info": "Modifying this will break the section's CSS layout."
},
{
"type": "header",
"content": "― Core Settings ―"
},
{
"type": "checkbox",
"id": "onhow_studio_enable_section",
"label": "Enable Intro Video",
"default": true
},
{
"type": "color",
"id": "onhow_studio_bg_color",
"label": "Background Color",
"default": "#000000"
},
{
"type": "color",
"id": "onhow_studio_text_color",
"label": "Text Color",
"default": "#ffffff"
},
{
"type": "header",
"content": "― Video Sources ―"
},
{
"type": "video",
"id": "onhow_studio_desktop_video",
"label": "Desktop Video"
},
{
"type": "video",
"id": "onhow_studio_mobile_video",
"label": "Mobile Video"
},
{
"type": "header",
"content": "― Text Overlay ―"
},
{
"type": "textarea",
"id": "onhow_studio_overlay_text",
"label": "Overlay Text"
},
{
"type": "range",
"id": "onhow_studio_text_size",
"min": 24,
"max": 120,
"step": 2,
"unit": "px",
"label": "Text Size",
"default": 48
},
{
"type": "header",
"content": "― Logo Overlay ―"
},
{
"type": "image_picker",
"id": "onhow_studio_overlay_logo",
"label": "Overlay Logo"
},
{
"type": "range",
"id": "onhow_studio_logo_size",
"min": 50,
"max": 500,
"step": 10,
"unit": "px",
"label": "Logo Size",
"default": 200
},
{
"type": "header",
"content": "― Content Position ―"
},
{
"type": "select",
"id": "onhow_studio_content_position",
"label": "Content Position",
"options": [
{ "value": "top", "label": "Top Center" },
{ "value": "center", "label": "Center Center" },
{ "value": "bottom", "label": "Bottom Center" }
],
"default": "center"
},
{
"type": "header",
"content": "― Skip Button ―"
},
{
"type": "text",
"id": "onhow_studio_skip_text",
"label": "Skip Button Text",
"default": "Skip Intro"
},
{
"type": "select",
"id": "onhow_studio_skip_position",
"label": "Skip Button Position",
"options": [
{ "value": "top-right", "label": "Top Right" },
{ "value": "top-left", "label": "Top Left" },
{ "value": "bottom-right", "label": "Bottom Right" },
{ "value": "bottom-left", "label": "Bottom Left" },
{ "value": "bottom-center", "label": "Bottom Center" }
],
"default": "top-right"
},
{
"type": "color",
"id": "onhow_studio_skip_bg_color",
"label": "Skip Button Background",
"default": "#000000"
},
{
"type": "color",
"id": "onhow_studio_skip_text_color",
"label": "Skip Button Text Color",
"default": "#ffffff"
},
{
"type": "header",
"content": "― Effects ―"
},
{
"type": "range",
"id": "onhow_studio_overlay_opacity",
"min": 0,
"max": 80,
"step": 5,
"unit": "%",
"label": "Dark Overlay Opacity",
"default": 20
},
{
"type": "range",
"id": "onhow_studio_auto_close_delay",
"min": 0,
"max": 30,
"step": 1,
"unit": "s",
"label": "Auto Close Delay",
"default": 10,
"info": "Set to 0 to disable auto-close"
},
{
"type": "header",
"content": "― Session Management ―"
},
{
"type": "select",
"id": "onhow_studio_session_type",
"label": "Show Video",
"options": [
{ "value": "once", "label": "Once Per Session" },
{ "value": "always", "label": "Every Visit" }
],
"default": "once"
}
],
"presets": [
{
"name": "OnHOW 3D Intro (By ONHOW Studio)"
}
]
}
{% endschema %}

