A plugin which generates an invisible SVG of specific dimensions for use when lazyloading images in Craft CMS templates.
This plugin requires Craft CMS 3.0.0-beta.23 or later.
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require mblode/svgplaceholder
-
In the Control Panel, go to Settings → Plugins and click the “Install” button for svgplaceholder.
{{ craft.svgplaceholder.generate({height:500,width:'300'}) }}
Optionally add a background color with the fill attribute:
{{ craft.svgplaceholder.generate({height:500,width:'300'},'#CCCCCC') }}
When used with Lazysizes and a macro:
_macros/utilities.html
{% macro lazyLoadImage(element, transform) %}
{% cache using key element.id %}
<img class="lazyload" src="{{ craft.svgplaceholder.generate({ height: element.height(transform), width: element.width(transform) }) }}" data-src="{{ element.url(transform) }}" alt="{{ element.title }}">
{% endcache %}
{% endmacro %}
index.html
{% import '_macros/utilities' as utils %}
...
{{ utils.lazyLoadImage(image, 'imageTransformName') }}
Brought to you by Matthew Blode
Based on the Craft CMS 2 plugin: SVG Placeholder