Skip to content

Latest commit

 

History

History
124 lines (116 loc) · 3.4 KB

picture.md

File metadata and controls

124 lines (116 loc) · 3.4 KB

Picture example

Example of full power of <picture> element in synergy with gulp-responsive.

HTML layout

<picture>
  <!-- webp images -->
  <source type="image/webp" srcset="examples/image-extralarge.webp, examples/image-extralarge@2x.webp 2x" media="(min-width: 1600px)">
  <source type="image/webp" srcset="examples/image-large.webp, examples/image-large@2x.webp 2x" media="(min-width: 800px)">
  <source type="image/webp" srcset="examples/image-small.webp, examples/image-small@2x.webp 2x">
  <!-- jpeg images -->
  <source srcset="examples/image-extralarge.jpg, examples/image-extralarge@2x.jpg 2x" media="(min-width: 1600px)">
  <source srcset="examples/image-large.jpg, examples/image-large@2x.jpg 2x" media="(min-width: 800px)">
  <img srcset="examples/image-small.jpg, examples/image-small@2x.jpg 2x" alt="">
</picture>

gulp-responsive config:

var gulp = require('gulp');
var $ = require('gulp-load-plugins')();

gulp.task('images', function () {
  return gulp.src('src/*.{jpg,png}')
    .pipe($.responsive({
      'image.*': [{
        // image-small.jpg is 200 pixels wide
        width: 200,
        rename: {
          suffix: '-small',
          extname: '.jpg',
        },
      }, {
        // image-small@2x.jpg is 400 pixels wide
        width: 200 * 2,
        rename: {
          suffix: '-small@2x',
          extname: '.jpg',
        },
      }, {
        // image-large.jpg is 480 pixels wide
        width: 480,
        rename: {
          suffix: '-large',
          extname: '.jpg',
        },
      }, {
        // image-large@2x.jpg is 960 pixels wide
        width: 480 * 2,
        rename: {
          suffix: '-large@2x',
          extname: '.jpg',
        },
      }, {
        // image-extralarge.jpg is 1280 pixels wide
        width: 1280,
        rename: {
          suffix: '-extralarge',
          extname: '.jpg',
        },
      }, {
        // image-extralarge@2x.jpg is 2560 pixels wide
        width: 1280 * 2,
        rename: {
          suffix: '-extralarge@2x',
          extname: '.jpg',
        },
      }, {
        // image-small.webp is 200 pixels wide
        width: 200,
        rename: {
          suffix: '-small',
          extname: '.webp',
        },
      }, {
        // image-small@2x.webp is 400 pixels wide
        width: 200 * 2,
        rename: {
          suffix: '-small@2x',
          extname: '.webp',
        },
      }, {
        // image-large.webp is 480 pixels wide
        width: 480,
        rename: {
          suffix: '-large',
          extname: '.webp',
        },
      }, {
        // image-large@2x.webp is 960 pixels wide
        width: 480 * 2,
        rename: {
          suffix: '-large@2x',
          extname: '.webp',
        },
      }, {
        // image-extralarge.webp is 1280 pixels wide
        width: 1280,
        rename: {
          suffix: '-extralarge',
          extname: '.webp',
        },
      }, {
        // image-extralarge@2x.webp is 2560 pixels wide
        width: 1280 * 2,
        rename: {
          suffix: '-extralarge@2x',
          extname: '.webp',
        },
      }],
    }))
    .pipe(gulp.dest('dist'));
});

More info