Best practices for Shopify theme development with Liquid, JavaScript, and CSS
.cursorrules veya .cursor/rules/shopify-theme-dev-liquid.mdc # 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.
sections, snippets, templates, assets.render tag over include.assign and capture to define and reuse variables effectively.const/let, arrow functions, etc.image_url filter.alt text for images.Quantitative factor research skills for Cursor. Evaluate factors, run backtests, mine new alpha through natural language.
Prevent AI over-engineering by keeping changes scoped, simple, and directly tied to the user's request
Anti-sycophancy directives for code review and generation. Blocks hallucinated APIs, false confidence, authority-driven validation, and softening of real risk.
Cursor rules for Aspnet Abp.
Guidelines and best practices for building applications with [Beefree SDK](https://docs.beefree.io/beefree-sdk), including installation, authentication, configuration, customization, and template management
Cursor rules for embedding Beefree SDK's no-code content editors (for emails, pages, and popups) into a web application.