The lightbox for React.
Unstyled, accessible primitives built on native scrolling and view transitions. Morph, swipe, zoom, and pull-to-dismiss, all out of the box.
Click any image. Swipe, pinch to zoom, pull to dismiss.

“I’d rather eat glass than build this again.”
Artur Bień · the guy who built this
Exhibit A: what building a lightbox does to a person. Sponsors keep ramka maintained, and their logo hangs in this gallery, in front of React developers who care about polish.
How it compares.
Nobody chooses a lightbox. You inherit one from 2013, or you decide to build your own. Here is how that goes.
| ramka | the one you’d build | that 2013 plugin | |
|---|---|---|---|
| Morph transitions | FLIP, take 3 | fade() | |
| Native scrolling | translateX | arrows | |
| Pinch, pan, flick | sprint 14 | mouse only | |
| Pull to dismiss | in the backlog | Esc | |
| Keyboard, a11y | TODO | — | |
| Respects reduced motion | oops | always has | |
| Your design, not a theme | to be fair, yes | skin.css |
MIT licensed. From $0/month.
ramka is free and open source, and always will be. If it saved you a sprint, a rewrite, or a jQuery plugin, sponsoring keeps it maintained.
Proceeds fund the ongoing fight against scroll emulation.