Tuesday, September 1, 2026 Independent ecommerce intelligence
Storefront Daily.

Reporting & research on Shopify and ecommerce

Reference

Horizon Hero Banner: Sizes and Settings Straight From the Code

Horizon's hero has 36 section settings and 8 block types carrying 104 more, and its Height dropdown switches from rem to svh as the screen grows. Read from the theme's source at commit 8b42ace.

By Storefront Daily Research Desk  ·  August 8, 2026  ·  7 min read  ·  AI-drafted from sourced data


Horizon is the theme Shopify ships to new stores, and its Hero section is the first thing most merchants touch. The theme editor shows you a Height dropdown with six choices and an image slot. It does not tell you that three of those choices change their unit of measurement depending on screen width, or that “Large” here means something completely different from “Large” in Dawn.

How we got these numbers. On September 1, 2026 we read the public Shopify/horizon repository at commit 8b42ace (2026-08-31) — Horizon ships no releases and no tags, so the commit is the version. We took the settings schema and the srcset ladders from sections/hero.liquid, 1496 lines; the height variables from snippets/theme-styles-variables.liquid; and the section rules from assets/base.css. Block descriptions were resolved from the theme’s shared blocks/ library, because the hero schema only names them. Every figure was extracted from those files by script.

The heights change unit as the screen grows

This is the part that surprises people. Horizon does not have one height per option — it has three, across two breakpoints, and the unit switches:

SettingMobile≥40em≥60em
Small15rem = 240px40svh50svh
Medium25rem = 400px55svh65svh
Large35rem = 560px70svh80svh

Below 40em the heights are fixed in rem. Above it they become svh, the small viewport height unit — a percentage of the visible screen. So on a phone a Large hero is a fixed 560px tall, and on a wide desktop it is 80% of whatever the visitor’s window happens to be.

Two more heights bypass the table entirely. full-screen sets 100svh. custom exposes a slider, section_height_custom, running 0 to 100% with a default of 50 — and that value is also written straight out as svh, not pixels.

Why “Large” is not the same as Dawn’s “Large”

Both themes offer a Large hero. They are not comparable, for two separate reasons.

The rem base differs. We searched every one of the theme’s files: Horizon never overrides the root font size, so 1rem is the browser default, 16px. Dawn sets font-size: calc(var(--font-body-scale) * 62.5%), which makes 1rem 10px. The same 35rem would mean 560px in Horizon and 350px in Dawn.

The unit differs above the breakpoint. Dawn’s Large is a fixed 720px on desktop, the same on every screen. Horizon’s Large is 80svh, so it grows with the display: about 720px on a 900px-tall window and about 1152px on a 1440px one.

If you are porting a design between the two themes, this is the single setting most likely to break it.

The exact image sizes

Horizon builds a srcset from two hardcoded ladders, at lines 103 and 105 of the section:

LadderRangeStepsWidths requested
Full-width media832–3840px6832, 1200, 1600, 1920, 2560, 3840
Split media416–1600px5416, 600, 800, 1200, 1600

Upload 3840px wide for a hero that spans the page. The narrower ladder tops out at 1600px because each image only ever occupies part of the width there.

Note the bottom rung: Horizon starts at 832px where Dawn starts at 375px. Horizon simply does not serve a phone-sized version of a full-width hero image, which is worth knowing if your traffic is mostly mobile and on slow connections.

The blocks are not in this file

Dawn describes its blocks inside the section schema. Horizon names them and keeps the descriptions in a shared library, so reading sections/hero.liquid alone tells you nothing about what a block can do. Resolved, the 8 types carry 104 settings between them:

TypeNameSettingsDefined in
@theme0wildcard
textText19blocks/text.liquid
buttonButton12blocks/button.liquid
logoLogo15blocks/logo.liquid
jumbo-textJumbo text9blocks/jumbo-text.liquid
spacerSpacer7blocks/spacer.liquid
groupGroup36blocks/group.liquid
_marqueeMarquee6blocks/_marquee.liquid
Settings per block type, Horizon hero group 36 text 19 logo 15 button 12 jumbo-text 9 spacer 7 _marquee 6 Dawn image banner, for comparison: 3 block types carrying 12 settings in total

@theme is a wildcard: it accepts any theme block, which is why it has no settings of its own. group is the heavy one at 36 settings, because it is a layout container that repeats most of the section’s own alignment and spacing controls one level down.

For scale: Dawn’s image banner offers 3 block types carrying 12 settings in total. Horizon’s hero offers 8 carrying 104. That is the real difference between the two themes, and it is not visible anywhere in the theme editor.

Every setting on the section

36 settings, as they appear in the editor:

