theme-shopify-section-structure
About theme-shopify-section-structure
theme-shopify-section-structure is a set of guidelines for organizing Shopify theme sections. It helps theme developers structure Liquid, CSS, and optional JavaScript files and configure schemas with padding settings and presets.
Key features
- 01Separate section, CSS, and JS files
- 02Section-specific stylesheet inclusion
- 03Required padding schema settings
- 04Schema organization guidance
- 05Preset requirement
Use cases
- 01Creating a Shopify theme section
- 02Updating an existing section schema
- 03Adding responsive section padding
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ niccos-shopify-workspace/ shopify-cursor-skills --skill theme-shopify-section-structureAfter installing, type/theme-shopify-section-structurein Claude Code to confirm it loaded.
Bundled filesreferences/SHOPIFY_THEME_DOCS.md
Details
From the project READMEShopify Section Structure
Guidelines for organizing Shopify theme sections with proper file structure, schema configuration, and padding settings.
When to Use
- Creating new Shopify theme sections
- Modifying existing section schemas
- Setting up section file structure (Liquid, CSS, JS)
- Adding padding controls to sections
Section File Structure
Each section must have:
- Liquid section file (
.liquidinsections/directory) - Separate CSS file (in
assets/directory) - Optional separate JS file (in
assets/directory)
CSS Inclusion
Each section must include its own stylesheet using:
{{ 'section-name.css' | asset_url | stylesheet_tag }}
Important: Do NOT mix styles of multiple sections in one file. Each section has its own CSS file.
Exception: above-the-fold sections (e.g., header, announcement bar) can use styles from global theme files (like theme.css) to load critical CSS.
JavaScript Inclusion
If a section needs JavaScript, include it separately:
<script src="{{ 'section-logic.js' | asset_url }}" defer="defer"></script>
Section Schema Requirements
Every section schema MUST include padding settings.
Required Padding Settings
Add a "Paddings" heading in the schema with these settings:
{
"type": "header",
"content": "Paddings"
},
{
"type": "range",
"id": "padding_top",
"label": "Padding Top",
"min": 0,
"max": 100,
"step": 1,
"unit": "px",
"default": 0
},
{
"type": "range",
"id": "padding_bottom",
"label": "Padding Bottom",
"min": 0,
"max": 100,
"step": 1,
"unit": "px",
"default": 0
},
{
"type": "range",
"id": "padding_top_mobile",
"label": "Padding Top (Mobile)",
"min": 0,
"max": 100,
"step": 1,
"unit": "px",
"default": 0
},
{
"type": "range",
"id": "padding_bottom_mobile",
"label": "Padding Bottom (Mobile)",
"min": 0,
"max": 100,
"step": 1,
"unit": "px",
"default": 0
}
Schema Best Practices
- Add additional settings only when required
- Avoid over-configuring the schema
- Always include at least one preset
- Keep settings organized and logical
Applying Padding in CSS
Use the schema settings in your section CSS:
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top }}px;
padding-bottom: {{ section.settings.padding_bottom }}px;
}
@media (max-width: 749px) {
.section-{{ section.id }}-padding {
padding-top: {{ section.settings.padding_top_mobile }}px;
padding-bottom: {{ section.settings.padding_bottom_mobile }}px;
}
}
Shopify Theme Documentation
Reference these official Shopify resources:
Example Section Structure
sections/
└── featured-collection.liquid
assets/
├── featured-collection.css
└── featured-collection.js (optional)
Instructions
- Create section file in
sections/directory with.liquidextension - Create CSS file in
assets/directory matching section name - Include CSS in section using
stylesheet_tagfilter - Add schema with required padding settings
- Add at least one preset to the schema
- Keep files separate - never mix multiple sections' styles in one CSS file