Overview
Horizon follows Shopify’s theme architecture with enhanced organization and modern patterns. Understanding this structure is essential for effective theme development.Sections
Sections are the primary building blocks of Shopify pages. Horizon includes 41 sections organized by purpose.Universal Sections
_blocks.liquid - The Foundation
The _blocks.liquid section is Horizon’s most flexible container:
sections/_blocks.liquid
The
{ "type": "@theme" } block type allows any theme block to be added, making this section universally flexible.Layout Sections
Hero Section (hero.liquid)
Hero Section (hero.liquid)
The hero section supports dual media (images/videos), custom layouts, and flexible content positioning:Key Features:
- Dual media slots (desktop + mobile)
- Blurred reflection effects
- Custom height options
- Background overlays with gradients
Carousel Section (carousel.liquid)
Carousel Section (carousel.liquid)
Collection List (collection-list.liquid)
Collection List (collection-list.liquid)
Features the advanced bento grid layout system for visually dynamic collection displays.
Page-Specific Sections
- Product
- Collection
- Blog
- Cart
main-product.liquid- Main product page sectionfeatured-product.liquid- Featured product showcasefeatured-product-information.liquid- Product details
Header & Footer Groups
Section groups enable modular header/footer architecture:sections/header-group.json
Blocks
Theme blocks (94 total) are prefixed with_ and provide reusable components.
Block Categories
Content Blocks
_heading.liquid- Customizable headings_content.liquid- Nested content groups_divider.liquid- Section dividers_inline-text.liquid- Inline typography
Media Blocks
_image.liquid- Responsive images_media.liquid- Video/image media_carousel-content.liquid- Carousel items_layered-slide.liquid- Layered slideshows
Product Blocks
_product-card.liquid- Product cards_product-card-gallery.liquid- Product images_featured-product.liquid- Featured products_featured-product-price.liquid- Pricing display
Navigation Blocks
_header-logo.liquid- Site logo_header-menu.liquid- Navigation menus_footer-social-icons.liquid- Social links_announcement.liquid- Announcements
Block Schema Example
blocks/_content.liquid
The
_content block is nestable - it accepts other theme blocks, enabling complex layouts through composition.Snippets
Horizon contains 93 snippets organized by functionality.Core Snippets
section.liquid - Universal Section Wrapper
section.liquid - Universal Section Wrapper
snippets/section.liquid
- Color scheme application
- Background media rendering
- Overlay effects
- Height and width management
group.liquid - Block Container
group.liquid - Block Container
snippets/group.liquid
bento-grid.liquid - Advanced Layout System
bento-grid.liquid - Advanced Layout System
Renders items in a sophisticated bento box grid:The bento grid dynamically adjusts for 1-12 items with optimized layouts.
snippets/bento-grid.liquid
Utility Snippets
- Product
- Cart
- Layout
- UI
card-gallery.liquid- Product image galleriescollection-card.liquid- Collection cardseditorial-product-grid.liquid- Editorial layoutsadd-to-cart-button.liquid- Add to cart functionality
Templates
Horizon uses JSON templates exclusively (14 files).Template Structure
templates/product.json
Available Templates
404.json
Error page template
article.json
Blog post template
blog.json
Blog listing template
cart.json
Shopping cart template
collection.json
Collection template
gift_card.liquid
Gift card (Liquid)
index.json
Homepage template
list-collections.json
All collections template
page.json
Default page template
page.contact.json
Contact page template
password.json
Password page template
product.json
Product template
search.json
Search results template
Only
gift_card.liquid uses the Liquid format; all others are JSON for maximum flexibility.Layout Files
theme.liquid
The main layout file provides the HTML shell:layout/theme.liquid
password.liquid
Special layout for password-protected stores.Assets
Horizon includes 100+ asset files:- CSS
- JavaScript
- Other
base.css- Core styles, CSS custom properties- Component-specific styles in sections/snippets
- Scoped styles using
{% stylesheet %}tags
Best Practices
Use theme blocks over custom sections
Use theme blocks over custom sections
Theme blocks are more flexible and reusable. Prefer composing layouts with blocks rather than creating monolithic sections.
Leverage snippets for reusability
Leverage snippets for reusability
Extract common patterns into snippets. Use the
{%- doc -%} tag to document parameters.Follow naming conventions
Follow naming conventions
- Sections: descriptive names (
hero.liquid,main-product.liquid) - Blocks: underscore prefix (
_heading.liquid,_content.liquid) - Snippets: functionality-based names (
section.liquid,bento-grid.liquid)
Use JSON templates
Use JSON templates
JSON templates provide better flexibility and enable merchants to customize layouts without code.
Next Steps
Liquid Storefronts
Learn about modern Liquid features
Theme Blocks
Deep dive into theme blocks
Development Guide
Set up your development environment
Component Reference
Browse all sections and blocks