ID in codeLabel in editorTypeDefaultRange / options
media_type_1Typeselectimage2 options
image_1Imageimage_picker
video_1Videovideo
media_type_2Typeselectimage2 options
image_2Imageimage_picker
video_2Videovideo
stack_media_on_mobileStack mediacheckboxfalse
custom_mobile_mediaShow different media on mobilecheckboxfalse
media_type_1_mobileTypeselectimage2 options
image_1_mobileImageimage_picker
video_1_mobileVideovideo
media_type_2_mobileTypeselectimage2 options
image_2_mobileImageimage_picker
video_2_mobileVideovideo
linkLinkurl
open_in_new_tabOpen link in new tabcheckboxfalse
content_directionDirectionselectcolumn2 options
vertical_on_mobileVertical on mobilecheckboxtrue
horizontal_alignmentAlignmentselectflex-start4 options
vertical_alignmentPositionselectcenter3 options
align_baselineAlign text baselinecheckboxfalse
horizontal_alignment_flex_direction_columnAlignmentselectflex-start3 options
vertical_alignment_flex_direction_columnPositionselectcenter4 options
gapGaprange120–100px, step 1
section_widthWidthselectpage-width2 options
section_heightHeightselectmedium6 options
section_height_customCustom heightrange500–100%, step 1
background_colorBackground colorcolor
toggle_overlayMedia overlaycheckbox
overlay_colorOverlay colorcolor#00000026
overlay_styleOverlay styleselectsolid2 options
gradient_directionGradient directionselectto top2 options
blurred_reflectionBlurred reflectioncheckboxfalse
reflection_opacityReflection opacityrange750–100%, step 1
padding-block-startToprange00–100px, step 1
padding-block-endBottomrange00–100px, step 1

Worth pointing out:

Four separate alignment settings. horizontal_alignment and vertical_alignment apply when content flows in a row; horizontal_alignment_flex_direction_column and vertical_alignment_flex_direction_column apply when it stacks. Change one and the other keeps its old value, which is the usual reason a hero looks right on desktop and wrong on mobile.

reflection_opacity — a slider from 0 to 100%, default 75, paired with blurred_reflection. Dawn has no equivalent.

Four image slots and four video slots. The hero takes media twice over — desktop and a separate mobile set behind custom_mobile_media, which defaults to false.

Checking this yourself

Open sections/hero.liquid and read the {% schema %} block at the bottom for the settings. The heights are lines 143 to 157 of snippets/theme-styles-variables.liquid. Block descriptions are in blocks/ — one file per type, named exactly as the type column above.

Horizon has no releases, so there is no version number to quote. This page names the commit it was read from instead; if the theme changes, these figures move with it.

Frequently asked questions

What image size should I use for the Horizon hero?

3840px wide for a full-width hero. Horizon requests 6 widths from 832px to 3840px. For split media it uses a second ladder of 5 widths topping out at 1600px, so 1600px is enough there.

How tall is the Horizon hero section?

On mobile the fixed options are 240px, 400px and 560px. Above 40em they become 40svh, 55svh and 70svh, and above 60em 50svh, 65svh and 80svh. Full-screen is 100svh and Custom is a slider read directly as svh.

Why does the Horizon hero look taller than the Dawn one at the same setting?

Two reasons. Horizon never overrides the root font size, so 1rem is the browser default 16px, while Dawn sets 62.5% and gets 10px. And above the breakpoint Horizon measures in svh, a percentage of the window, while Dawn stays on a fixed value.

How many settings does the Horizon hero have?

36 on the section itself, plus 8 block types carrying 104 settings between them. The block settings are not in the section file — Horizon keeps them in a shared blocks/ library.

Where are Horizon's block settings defined?

In one file per block type under blocks/ in the theme. The hero schema lists only the type names, so reading the section alone shows blocks with no settings at all. The @theme entry is a wildcard that accepts any theme block.

Sources & data

  1. Shopify/horizon, sections/hero.liquid, settings schema and srcset ladders, read at commit 8b42ace (checked September 1, 2026)
  2. Shopify/horizon, snippets/theme-styles-variables.liquid, source of the section height variables (checked September 1, 2026)
  3. Shopify/horizon, assets/base.css, section height rules (checked September 1, 2026)
  4. Shopify/dawn, layout/theme.liquid, the 62.5% root font-size rule used for the comparison (checked September 1, 2026)
Cite this report: Storefront Daily Research Desk (2026). “Horizon Hero Banner: Sizes and Settings Straight From the Code.” Storefront Daily. https://storefrontdaily.com/guides/horizon-hero-banner-sizes-and-settings/