react-responsive-masonry
React responsive masonry component built with css flexbox with no dependencies
Install
npm install --save react-responsive-masonry
Example
Usage
If you want the number of columns change by resizing the window, you need to wrap the Masonry
component by the ResponsiveMasonry
component.
Otherwise, you only need to use the Masonry
component.
import React, {Component} from "react"
import Masonry, {ResponsiveMasonry} from "react-responsive-masonry"
const images = [
"https://unsplash.it/200/300?image=1050",
"https://unsplash.it/400/400?image=1039",
"https://unsplash.it/400/300?image=1017",
"https://unsplash.it/200/200?image=997",
"https://unsplash.it/500/400?image=287",
"https://unsplash.it/400/500?image=955",
"https://unsplash.it/200/300?image=916",
"https://unsplash.it/300/300?image=110",
"https://unsplash.it/300/300?image=206",
]
class MyWrapper extends Component {
render() {
return (
<ResponsiveMasonry columnsCountBreakPoints={{350: 1, 750: 2, 900: 3}}>
<Masonry>
{images.map((image, i) =>
<img key={i} src={image} style={{width: "100%", display: "block"}} />
)}
</Masonry>
</ResponsiveMasonry>
)
}
}
class MyWrapper extends Component {
render() {
return (
<Masonry columnsCount={3}>
{images.map((image, i) =>
<img key={i} src={image} style={{width: "100%", display: "block"}} />
)}
</Masonry>
)
}
}
Props
Mansonry component
columnsCount
: Number - injected by ResponsiveMasonry - default 3,gutter
: String - margin surrounding each item - default "0" - eg: "10px",
ResponsiveMasonry component
columnsCountBreakPoints
: Object, keys are breakpoints in px, values are the columns number - default {350: 1, 750: 2, 900: 3},
Development
Clean lib
npm run clean
Build lib
folder
npm run build
Watch src
folder
npm run watch
Lint src
folder
npm run lint
Changelog
See changelog
License
See MIT