shopify theme dev liquid
via PatrickJS/awesome-cursorrules
Best practices for Shopify Liquid theme development with organized structure, performance, and accessibility.
What is shopify theme dev liquid?
This rule provides comprehensive guidance for developing Shopify themes using Liquid, JavaScript, and CSS. Use it to structure projects, optimize performance, ensure accessibility, and maintain scalable, testable code across sections, snippets, templates, and assets.
- Organize theme files into clear directory structures (sections, snippets, templates, assets) with single-responsibility Liquid files
- Optimize Liquid templating with render tags, caching mechanisms, and variable management while moving complex logic to JavaScript
- Modularize JavaScript using ES Modules, modern syntax, event delegation, and bundling tools like Webpack/Rollup
- Apply CSS/SCSS best practices including BEM naming, CSS variables, responsive design, and SCSS mixins for maintainability
- Configure sections with Schema definitions, presets, and blocks for reusability and Shopify Customizer compatibility
- Implement performance optimization through image CDN usage, minification, lazy loading, and monitoring with Lighthouse and Theme Check
Applies to
File patterns this rule matches.
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
rendertag overinclude. - 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
assignandcaptureto 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_urlfilter. - 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
alttext 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
Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.
Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.
Android development with Jetpack Compose, clean architecture, and Material Design 3.
Angular development with Novo Elements UI library using standalone components.
Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.
Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.