Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kiwify.com.br/llms.txt

Use this file to discover all available pages before exploring further.

Snippets

Snippets are reusable pieces of Liquid code that help maintain consistency and reduce duplication across your theme.

Overview

  • Not visible in the theme editor
  • Ideal for code that’s repeated throughout your theme
  • Can be thought of as “components” or “partials”
  • Can be created, deleted, or renamed as needed

Creating Snippets

Snippets are stored in the snippets/ directory with a .liquid extension. For example:
<!-- snippets/course-card.liquid -->
<div class="course-card">
  <img src="{{ course.thumbnail }}" alt="{{ course.name }}">
  <h3>{{ course.name }}</h3>
  <div class="progress-bar">
    <div class="progress" style="width: {{ course.user_data.progress }}%"></div>
  </div>
  <p>{{ course.user_data.progress }}% complete</p>
  <a href="/course/{{ course.id }}" class="button">{{ button_text | default: 'Continue Learning' }}</a>
</div>

Using Snippets

To include a snippet in a section or another snippet, use the render tag:
{% for course_id in all_courses %}
  {% assign course = all_courses[course_id] %}
  {% render 'course-card', course: course, button_text: 'View Course' %}
{% endfor %}

Passing Variables to Snippets

You can pass variables to snippets when rendering them:
{% render 'course-card', 
  course: course,
  button_text: 'Start Learning',
  show_progress: false
%}
Inside the snippet, these variables are available as local variables:
<div class="course-card">
  <h3>{{ course.name }}</h3>
  
  {% if show_progress %}
    <div class="progress-bar">
      <div class="progress" style="width: {{ course.user_data.progress }}%"></div>
    </div>
  {% endif %}
  
  <a href="/course/{{ course.id }}" class="button">{{ button_text }}</a>
</div>

Default Values

You can provide default values for snippet variables using the default filter:
<a href="/course/{{ course.id }}" class="button {{ button_class | default: 'primary-button' }}">
  {{ button_text | default: 'View Course' }}
</a>

Common Snippet Use Cases

UI Components

  • Buttons
  • Cards
  • Navigation elements
  • Progress bars

Content Patterns

  • Course listings
  • Module layouts
  • Lesson previews
  • User information displays

Example: Image Snippet

A snippet for consistently rendering images with optional lazy loading:
<!-- snippets/image.liquid -->
<img
  src="{{ src }}"
  alt="{{ alt | escape }}"
  {% if class %}class="{{ class }}"{% endif %}
  {% if width %}width="{{ width }}"{% endif %}
  {% if height %}height="{{ height }}"{% endif %}
  {% if lazy_load %}loading="lazy"{% endif %}
/>
Usage:
{% render 'image', 
  src: product.image, 
  alt: product.title,
  class: 'rounded shadow',
  width: 300,
  height: 200,
  lazy_load: true 
%}

Best Practices

  • Create snippets for components used in multiple places
  • Pass variables to snippets for flexibility
  • Use consistent naming conventions
  • Keep snippets focused on a single responsibility
  • Document the expected variables for each snippet
  • Use default values for optional parameters