Cursor rule
.cursor/rules/snippets.mdc[object Object]
Cursor rules
Quality
62/100
Scores the file, not the repository.Length
404 words
5 headings · 5 code blocksRepository
428
— · pushed 17 days agoLast changed
3 days ago
First indexed 3 days ago.123456# Snippet Development Standards78## Snippet Documentation910Every snippet must include JSDoc-style comments using LiquidDoc:1112```liquid13{% doc %}14 Product Card Component1516 Renders a product card with customizable options.1718 @param product {Object} Product object (required)19 @param show_vendor {Boolean} Display vendor name (default: false)20 @param show_quick_add {Boolean} Show quick add button (default: false)21 @param image_ratio {String} Image aspect ratio (default: 'adapt')22 @param lazy_load {Boolean} Enable lazy loading (default: true)23 @param card_class {String} Additional CSS classes2425 @example26 {% render 'product-card',27 product: product,28 show_vendor: true,29 image_ratio: 'square'30 %}31{% enddoc %}32```3334## Parameter Handling3536Always provide defaults and validate parameters:3738```liquid39{% liquid40 # Parameter validation and defaults41 assign product = product | default: empty42 assign show_vendor = show_vendor | default: false43 assign show_quick_add = show_quick_add | default: false44 assign image_ratio = image_ratio | default: 'adapt'45 assign lazy_load = lazy_load | default: true46 assign card_class = card_class | default: ''4748 # Early return if required parameters missing49 unless product != empty50 echo '<!-- Error: product parameter required for product-card snippet -->'51 break52 endunless53%}54```5556## Common Snippet Patterns5758**Icon Snippet:**59```liquid60{% comment %}61 @param icon {String} Icon name (required)62 @param size {String} Icon size class (default: 'icon--medium')63 @param class {String} Additional classes64{% endcomment %}6566{% liquid67 assign icon = icon | default: ''68 assign size = size | default: 'icon--medium'69 assign class = class | default: ''7071 unless icon != blank72 break73 endunless74%}7576<svg class="icon {{ size }} {{ class }}" aria-hidden="true" focusable="false">77 <use href="#icon-{{ icon }}"></use>78</svg>79```8081**Price Snippet:**82```liquid83{% comment %}84 @param product {Object} Product object (required)85 @param show_compare_at {Boolean} Show compare at price (default: true)86 @param show_unit_price {Boolean} Show unit price (default: false)87{% endcomment %}8889{% liquid90 assign show_compare_at = show_compare_at | default: true91 assign show_unit_price = show_unit_price | default: false92%}9394<div class="price">95 <div class="price__regular">96 {{ product.price | money }}97 </div>9899 {% if show_compare_at and product.compare_at_price > product.price %}100 <div class="price__compare-at">101 <s>{{ product.compare_at_price | money }}</s>102 </div>103 {% endif %}104105 {% if show_unit_price and product.selected_or_first_available_variant.unit_price_measurement %}106 <div class="price__unit">107 {{ product.selected_or_first_available_variant.unit_price | money }}/108 {%- if product.selected_or_first_available_variant.unit_price_measurement.reference_value != 1 -%}109 {{ product.selected_or_first_available_variant.unit_price_measurement.reference_value }}110 {%- endif -%}111 {{ product.selected_or_first_available_variant.unit_price_measurement.reference_unit }}112 </div>113 {% endif %}114</div>115```116117## Testing Patterns118119Include testing scenarios in comments:120121```liquid122{% comment %}123 Test cases:124 - Product with variants125 - Product without image126 - Product with compare_at_price127 - Product with unit pricing128 - Out of stock product129{% endcomment %}130```131132[snippet-example.liquid](mdc:.cursor/rules/examples/snippet-example.liquid)133
Also in Shopify/horizon
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| Shopify/horizon.cursor/rules/accordion-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/animation-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/blocks.mdc · 428 | Cursor rules | stylearchtypesdatabase+2 | 62/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/breadcrumb-accessibility.mdc · 428 | Cursor rules | ui | 36/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/carousel-accessibility.mdc · 428 | Cursor rules | ui | 32/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/cart-drawer-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/chat-window-accessibility.mdc · 428 | Cursor rules | styleui | 24/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/color-contrast-accessibility.mdc · 428 | Cursor rules | lint-formatui | 44/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/color-swatch-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/commit-messages.mdc · 428 | Cursor rules | setuplint-formattypesgit | 62/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/css-standards.mdc · 428 | Cursor rules | stylearchuiperformance+3 | 49/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/disclosure-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/dropdown-navigation-accessibility.mdc · 428 | Cursor rules | styleui | 36/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/flip-card-accessibility.mdc · 428 | Cursor rules | styleui | 36/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/form-accessibility.mdc · 428 | Cursor rules | ui | 32/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/javascript-standards.mdc · 428 | Cursor rules | stylearchtypesui+2 | 54/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/landmark-accessibility.mdc · 428 | Cursor rules | ui | 40/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/liquid.mdc · 428 | Cursor rules | buildstyletypesdatabase+2 | 77/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/locales.mdc · 428 | Cursor rules | arch | 49/100 | 3 days ago | |
| Shopify/horizon.cursor/rules/localization.mdc · 428 | Cursor rules | style | 54/100 | 3 days ago |
Diff against .cursor/rules/accordion-accessibility.mdc Diff against .cursor/rules/animation-accessibility.mdc Diff against .cursor/rules/blocks.mdc Diff against .cursor/rules/breadcrumb-accessibility.mdc Diff against .cursor/rules/carousel-accessibility.mdc Diff against .cursor/rules/cart-drawer-accessibility.mdc Diff against .cursor/rules/chat-window-accessibility.mdc Diff against .cursor/rules/color-contrast-accessibility.mdc Diff against .cursor/rules/color-swatch-accessibility.mdc Diff against .cursor/rules/commit-messages.mdc Diff against .cursor/rules/css-standards.mdc Diff against .cursor/rules/disclosure-accessibility.mdc Diff against .cursor/rules/dropdown-navigation-accessibility.mdc Diff against .cursor/rules/flip-card-accessibility.mdc Diff against .cursor/rules/form-accessibility.mdc Diff against .cursor/rules/javascript-standards.mdc Diff against .cursor/rules/landmark-accessibility.mdc Diff against .cursor/rules/liquid.mdc Diff against .cursor/rules/locales.mdc Diff against .cursor/rules/localization.mdc
