Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Shopify/horizon/llms.txt

Use this file to discover all available pages before exploring further.

Blocks are reusable components that can be added to sections. Horizon includes 94 blocks for building rich, interactive experiences.

Overview

Blocks are organized into two categories:
  • Public Blocks: Can be added through the theme editor (no underscore prefix)
  • Private Blocks: Internal blocks used by sections (underscore prefix)
Total Blocks: 94 (46 public, 48 private)

Public Blocks (46)

BlockFileDescription
Product Titleproduct-title.liquidDisplay product title
Product Descriptionproduct-description.liquidShow product description
Product Custom Propertyproduct-custom-property.liquidCustom product metafields
Product Inventoryproduct-inventory.liquidStock availability display
Product Recommendationsproduct-recommendations.liquidRelated product suggestions
Product Cardproduct-card.liquidComplete product card
Priceprice.liquidProduct price display
SKUsku.liquidProduct SKU number
Variant Pickervariant-picker.liquidProduct variant selector
Swatchesswatches.liquidColor/pattern swatches
Quantityquantity.liquidQuantity selector
Buy Buttonsbuy-buttons.liquidAdd to cart and checkout buttons
BlockFileDescription
Add to Cartadd-to-cart.liquidAdd to cart button
Accelerated Checkoutaccelerated-checkout.liquidExpress checkout buttons (Apple Pay, etc.)
BlockFileDescription
Texttext.liquidRich text content
Jumbo Textjumbo-text.liquidLarge display text
Imageimage.liquidImage display
Videovideo.liquidVideo player
Iconicon.liquidIcon display
Buttonbutton.liquidCall-to-action button
Spacerspacer.liquidVertical spacing
Comparison Slidercomparison-slider.liquidBefore/after image slider
Custom Liquidcustom-liquid.liquidCustom Liquid code
Groupgroup.liquidGroup multiple blocks
BlockFileDescription
Collection Cardcollection-card.liquidCollection card display
Collection Titlecollection-title.liquidCollection name
Featured Collectionfeatured-collection.liquidHighlighted collection
BlockFileDescription
Email Signupemail-signup.liquidNewsletter subscription
Contact Formcontact-form.liquidContact form
Contact Form Submit Buttoncontact-form-submit-button.liquidSubmit button for forms
Reviewreview.liquidProduct review display
BlockFileDescription
Accordionaccordion.liquidCollapsible content
Pagepage.liquidPage content display
Page Contentpage-content.liquidMain page content
Popup Linkpopup-link.liquidModal popup trigger
Follow on Shopfollow-on-shop.liquidShop app follow button
App Block@appThird-party app blocks

Private Blocks (48)

These blocks are used internally by sections and cannot be added directly through the theme editor.
BlockFilePurpose
Product List Text_product-list-text.liquidText content
Product List Content_product-list-content.liquidMain content
Product List Button_product-list-button.liquidCTA button
BlockFilePurpose
Product Card_product-card.liquidCard wrapper
Product Card Group_product-card-group.liquidCard grouping
Product Card Gallery_product-card-gallery.liquidCard image gallery
Product Details_product-details.liquidProduct information
BlockFilePurpose
Media_media.liquidMedia display
Media Without Appearance_media-without-appearance.liquidUnstyled media
Product Media Gallery_product-media-gallery.liquidProduct images
BlockFilePurpose
Content_content.liquidContent wrapper
Content Without Appearance_content-without-appearance.liquidUnstyled content
Heading_heading.liquidHeading text
Inline Text_inline-text.liquidInline text display
Divider_divider.liquidSection divider
BlockFilePurpose
Collection Card_collection-card.liquidCard wrapper
Collection Card Image_collection-card-image.liquidCard image
Collection Image_collection-image.liquidCollection image
Collection Info_collection-info.liquidCollection details
Collection Link_collection-link.liquidCollection link
Inline Collection Title_inline-collection-title.liquidTitle display
BlockFilePurpose
Blog Post Card_blog-post-card.liquidPost card
Blog Post Content_blog-post-content.liquidPost content
Blog Post Description_blog-post-description.liquidPost excerpt
Blog Post Featured Image_blog-post-featured-image.liquidFeatured image
Blog Post Image_blog-post-image.liquidPost image
Blog Post Info Text_blog-post-info-text.liquidPost metadata
Featured Blog Posts Card_featured-blog-posts-card.liquidFeatured post card
BlockFilePurpose
Cart Title_cart-title.liquidCart heading
Cart Summary_cart-summary.liquidOrder summary
Cart Products_cart-products.liquidCart items list
BlockFilePurpose
Slide_slide.liquidSlideshow slide
Layered Slide_layered-slide.liquidLayered slideshow slide
Marquee_marquee.liquidMarquee item
Accordion Row_accordion-row.liquidAccordion item
Card_card.liquidGeneric card
Carousel Content_carousel-content.liquidCarousel item
Header Logo_header-logo.liquidHeader logo
Header Menu_header-menu.liquidHeader navigation
Search Input_search-input.liquidSearch field
Social Link_social-link.liquidSocial media link
Hotspot Product_hotspot-product.liquidProduct hotspot

Block Structure

Blocks follow a standard Liquid structure with schema definitions:
<!-- Block Rendering Logic -->
<div class="block block--{{ block.type }}">
  {{ block.settings.content }}
</div>

<!-- Block Schema (in parent section) -->
{% schema %}
{
  "blocks": [
    {
      "type": "text",
      "name": "Text",
      "settings": [
        {
          "type": "richtext",
          "id": "content",
          "label": "Content"
        }
      ]
    }
  ]
}
{% endschema %}

Common Block Settings

SettingTypeDescription
headingtextBlock heading
textrichtextText content
imageimage_pickerImage selection
linkurlURL link
button_labeltextButton text
color_schemecolor_schemeBlock color scheme

Usage in Sections

Blocks are added to sections via the blocks array:
{
  "type": "hero",
  "blocks": [
    {
      "type": "heading",
      "settings": {
        "heading": "Welcome"
      }
    },
    {
      "type": "button",
      "settings": {
        "button_label": "Shop Now"
      }
    }
  ]
}

Best Practices

  • Private blocks (with underscore prefix) should not be modified directly
  • Always test block combinations for visual compatibility
  • Keep block content concise and focused
  • Use semantic block types that describe their content
  • Group related blocks together using the Group block
  • Test blocks on mobile and desktop viewports

Sections Reference

Learn about sections that contain blocks

Snippets Reference

Reusable code snippets

Build docs developers (and LLMs) love