A React component that renders images using the Imgix API. It uses the smallest images possible, and does cool stuff, like cropping to faces by default.
import Imgix from 'react-imgix'
<Imgix src={string} />
required, usually in the form: https://[your_domain].imgix.net/[image]
. Don't include any parameters.
whether to wait until the component has mounted to render the image, useful for auto-sizing and server-side rendering, defaults to false
array of values to pass to Imgix's auto param, defaults to ['format']
what kind of component to render, one of img
, bg
, picture
, source
. Defaults to img
wrapper component to use when rendering a bg
, defaults to div
className
applied to top level component. To set className
on the image itself see imgProps
.
whether or not to crop using points of interest. See Imgix API for more details. Defaults to false
whether to crop to faces, defaults to true
sets specific crop, overriding faces and entropy flags. Useful for specifying fallbacks for faces like faces,top,right
see Imgix's API, defaults to crop
whether to fit the image requested to the size of the component rendered, defaults to true
called on componentDidMount
with the mounted DOM node as an argument
round to nearest x for image width and height, useful for caching, defaults to 100
force images to be a certain height, overrides precision
force images to be a certain width, overrides precision
generate 2x
and 3x
src sets when using an <img>
tag. Defaults to true
any other Imgix params to add to the image src
For example:
<Imgix
customParams={{mask: 'ellipse'}}
/>
any other attributes to add to the html node (example: alt
, data-*
, className
)
Note: if you use type='bg' the css property background-size is set to 'cover' by default. To override this behaviour you can change the background size by overriding it with a string such as 'contain'
, or to null
for controlling the style with CSS.
<Imgix
src={src}
type='bg'
imgProps={{style: {backgroundSize: 'contain'}}}
/>
Using the
<Imgix src={src} type='picture'>
<Imgix src={src} width={400} type='source' imgProps={{media: '(min-width: 768px)'}}/>
<Imgix src={src} width={200} type='source' imgProps={{media: '(min-width: 320px)'}}/>
<Imgix src={src} width={100} type='img' />
</Imgix>
The final type='img'
component will be created with the options passed into the parent <picture>
container if it's not provided so the above is equivalent to:
<Imgix src={src} width={100} type='picture'>
<Imgix src={src} width={400} type='source' imgProps={{media: '(min-width: 768px)'}}/>
<Imgix src={src} width={200} type='source' imgProps={{media: '(min-width: 320px)'}}/>
</Imgix>
With npm:
npm install --save react-imgix
With yarn:
yarn add react-imgix
Author: Frederick Fogerty
License: ISC