GalleryKit
GalleryKit is a composable photo-gallery toolkit for React. @gallerykit/core defines the schemas and registries; everything else (layouts, skins, themes, the lightbox, paywalls) plugs in via tree-shakeable side-effect imports.
Packages
Foundation
- Core — Schemas, types, registries, and shared primitives that every other GalleryKit package depends on.
Layouts
- Grid — Responsive uniform grid layout with optional virtualization.
- Masonry — Pinterest-style masonry layout with virtualization.
- Justified — Flickr-style justified row layout that preserves the original aspect ratio of every image.
- Carousel — Single-item carousel layout with slide transitions and gesture support.
Components
- Lightbox — Modal lightbox viewer with gestures, keyboard navigation, EXIF, and video playback.
- Viewer — Inline, sidebar, and filmstrip viewers for embedding gallery items in a page.
- Toolbar — Layout switcher, search, sort, and filter controls for galleries.
- Pagination — Infinite scroll, load-more, and numbered-page primitives for paginated galleries.
- Paywall — Paywall, NSFW blur, and age-gate overlays for premium content.
- Blur Placeholder — Lightweight blurred placeholder shown while the real image loads.
- Pan & Scale — Pan + zoom image viewer integration backed by @panscale/react.
Skins
- Card Skin — White card with shadow, rounded corners, and caption below — registers itself as the
cardskin. - Filmstrip Skin — Cinema-style frame with film perforations and monospace caption — registers as the
filmstripskin. - Magazine Skin — Editorial style with generous padding, serif captions, and EXIF support — registers as the
magazineskin. - Minimal Skin — Image-only skin with no decoration — registers as the
minimalskin. - Overlay Skin — Edge-to-edge image with gradient + caption overlay (Pinterest/Behance style) — registers as the
overlayskin. - Polaroid Skin — Instant-photo frame with white border, slight rotation, and handwriting caption — registers as the
polaroidskin.
Themes
- Dark Theme — OLED-black gallery with high contrast and blue accent (dark mode only).
- Editorial Theme — Serif typography, generous spacing, cream tint, and thin borders — magazine feel.
- Minimal Theme — Clean borderless gallery with subtle hover effects and system font — supports light and dark.
- Pro Theme — Dense compact dark layout with monospace metadata and blue accent — built for professional tools.
- Social Theme — Instagram/Pinterest-inspired card-based gallery with rounded corners and shadow hover.
- Telegram Theme — Adaptive theme that maps to Telegram CSS variables (
--tg-theme-*) with 8px radius — for Telegram Mini Apps.
Install
Pick the layout, skin, and theme you need; @gallerykit/core is pulled in automatically.
pnpm add @gallerykit/core @gallerykit/grid @gallerykit/skin-minimal @gallerykit/theme-minimal