A minimal, carefully structured Shopify theme designed to help you quickly get started. Designed with modularity, maintainability, and Shopify's best practices in mind.
<p align="center"> <a href="./LICENSE.md"><img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License"></a> <a href="./actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Shopify/skeleton-theme/actions/workflows/ci.yml/badge.svg"></a> </p>Getting started
Prerequisites
Before starting, ensure you have the latest Shopify CLI installed:
- Shopify CLI ā helps you download, upload, preview themes, and streamline your workflows
If you use VS Code:
- Shopify Liquid VS Code Extension ā provides syntax highlighting, linting, inline documentation, and auto-completion specifically designed for Liquid templates
Clone
Clone this repository using Git or Shopify CLI:
git clone git@github.com:Shopify/skeleton-theme.git
# or
shopify theme init
Preview
Preview this theme using Shopify CLI:
shopify theme dev
Theme architecture
.
āāā assets # Stores static assets (CSS, JS, images, fonts, etc.)
āāā blocks # Reusable, nestable, customizable UI components
āāā config # Global theme settings and customization options
āāā layout # Top-level wrappers for pages (layout templates)
āāā locales # Translation files for theme internationalization
āāā sections # Modular full-width page components
āāā snippets # Reusable Liquid code or HTML fragments
āāā templates # Templates combining sections to define page structures
To learn more, refer to the theme architecture documentation.
Templates
Templates control what's rendered on each type of page in a theme.
The Skeleton Theme scaffolds JSON templates to make it easy for merchants to customize their store.
None of the template types are required, and not all of them are included in the Skeleton Theme. Refer to the template types reference for a full list.
Sections
Sections are Liquid files that allow you to create reusable modules of content that can be customized by merchants. They can also include blocks which allow merchants to add, remove, and reorder content within a section.
Sections are made customizable by including a {% schema %} in the body. For more information, refer to the section schema documentation.
Blocks
Blocks let developers create flexible layouts by breaking down sections into smaller, reusable pieces of Liquid. Each block has its own set of settings, and can be added, removed, and reordered within a section.
Blocks are made customizable by including a {% schema %} in the body. For more information, refer to the block schema documentation.
Schemas
When developing components defined by schema settings, we recommend these guidelines to simplify your code:
-
Single property settings: For settings that correspond to a single CSS property, use CSS variables:
<div class="collection" style="--gap: {{ block.settings.gap }}px"> ... </div> {% stylesheet %} .collection { gap: var(--gap); } {% endstylesheet %} {% schema %} { "settings": [{ "type": "range", "label": "gap", "id": "gap", "min": 0, "max": 100, "unit": "px", "default": 0, }] } {% endschema %} -
Multiple property settings: For settings that control multiple CSS properties, use CSS classes:
<div class="collection {{ block.settings.layout }}"> ... </div> {% stylesheet %} .collection--full-width { /* multiple styles */ } .collection--narrow { /* multiple styles */ } {% endstylesheet %} {% schema %} { "settings": [{ "type": "select", "id": "layout", "label": "layout", "values": [ { "value": "collection--full-width", "label": "t:options.full" }, { "value": "collection--narrow", "label": "t:options.narrow" } ] }] } {% endschema %}
CSS & JavaScript
For CSS and JavaScript, we recommend using the {% stylesheet %} and {% javascript %} tags. They can be included multiple times, but the code will only appear once.
critical.css
The Skeleton Theme explicitly separates essential CSS necessary for every page into a dedicated critical.css file.
Contributing
We're excited for your contributions to the Skeleton Theme! This repository aims to remain as lean, lightweight, and fundamental as possible, and we kindly ask your contributions to align with this intention.
Visit our CONTRIBUTING.md for a detailed overview of our process, guidelines, and recommendations.
License
Skeleton Theme is open-sourced under the MIT License.