Home

Awesome

react-block-image (demo)

React replacement for img that uses a div with background-image for more control + fallback support.

NPM JavaScript Style Guide

Features

Install

npm install --save react-block-image
# of
yarn add react-block-image

Usage

Check out the demo in the example folder.

Minimal:

import React, { Component } from 'react'

import BlockImage from 'react-block-image'

class Example extends Component {
  render () {
    return (
      <BlockImage src='https://example.com/example.jpg' />
    )
  }
}

With fallback image and loading animation:

import React, { Component } from 'react'

import BlockImage from 'react-block-image'
import placeholder from './placeholder.jpg'

class Example extends Component {
  render () {
    return (
      <BlockImage
        src='https://example.com/example.jpg'
        fallback={placeholder}
        showPreview={true}
        loader={
          <MyLoadingAnimation />
        }
      />
    )
  }
}

Props

PropertyTypeDefaultDescription
srcstringundefinedRequired URL of the preferred image source.
fallbackstringundefinedOptional URL of a fallback image.
childrennodeundefinedOptional children.
showPreviewbooleanfalseWhether or not to show fallback while preferred src is loading.
loadernodeundefinedOptional node to show while src is loading.
backgroundSizestringcoverConvenience prop for setting background-size on style.
backgroundPositionstringcenter centerConvenience prop for setting background-position on style.
backgroundRepeatstringno-repeatConvenience prop for setting background-repeat on style.
styleobjectundefinedOptional style overrides for root element.
classNamestringundefinedOptional className override for root element.
......undefinedAll other props are applied to the root element.

License

MIT © transitive-bullshit

This module was bootstrapped with create-react-library.

Support my OSS work by <a href="https://twitter.com/transitive_bs">following me on twitter <img src="https://storage.googleapis.com/saasify-assets/twitter-logo.svg" alt="twitter" height="24px" align="center"></a>