AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Theme Development

skill-dragnoir-shopify-agent-skills-theme-development · by dragnoir

Build, customize, and deploy Shopify themes. Use this skill for creating new themes, modifying existing themes, understanding theme architecture, working with sections/blocks, and optimizing theme performance. Covers Skeleton theme, Dawn theme, layouts, templates, and the theme editor customization experience.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-dragnoir-shopify-agent-skills-theme-development

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-dragnoir-shopify-agent-skills-theme-development)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
7mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Theme Development? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Shopify Theme Development

When to use this skill

Use this skill when:

  • Creating a new Shopify theme from scratch
  • Modifying or customizing an existing theme
  • Understanding Shopify theme architecture
  • Working with sections, blocks, and templates
  • Setting up the development environment
  • Deploying themes to a Shopify store
  • Optimizing theme performance

Theme Architecture Overview

Directory Structure

A Shopify theme must follow this structure:

your-theme/
├── assets/          # CSS, JS, images, fonts
├── config/          # Theme settings (settings_schema.json, settings_data.json)
├── layout/          # Layout files (theme.liquid required)
├── locales/         # Translation files (en.default.json, etc.)
├── sections/        # Reusable section components
├── snippets/        # Reusable code snippets
└── templates/       # Page templates (JSON or Liquid)
    └── customers/   # Customer account templates

Minimum Requirements: Only layout/theme.liquid is required for upload.

Component Hierarchy

Layout (theme.liquid)
  └── Template (product.json)
        └── Sections (product-details.liquid)
              └── Blocks (price, quantity, add-to-cart)
                    └── Snippets (icon-cart.liquid)

Getting Started

1. Initialize a New Theme

Use the Skeleton theme as a starting point:

# Clone the Skeleton theme
shopify theme init my-theme

# Navigate to your theme
cd my-theme

The Skeleton theme is minimal and follows Shopify best practices.

2. Start Development Server

# Start local development with hot reload
shopify theme dev

# Connect to a specific store
shopify theme dev --store your-store.myshopify.com

This opens a local preview URL with live reloading.

3. Push to Shopify

# Upload as a new theme
shopify theme push --unpublished

# Push to an existing theme
shopify theme push --theme THEME_ID

Key Concepts

Layouts

Layouts wrap all pages. The main layout file is layout/theme.liquid:


  {{ page_title }}
  {{ content_for_header }}

  {% sections 'header-group' %}

  
    {{ content_for_layout }}
  

  {% sections 'footer-group' %}

JSON Templates

Modern themes use JSON templates that reference sections:

// templates/product.json
{
  "sections": {
    "main": {
      "type": "product-details",
      "settings": {}
    },
    "recommendations": {
      "type": "product-recommendations",
      "settings": {}
    }
  },
  "order": ["main", "recommendations"]
}

Sections

Sections are reusable, customizable modules:


{% schema %}
{
  "name": "Featured Collection",
  "settings": [
    {
      "type": "collection",
      "id": "collection",
      "label": "Collection"
    },
    {
      "type": "range",
      "id": "products_to_show",
      "min": 2,
      "max": 12,
      "step": 1,
      "default": 4,
      "label": "Products to show"
    }
  ],
  "presets": [
    {
      "name": "Featured Collection"
    }
  ]
}
{% endschema %}

  {% if section.settings.collection != blank %}
    {% for product in section.settings.collection.products limit: section.settings.products_to_show %}
      {% render 'product-card', product: product %}
    {% endfor %}
  {% endif %}

Blocks

Blocks allow merchants to add, remove, and reorder content:

{% schema %}
{
  "name": "Slideshow",
  "blocks": [
    {
      "type": "slide",
      "name": "Slide",
      "settings": [
        {
          "type": "image_picker",
          "id": "image",
          "label": "Image"
        },
        {
          "type": "text",
          "id": "heading",
          "label": "Heading"
        }
      ]
    }
  ]
}
{% endschema %}

{% for block in section.blocks %}
  
    
    {{ block.settings.heading }}
  
{% endfor %}

Best Practices

Performance

  1. Lazy load images - Use loading="lazy" for images below the fold
  2. Optimize images - Use image_url filter with appropriate widths
  3. Minimize render-blocking resources - Defer non-critical CSS/JS
  4. Use native browser features - Prefer CSS over JavaScript when possible

{{ product.featured_image | image_url: width: 800 | image_tag:
  loading: 'lazy',
  widths: '300, 500, 800, 1200',
  sizes: '(max-width: 600px) 100vw, 50vw'
}}

Accessibility

  1. Use semantic HTML (`, , `)
  2. Provide alt text for images
  3. Ensure proper heading hierarchy
  4. Support keyboard navigation
  5. Maintain sufficient color contrast

Theme Settings

Use settings_schema.json for global theme settings:

[
  {
    "name": "theme_info",
    "theme_name": "My Theme",
    "theme_version": "1.0.0"
  },
  {
    "name": "Colors",
    "settings": [
      {
        "type": "color",
        "id": "primary_color",
        "label": "Primary color",
        "default": "#000000"
      }
    ]
  }
]

Access in Liquid: {{ settings.primary_color }}

CLI Commands Reference

| Command | Description | | ----------------------- | ------------------------- | | shopify theme init | Clone Skeleton theme | | shopify theme dev | Start development server | | shopify theme push | Upload theme to store | | shopify theme pull | Download theme from store | | shopify theme check | Run theme linter | | shopify theme list | List all themes | | shopify theme publish | Publish unpublished theme | | shopify theme delete | Delete a theme |

Common Issues & Solutions

Issue: Theme not syncing changes

Solution: Ensure shopify theme dev is running and check for file save errors.

Issue: Section not appearing in editor

Solution: Add a presets array to the section schema.

Issue: Slow page load

Solution: Run shopify theme check and address performance warnings.

Resources

For Liquid templating specifics, see the [liquid-templating](../liquid-templating/SKILL.md) skill.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.