Are you tired of your react app's layout flashing around because an image is yet to load and its taking zero space until then?
Does the progressive image loading from top bottom makes you cringe ?
You wish there was something neat out there that just works
?
Yea, mee too.
"Fear not, for i am here"
- All Might.
First one is a normal image, the second one is using react-smooth-image
.
$ npm install --save react-smooth-image
if you prefer to use yarn then
$ yarn add react-smooth-image
import SmoothImage from 'react-smooth-image';
.
.
.
render() {
return (
<div className="image-container">
<SmoothImage
src="https://..."
alt="a nice image of mordor"
transitionTime={1.0}
//Other props if you choose to use them
/>
</div>
)
}
type: string
is mandatory: yes
Description: The source url of the image to be loaded.
type: string
is mandatory: yes
Description: The `alt` text to be passed to the image. Facilitates accessibility and screen readers and including this is always a good idea.
type: string
is mandatory: no
default value: ''
Description: if you wanna use a placeholder image, you may pass the url here or pass an embedded image data.
type: object
is mandatory: no
Description: If you want to overwrite the container styles, pass a js style object to it like you would pass in a style attribute in a regular react element.
type: object
is mandatory: no
Description: If you want to overwrite the image styles, pass a style object in this prop.
type: string
is mandatory: no
default value: "ease-in"
Description: The css transition-timing function to use when the image is loaded.
type: number
is mandatory: no
default value: 0.3s
Description: The time for the image to apply the given transition in seconds. For eg 0.3