PluginBench
Rule

shopify theme dev liquid

via PatrickJS/awesome-cursorrules

Best practices for Shopify Liquid theme development with structured project organization, performance optimization, and accessibility.

What is shopify theme dev liquid?

This rule provides comprehensive guidance for developing Shopify themes using Liquid, JavaScript, and CSS. It covers project structure, templating patterns, performance optimization, accessibility standards, and testing strategies to ensure maintainable, scalable, and high-quality theme code.

  • Organize theme projects with clear directory structure (sections, snippets, templates, assets) and modular file organization
  • Apply Liquid templating best practices including render tags, caching mechanisms, and variable management to avoid N+1 queries and performance issues
  • Modularize JavaScript using ES Modules with modern syntax, event delegation, and performance optimization techniques
  • Structure CSS/SCSS with naming conventions (BEM, OOCSS, Utility-First) and CSS variables for maintainable styling
  • Configure Sections and Blocks with Schema definitions, presets, and reusable components for Shopify Customizer compatibility
  • Optimize theme performance through image CDN usage, minification, lazy loading, and monitoring with Lighthouse and Theme Check

Applies to

File patterns this rule matches.

["**/*.liquid"
assets/**/*.js
assets/**/*.css
sections/**/*.liquid
snippets/**/*.liquid
"templates/**/*.liquid"]
Rule definition (reference)

Source of truth, from the repository.

Shopify Theme Development Best Practices

Project Structure

  • Adopt a clear directory structure, e.g., sections, snippets, templates, assets.
  • Organize generic modules (like JavaScript functionalities) into separate files.
  • Keep Liquid files concise and focused on single responsibilities, avoiding monolithic files.
  • Organize templates and sections by page or functionality.
  • Implement proper internationalization (i18n) file management.
  • Utilize SCSS/CSS Modules for style organization to prevent global pollution.

Liquid Templating

  • Prefer the render tag over include.
  • Limit database queries within loops to avoid N+1 issues.
  • Use filters judiciously, especially complex computational ones.
  • Leverage Liquid's caching mechanisms to reduce redundant calculations.
  • Avoid complex logic handling directly in Liquid; move intricate logic to JavaScript.
  • Use assign and capture to define and reuse variables effectively.

JavaScript Development

  • Modularize JS, using ES Modules for imports and exports.
  • Follow modern JavaScript best practices, such as const/let, arrow functions, etc.
  • Avoid direct DOM manipulation; prioritize event delegation.
  • Optimize JavaScript performance to reduce repaints and reflows.
  • Consider using Webpack/Rollup for bundling and code optimization.
  • Write clear comments and JSDoc.

CSS/SCSS Styling

  • Adhere to naming conventions like BEM, OOCSS, or Utility-First CSS.
  • Optimize CSS selectors to improve rendering performance.
  • Use CSS variables to manage theme configurations like colors and fonts.
  • Implement responsive design to ensure consistent theme appearance across devices.
  • Minimize CSS file size by removing unused styles.
  • Make good use of SCSS mixins and functions.

Sections and Blocks

  • Utilize Section Schema to define configurable options.
  • Maintain section independence and reusability.
  • Provide clear presets for sections.
  • Use Blocks appropriately to enhance section flexibility.
  • Ensure sections provide a good user experience in the Shopify Customizer.
  • Avoid hardcoding content within sections; use Schema configurations whenever possible.

Performance Optimization

  • Optimize image loading by using Shopify's CDN and the image_url filter.
  • Minify JavaScript and CSS files.
  • Leverage browser caching.
  • Reduce the number of HTTP requests.
  • Consider lazy loading.
  • Monitor theme performance using Google Lighthouse and Shopify Theme Check.

Accessibility (A11y)

  • Ensure all interactive elements are keyboard accessible.
  • Provide meaningful alt text for images.
  • Use correct HTML semantic tags.
  • Consider color contrast.
  • Implement clear focus states.
  • Use ARIA attributes to enhance the accessibility of complex components.

Maintenance and Scalability

  • Write clear code comments and documentation.
  • Follow naming conventions to maintain code consistency.
  • Regularly test theme functionalities.
  • Ensure compatibility across different browsers and devices.
  • Consider future extensibility, avoiding tight coupling.
  • Use Shopify CLI for local development and deployment.

Quality and Testing

  • Use Shopify Theme Check for static code analysis.
  • Write unit tests (where applicable).
  • Conduct thorough end-to-end testing.
  • Test in various environments (local, development store, production store).
  • Focus on compatibility testing (browsers, devices, Shopify versions).
  • Test error handling and edge cases.

Related rules

SQL-callable AI functions and hybrid vector+keyword search for RAG within Snowflake.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert guidance for Snowflake SQL, data pipelines, semi-structured data, and cost optimization.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert guidance for Snowpark Python and dbt with Snowflake adapter.

**/*
41k
via PatrickJS/awesome-cursorrules

Secure Solana wallet architecture with MEV defense, signer isolation, and transaction safety checks.

**/*.{ts +5
41k
via PatrickJS/awesome-cursorrules

Expert Solidity and Foundry development guidance with security best practices and testing strategies.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Solidity and Hardhat development with security best practices and gas optimization.

**/*
41k
via PatrickJS/awesome-cursorrules