/ember-lazy-responsive-image

Generate and render responsive, lazy loaded, LQIP enabled images

Primary LanguageJavaScriptMIT LicenseMIT

ember-lazy-responsive-image

CI

This ember-cli addon provides an ad-hoc replacement for the responsive-image component. It adds lazy-loading and LQIP (Low Quality Image Placeholder)-techniques to the ember-responsive-image addon. It integrates the lazysizes library through ember-cli-lazysizes.

See our demo page

Compatibility

  • Ember.js v3.16 or above
  • Ember CLI v2.13 or above
  • Node.js v10 or above

Installation

ember install ember-lazy-responsive-image

Usage

The addon adds lazy-loading feature to the responsive-image component without any need for changes in your configuration. Furthermore it extends the configuration of the ember-responsive-image addon with the new lqip option to enable LQIP-support:

module.exports = function(environment) {
  let ENV = {
    'responsive-image': {
      // other options...
      lqip: {        
        type: 'inline',
        width: 150,
        quality: 50
      }      
    }
  }
}

Note: If you're using the responsive-background component, you have to enable the bgset-plugin for ember-cli-lazysizes in your ember-cli-build.js file, see: plugins

Options

  • type: The type of the LQIP, one of inline or remote. If type is inline, an placeholder-image will be generated as an base64-encoded string. There's no additional request necessary and the image is immediately available. The downside is the application size increases because the encoded image becomes part of the application code. If type is remote, the image placeholder is one of the generated images, picked by the width-option.
  • width: (optional) If the type-option is inline, this will be the width of the inline placeholder-image. If type is remote, this has to be one of the supportedWidths-option. If you omit this option, the addon choose the lowest value from supportedWidths.
  • quality: (optional) If the type-option is inline, this is the quality of the inline placeholder-image. If not set, it inherits from the base configuration. This option has no effect if type is remote.

The responsive-image component

The responsive image component replaces the origin responsive-image component and supports laziness and LQIP out-of-the-box. To disable lazyness and/or LQIP on a particular component, you can set the parameters lazy and/or lqip to false.

<ResponsiveImage @image="myImage.png" @lazy={{false}} @lqip={{false}}/>

The responsive-background component

Note: If you're using the responsive-background component, you have to enable the bgset-plugin for ember-cli-lazysizes in your ember-cli-build.js file, see: plugins

The responsive background component replaces the origin responsive-background component and supports laziness and LQIP out-of-the-box. Like the responsive-image component, you can disable lazyness and/or LQIP through the parameters lazy and lqip.

<ResponsiveBackground @image="myImage.png" @lazy={{false}} @lqip={{false}}/>

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.