# Placeholders

If the image is missing (asset object equals null), plugin methods will output placeholder image with size based on the provided image transform settings. This is very useful for various listing pages where layout may depend on existance of image with specific dimensions. If transform settings have only height or width set, placeholder will be generated as the square - with both width and height set to same value, taken from dimenstion that was provided.

# Placeholder modes

There are three methods of placeholder generation - you can select one using placeholderMode plugin setting.

# File mode

This is the default method. To use it, set placeholderMode to file. This method will generate image placeholders, based on source image. To make image fit transform settings, space will be added either from sides or top and bottom.

Plugin provides default source image for the placeholder, but you can change it to your own. Here are the plugins settings that can be used for that:

  • filePlaceholderPath - file path to source image file, relative to root directory of your project.
  • filePlaceholderBackgroundColor - hex value of background color that will be applied to empty space in the placeholder image.
  • filePlaceholderBackgroundOpacity - opacity of background color, with value from 0 to 100.

Placeholder images are outputted into @web\placeholders directory by default. This location can be changed with filePlaceholderDirectory plugin config setting. Remember that when you are changing placeholder settings, you need to remove old placeholder files so they can be generated again.

# SVG mode

To use it, set placeholderMode to svg. This method will generate transparent SVG placeholders.

# URL mode

To use it, set placeholderMode to url. This method will use exteral URLs for placeholders, so you also need to set placeholderUrl setting to address of placeholder generation service. Address needs do include image width and height, for example like this: https://via.placeholder.com/{width}x{height}. {height} and {width} in URL be replaced by values taken from transform settings.

# Forcing placeholders

If you want to force all plugin methods use placeholder images, you can set forcePlaceholders setting to true. This might be useful if you want to create some kind of development copy of the website and transferring all uploaded assets to the other server is too much hassle.

# Placeholder method

Placeholder can be also generated by placeholder() method:

{{craft.images.placeholder({
    with: 200,
    height: 300,
}) }}

# Placeholder CSS class

Deprecated picture(), pictureMedia(), pictureMax() and pictureMin() methods, when outputting placeholder, apply is-placeholder CSS class to <picture> element. This behaviour is missing from pictureMultuple() method, since it can use multiple assets, some of which are missing and some of which are not. Placeholder CSS class can be modified using placeholderClass config setting.