Skip to content

An accessible, fast, and snappy fullscreen React image viewer.

License

Notifications You must be signed in to change notification settings

PerThomasHaga/react-fullscreen-image

 
 

Repository files navigation

React Fullscreen Image

🔲

A simple, fast, and beautiful fullscreen React image viewer using CSS transforms & opacity.

demo

You've got a list of images that you want to allow users to click and expand into fullscreen mode.

React Fullscreen Image is a tiny library to render images that animate to fullscreen view when clicked.

A live demo can be viewed on CodeSandbox!

Features

  • Only animates transform and opacity properties.
  • Keyboard event handlers (escape key, left/right arrow navigation).
  • Handles outer click — anywhere outside of image when clicked will zoom image to its original position.
  • Scrolling (with requestAnimationFrame) to a set boundary will zoom image to its original position.

Usage

React Fullscreen Image uses compound components. All <Image /> components nested within an <ImageGroup /> will be navigatable when in fullscreen mode.

import { ImageGroup, Image } from 'react-fullscreen-image'

const images = [
  'some_image_url',
  'some_image_url',
  'some_image_url',
  'some_image_url'
]

export default function App() {
  return (
    <ImageGroup>
      <ul className="images">
        {images.map(i => (
          <li key={i}>
            <Image
              src={i}
              alt="nature"
            />
          </li>
        ))}
      </ul>
    </ImageGroup>
  )
}

Installation

git clone https://github.com/timc1/react-fullscreen-image.git

cd react-fullscreen-image/example

yarn install

yarn start

About

An accessible, fast, and snappy fullscreen React image viewer.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 82.5%
  • CSS 17.5%