Skip to content

Instantly share code, notes, and snippets.

@13twelve
13twelve / responsiveImageSizes.js
Last active March 22, 2023 11:33
Create responsive image sizes attribute with JavaScript
const responsiveImageSizes = (sizes, feConfig = {}, relativeUnits = true) => {
if (!feConfig.structure || !feConfig.structure.columns || !feConfig.structure.container || !feConfig.structure.gutters || !feConfig.structure.gutters.inner) {
return '100vw';
}
// remSize - base for rem calcs
const remSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;
const remCalc = (px) => `${ parseFloat(px) / remSize }rem`;
//
const getUnitValue = (val) => {
@13twelve
13twelve / responsiveImageSizes.php
Last active March 23, 2023 18:18
Create responsive image sizes attribute with PHP
<?php
/**
* Generate responsive image sizes
* Takes a sizes object:
*
* responsiveImageSizes({
* "sm": "100vw",
* "md": 4,
* "lg": 7,
* "xl": "80%",
@13twelve
13twelve / responsiveImageSrcset.php
Created March 23, 2023 18:59
Create responsive image srcset attribute with PHP
<?php
function responsiveImageSrcset($url, $options = []) {
// Doc: https://github.com/area17/a17-behaviors/wiki/responsiveImageSrcset
if (!$url) {
return '';
}
$opts = [
'sizes' => [200,400,600,1000,1600,2200,2800],