Generate Shopify Liquid theme code with correct schema, translations, and component patterns.
Works with
Covers sections, blocks, and snippets with proper {% schema %} JSON, LiquidDoc headers, and translation key usage via the t filter
Includes 77+ language filters, 45+ HTML/media filters, 30+ commerce filters, and 30 tags with syntax and parameters
Provides CSS/JavaScript patterns using {% stylesheet %} , {% javascript %} , and {% style %} tags for dynamic styling
Details all 33 setting typ
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionshopify-liquid-themesExecute the skills CLI command in your project's root directory to begin installation:
Fetches shopify-liquid-themes from benjaminsehl/liquid-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate shopify-liquid-themes. Access via /shopify-liquid-themes in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
0
total installs
0
this week
105
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
105
stars
.
├── sections/ # Full-width page modules with {% schema %} — hero, product grid, testimonials
├── blocks/ # Nestable components with {% schema %} — slides, feature items, text blocks
├── snippets/ # Reusable fragments via {% render %} — buttons, icons, image helpers
├── layout/ # Page wrappers (must include {{ content_for_header }} and {{ content_for_layout }})
├── templates/ # JSON files defining which sections appear on each page type
├── config/ # Global theme settings (settings_schema.json, settings_data.json)
├── locales/ # Translation files (en.default.json, fr.json, etc.)
└── assets/ # Static CSS, JS, images (prefer {% stylesheet %}/{% javascript %} instead)
| Need | Use | Why |
|---|---|---|
| Full-width customizable module | Section | Has {% schema %}, appears in editor, renders blocks |
| Small nestable component with editor settings | Block | Has {% schema %}, can nest inside sections/blocks |
| Reusable logic, not editable by merchant | Snippet | No schema, rendered via {% render %}, takes params |
| Logic shared across blocks/snippets | Snippet | Blocks can't {% render %} other blocks |
{{ ... }} — Output (prints a value){{- ... -}} — Output with whitespace trimming{% ... %} — Logic tag (if, for, assign) — prints nothing{%- ... -%} — Logic tag with whitespace trimmingComparison: ==, !=, >, <, >=, <=
Logical: and, or, contains
{% if %} instead{% if cond %}value{% else %}other{% endif %}for loops max 50 iterations — use {% paginate %} for larger arrayscontains only works with strings — can't check objects in arrays{% stylesheet %}/{% javascript %} don't render Liquid — no Liquid inside theminclude is deprecated — always use {% render 'snippet_name' %}{% liquid %} tag — multi-line logic without delimiters; use echo for output{% assign my_var = 'value' %}
{% capture my_var %}computed {{ value }}{% endcapture %}
{% increment counter %}
{% decrement counter %}
Filters are chained with |. Output type of one filter feeds input of next.
Array: compact, concat, find, find_index, first, has, join, last, map, reject, reverse, size, sort, sort_natural, sum, uniq, where
String: append, capitalize, downcase, escape, handleize, lstrip, newline_to_br, prepend, remove, replace, rstrip, slice, split, strip, strip_html, truncate, truncatewords, upcase, url_decode, url_encode
Math: abs, at_least, at_most, ceil, divided_by, floor, minus, modulo, plus, round, times
Money: money, money_with_currency, money_without_currency, money_without_trailing_zeros
Color: color_brightness, color_darken, color_lighten, color_mix, color_modify, color_saturate, color_desaturate, color_to_hex, color_to_hsl, color_to_rgb
Media: image_url, image_tag, video_tag, external_video_tag, media_tag, model_viewer_tag
URL: asset_url, asset_img_url, file_url, shopify_asset_url
HTML: link_to, script_tag, stylesheet_tag, time_tag, placeholder_svg_tag
Localization: t (translate), format_address, currency_selector
Other: date, default, json, structured_data, font_face, font_url, payment_button
Full details: language filters, HTML/media filters, commerce filters
| Category | Tags |
|---|---|
| Theme | content_for, layout, section, sections, schema, stylesheet, javascript, style |
| Control | if, elsif, else, unless, case, when |
| Iteration | for, break, continue, cycle, tablerow, paginate |
| Variable | assign, capture, increment, decrement, echo |
| HTML | form, render, raw, comment, liquid |
| Documentation | doc |
Full details with syntax and parameters: references/tags.md
cart, collections, customer, localization, pages, request, routes, settings, shop, template, theme, linklists, images, blogs, articles, all_products, metaobjects, canonical_url, content_for_header, content_for_layout, page_title, page_description, handle, current_page
| Template | Objects |
|---|---|
/product |
product, remote_product |
/collection |
collection, current_tags |
/cart |
cart |
/article |
article, blog |
/blog |
blog, current_tags |
/page |
page |
/search |
search |
/customers/* |
customer, order |
Full reference: commerce objects, content objects, tier 2, tier 3
Sections and blocks require {% schema %} with a valid JSON object. Sections use section.settings.*, blocks use block.settings.*.
{
"name": "t:sections.hero.name",
"tag": "section",
"class": "hero-section",
"limit": 1,
"settings": [],
"max_blocks": 16,
"blocks": [{ "type": "@theme" }],
"presets": [{ "name": "t:sections.hero.name" }],
"enabled_on": { "templates": ["index"] },
"disabled_on": { "templates": ["password"] }
}
{
"name": "t:blocks.slide.name",
"tag": "div",
"class": "slide",
"settings": [],
"blocks": [{ "type": "@theme" }],
"presets": [{ "name": "t:blocks.slide.name" }]
}
| Need | Setting Type | Key Fields |
|---|---|---|
| On/off toggle | checkbox |
default: true/false |
| Short text | text |
placeholder |
| Long text | textarea |
placeholder |
Rich text (with <p>) |
richtext |
— |
Inline rich text (no <p>) |
inline_richtext |
— |
| Number input | number |
placeholder |
| Slider | range |
min, max, default (all required), step, unit |
| Dropdown/segmented | select |
options: [{value, label}] |
| Radio buttons | radio |
options: [{value, label}] |
| Text alignment | text_alignment |
default: "left"/"center"/"right" |
| Color picker | color |
default: "#000000" |
| Image upload | image_picker |
— |
| Video upload | video |
— |
| External video URL | video_url |
accept: ["youtube", "vimeo"] |
| Product picker | product |
— |
| Collection picker | collection |
— |
| Page picker | page |
— |
| Blog picker | blog |
— |
| Article picker | article |
— |
| URL entry | url |
— |
| Menu picker | link_list |
— |
| Font picker | font_picker |
default (required) |
| Editor header | header |
content (no id needed) |
| Editor description | paragraph |
content (no id needed) |
visible_if pattern{
"visible_if": "{{ block.settings.layout == 'vertical' }}",
"type": "select",
"id": "alignment",
"label": "t:labels.alignment",
"options": [...]
}
Conditionally shows/hides a setting in the editor based on other setting values.
{ "type": "@theme" } — Accept any theme block{ "type": "@app" } — Accept app blocks{ "type": "slide" } — Accept only the slide block typeFull schema details and all 33 setting types: references/schema-and-settings.md
Use {% stylesheet %} and {% javascript %} in sections, blocks, and snippets:
{% stylesheet %}
.my-component { display: flex; }
{% endstylesheet %}
{% javascript %}
console.log('loaded');
{% endjavascript %}
{% stylesheet %} tags will errorsections/, blocks/, and snippets/{% style %} tag (Liquid-aware CSS)For dynamic CSS that needs Liquid (e.g., color settings that live-update in editor):
{% style %}
.section-{{ section.id }} {
background: {{ section.Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
anthropics/claude-code
mblode/agent-skills
github/awesome-copilot
leonxlnx/taste-skill
sickn33/antigravity-awesome-skills
erichowens/some_claude_skills
I recommend shopify-liquid-themes for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
shopify-liquid-themes fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
shopify-liquid-themes is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
shopify-liquid-themes reduced setup friction for our internal harness; good balance of opinion and flexibility.
We added shopify-liquid-themes from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Registry listing for shopify-liquid-themes matched our evaluation — installs cleanly and behaves as described in the markdown.
Solid pick for teams standardizing on skills: shopify-liquid-themes is focused, and the summary matches what you get after install.
shopify-liquid-themes reduced setup friction for our internal harness; good balance of opinion and flexibility.
shopify-liquid-themes has been reliable in day-to-day use. Documentation quality is above average for community skills.
shopify-liquid-themes fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
showing 1-10 of 51