{#
Breadcrumbs Components
======================
Navigation breadcrumb trail for shop pages.
Usage:
{% from 'shared/macros/storefront/breadcrumbs.html' import shop_breadcrumbs, auto_breadcrumbs %}
#}
{#
Shop Breadcrumbs
================
Breadcrumb navigation trail.
Parameters:
- items: List of breadcrumb items (static)
- items_var: Alpine.js expression for items (dynamic)
- separator: Separator icon (default: 'chevron-right')
- show_home: Show home link (default: true)
- home_url: URL for home (default: '/')
- home_label: Label for home (default: 'Home')
Item structure:
{
label: 'Category Name',
url: '/category/...', // Optional, last item typically has no URL
icon: 'folder' // Optional icon
}
Usage (static):
{{ shop_breadcrumbs(items=[
{'label': 'Electronics', 'url': '/category/electronics'},
{'label': 'Headphones', 'url': '/category/headphones'},
{'label': 'Wireless'}
]) }}
Usage (dynamic):
{{ shop_breadcrumbs(items_var='breadcrumbs') }}
#}
{% macro shop_breadcrumbs(
items=none,
items_var=none,
separator='chevron-right',
show_home=true,
home_url='/',
home_label='Home'
) %}
{% endmacro %}
{#
Auto Breadcrumbs
================
Automatically generates breadcrumbs from category hierarchy.
Parameters:
- product_var: Alpine.js expression for product (optional)
- category_var: Alpine.js expression for current category
- show_home: Show home link (default: true)
Usage:
{{ auto_breadcrumbs(category_var='currentCategory') }}
{{ auto_breadcrumbs(product_var='product') }}
#}
{% macro auto_breadcrumbs(
product_var=none,
category_var='currentCategory',
show_home=true
) %}
{% endmacro %}
{#
Compact Breadcrumbs
===================
Mobile-friendly breadcrumbs showing only parent and current.
Parameters:
- parent: Parent item (static)
- parent_var: Alpine.js expression for parent
- current: Current page label
- current_var: Alpine.js expression for current
Usage:
{{ compact_breadcrumbs(parent={'label': 'Electronics', 'url': '/electronics'}, current='Headphones') }}
#}
{% macro compact_breadcrumbs(
parent=none,
parent_var=none,
current=none,
current_var=none
) %}
{% endmacro %}