@ogdakke/fluidbox

Finally, a fluid lightbox for the web.

Photos open from their thumbnails and close back into them. Pinch to zoom, swipe between slides, drag down to close. One runtime behind the React, Vue, Solid and Angular bindings, the custom elements and plain JavaScript.

shell
pnpm add @ogdakke/fluidbox

11.7 kB gzipped with the React binding, not counting React. Opening the viewer loads 24.0 kB more, and the stylesheet is 3.2 kB. The sheet and the filmstrip load only when a viewer uses them.

  • ←→ swipe
  • pinchwheel zoom
  • esc drag down to close
01

Shared element transitions

Media opens from its thumbnail and closes back into it, corners and all.

02

Familiar zoom gestures

Pinch, scroll wheel and double-tap, and switch between them mid-zoom.

03

Native gestures

Slides swipe on native CSS scroll snapping. Drag down to close.

04

Virtualization

Lists of any length. Fluidbox mounts only the slides and triggers in view.

05

Any media

Images, video, iframes and your own renderers.

06

Framework support

React, Vue, Solid and Angular, plus custom elements and plain JavaScript.

01

Playground

Open a photo, then change how the viewer behaves.

Info sheet
Backdrop
Zoom
Thumbnails
02

Framework support

Every binding runs the same eleven patterns on the same runtime.

03

Roadmap

Fluidbox is pre-release, so any version can still break your code. 1.0 ends that.

1.0

A stable API

The documented API stops changing, and we check every release on real iPhones, iPads and Android phones in the browsers we support.

1.x

Deep zoom

Sharper images as you zoom in, and tiled images too large to download whole.

Read the roadmap →

What 1.0 covers, what waits until after it, and how to help get there.