element * * @var string|array|null $class Additional classes for the element * @var string|array|null $imgClass Additional classes for the element * @var array|null $attr Additional attributes for the element * * @var bool|null $clientBlur Whether to use client-side blurhash/thumbhash, defaults to true * @var bool|null $lazy Whether to use lazy loading, defaults to true * */ use Kirby\Toolkit\A; $focus ??= is_a($image, 'Kirby\Cms\File') ? $image?->focus() ?? 'center' : 'center'; $ratio ??= null; $preset ??= 'default'; $clientBlur ??= true; $attr ??= []; $formats ??= ['webp', $image?->extension()]; $lazy ??= true; if (is_a($image, 'Kirby\Cms\File') || is_a($image, 'Kirby\Filesystem\Asset')) : ?> ['block', $class ?? ''], 'style' => '--ratio: ' . ($ratio ?? round($image->ratio(), 2)) . ';', ...$attr ]) ?>> extension() == 'svg') : ?> crop(median($widths), floor(median($widths) / $ratio)) : $image->resize(median($widths)); ?> $width, 'height' => $ratio ? floor($width / $ratio) : null, 'crop' => $ratio ? true : false, 'format' => $format ]; } ?> "image/{$format}", 'data-srcset' => $image->srcset($srcset), 'data-sizes' => $sizes ?? 'auto', ]) ?>> "image/{$format}", 'srcset' => $image->srcset($srcset), 'sizes' => $sizes ?? '100vw' ]) ?>> $clientBlur ? $image->th() : null, 'src' => !$clientBlur ? $image->thUri() : null, 'data-src' => $median->url(), 'width' => $image->width(), 'height' => $ratio ? floor($image->width() / $ratio) : $image->height(), 'alt' => $alt ?? (is_a($image, 'Kirby\Cms\File') ? $image->alt() : null), 'loading' => $lazy ? "lazy" : null, 'data-sizes' => $sizes ?? 'auto', 'class' => cls(['size-full object-cover', $imgClass ?? ' ']), 'style' => A::join([ "aspect-ratio: " . ($ratio ?? $image->ratio()), "object-position: {$focus}" ], '; '), ]) ?>> ['block', $class ?? ''], ...$attr]) ?>>