Skip to content

Commit

Permalink
feat(background image): add the ability to css variables for backgrou…
Browse files Browse the repository at this point in the history
…nd images
  • Loading branch information
guillaume-infernal committed Jul 31, 2023
1 parent c5d29ab commit 3d35f71
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/ResponsiveImageCraft.php
Expand Up @@ -2,6 +2,34 @@

namespace Infernalmedia\ResponsiveImageCraft;

use Infernalmedia\ResponsiveImageCraft\ImageInfoFromString;

class ResponsiveImageCraft
{
public function getCssVariables(string $file, int $maxWidth, array $extensions = ['jpg', 'avif', 'webp'])
{
$image = new ImageInfoFromString($file);
$path = $image->getRelativePathnameWithoutExtension();

$fileNameSpacer = config('responsive-images.filename_spacer');

$cssVariables = $this->generateCssVariables($path, $extensions, 'full');

foreach ($image->getFilteredSizes($maxWidth) as $width) {
$file = $path . $fileNameSpacer . $width;
$cssVariables .= $this->generateCssVariables($file, $extensions, $width);
}

return $cssVariables;
}

private function generateCssVariables(string $path, array $extensions, string|int $width): string
{
$cssVariables = '';
foreach ($extensions as $extension) {
$cssVariables .= "--{$extension}-{$width}:url($path.$extension);";
}

return $cssVariables;
}
}

0 comments on commit 3d35f71

Please sign in to comment.