# dimsemenov/PhotoSwipe

JavaScript image gallery for mobile and desktop, modular, framework independent

Repository: https://github.com/dimsemenov/PhotoSwipe
Canonical: https://ross.abutalabs.com/products/photoswipe
Homepage: http://photoswipe.com
Language: JavaScript
License: MIT
License Family: permissive
Topics: gallery, lightbox, image, javascript
Last push: 2025-12-04T07:31:46+00:00

## Health v2 (maintenance only)
Score: 48/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 55, release rhythm 8, longevity 100
- inputs: {"age_days": 5627, "days_push": 272, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 25242, forks 3265 (observed 2026-08-28T04:11:38.077339+00:00)

## What it is
PhotoSwipe is a modular, framework-independent JavaScript image gallery and lightbox library for mobile and desktop browsers. It provides touch-friendly swipe and zoom gestures, smooth open/close animations from thumbnails, and is distributed as ES modules with a lightweight lightbox that lazily loads the core.

## Use cases
- add a lightbox to an image gallery on a website
- display photos with swipe and pinch-zoom on mobile
- open images in an overlay with thumbnail-to-fullscreen animation
- build a responsive photo gallery without a framework
- lazy-load a gallery script only when a user clicks an image
- show image captions in a lightbox viewer

## When to choose
- you need a touch-friendly, accessible image lightbox in vanilla JavaScript
- you want a framework-agnostic gallery that works with React, Vue, or Svelte
- you care about bundle size and want dynamic imports of the core viewer
- you need smooth thumbnail-to-fullscreen open/close transitions

## When to avoid
- you need to display very large images beyond ~3000x3000px without tiling
- you require built-in caption support without writing API code or using a plugin
- you must support legacy browsers, as PhotoSwipe targets modern browsers only
- you need a full gallery management system with albums and uploads rather than a viewer

## Facets
- artifact type: library
- maturity: stable
- function: ui-components, image-processing, animation
- domain: web-development, frontend, media, photography
- platform: browser, cross-platform
- tags: image-gallery, lightbox, touch-gestures, es-modules, framework-agnostic, zoom, swipe, javascript

## Member repositories
- dimsemenov/PhotoSwipe (main) score 48

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:11:38.077339+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T16:56:04.729377+00:00, confidence not recorded.
  - readme: https://github.com/dimsemenov/PhotoSwipe (fetched 2026-08-28T04:11:38.077339+00:00, sha b54b8dd7246e)
  - homepage: http://photoswipe.com (fetched 2026-08-29T07:53:25.226483+00:00, sha 18ef228712ed)
  - site_page: https://photoswipe.com/getting-started (fetched 2026-08-29T07:53:25.236047+00:00, sha 64c64b26e9c1)
  - registry_npm: https://registry.npmjs.org/photoswipe (fetched 2026-08-29T07:53:25.242231+00:00, sha 7810014b88d2)
  - site_page: https://photoswipe.com/native-fullscreen-on-open (fetched 2026-08-29T07:53:25.238436+00:00, sha db5a345a4068)
  - site_page: https://photoswipe.com/caption (fetched 2026-08-29T07:53:25.240358+00:00, sha f8ce755d2bc9)
- Data as of 2026-08-30T08:39:29.467469+00:00.
