1.0.0 • Published 5 years ago

justified-mosaic v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Justified Mosaic

A react component which automatically resizes images to conform to a justified layout using Flickr's open-source algorithm.

Basic example

Installation:

npm install --save justified-mosaic

Basic Usage:

const images = [
  { src: 'http://imagewebsite.com/image1.png' },
  { src: 'http://imagewebsite.com/image2.jpg' },
  { src: 'http://imagewebsite.com/image3.gif' },
  ...
];

<JustifiedMosaic images={images} />

Props:

PropTypeRequiredDefaultDescription
imagesarrayYesN/AAn array of objects which follow a shape described below
omitIncompleteRowsbooleanNotrueIf true, images which are unable to form a complete row will be dropped
containerPaddingintegerNo5Pixels to use as padding around the container
boxSpacingintegerNo5Pixels of empty space between images
targetRowHeightintegerNo300Pixel height of each row in a perfect world
rowLimitintegerNoInfinityMaximum number of rows to render. Excess images will be dropped
darkenOnHoverbooleanNofalseIf false, image will not darken and title/description will not be displayed

Shape of images prop

The following keys are part of the images prop of the main component. Remember, if the component prop darkenOnHover is not true, title and description will never be displayed. If darkenOnHover is true, and a title and description are not provided, the image will still darken, but no text will be displayed.

KeyTypeRequiredDescription
srcstringYesLink to an image
titlestringNoTitle of the image, also used as alt text. Displayed when the user hovers over the image
descriptionstringNoDescription of the image. Displayed in smaller text below the title
urlstringNoA URL to navigate to when the image is clicked

Code example:

{
  src: 'http://somewebsite.com/with/an/image.jpg',
  title: 'Image Title',
  description: 'Tell the user something about the image',
  url: 'Navigate here if the user clicks the image'
}

Want to tinker with it?

git clone http://github.com/LegendaryLinux/justified-mosaic.git
npm install && npm run dev
cd public/ && http-server

The browse to localhost:8080