@reuse-sh/lightbox

中文文档
0.0.5发布于 2026/11/02MITTypeScriptES Module构建来源已验证

An image lightbox on native scrolling, with thumbnail transitions, zoom, pan, and pinch.

原始使用文档
文档目录6 节
  1. Principles
  2. Install
  3. Browser
  4. React
  5. Documentation
  6. License

@reuse-sh/lightbox

An image viewer that opens from a thumbnail, including a cropped one, and returns to it on close. Pages scroll and swipe with the browser, and images zoom with pinch, pan, double-tap, and the pointer.

Principles

These are the rules the code keeps. An adaptation on any framework keeps them too.

  • Page with native scroll snap. Pages are a scroll-snap strip from the carousel, so touch and trackpads keep the system's momentum.
  • Open from the thumbnail and return to it. The image grows out of its cropped preview and goes back to the same place on close.
  • Load only what is near. Only the current and neighboring images load, and a long jump skips the pages in between.
  • Zoom around the point you touch. Pinch, wheel and double-tap zoom around the pointer or fingers, and panning stops at the image's edges.
  • Keep focus inside and give it back. The viewer is a native modal dialog, and closing it returns focus to the element that opened it.
  • Leave the page as it was. Destroy restores the page scroll, the hidden thumbnail, and every style and listener the viewer touched.

Install

npm install @reuse-sh/lightbox

Browser

import { createLightbox } from "@reuse-sh/lightbox";
import "@reuse-sh/lightbox/styles.css";

const viewer = createLightbox({ thumbnails: true });
viewer.open([{
  src: "/photo.jpg",
  alt: "A mountain lake",
  width: 1600,
  height: 1200,
  origin: document.querySelector("img"),
}]);

React

import { useLightbox } from "@reuse-sh/lightbox/react";
import "@reuse-sh/lightbox/styles.css";

function Gallery({ images }) {
  const viewer = useLightbox();
  return <button onClick={() => viewer.open(images)}>
    Open gallery
  </button>;
}

Documentation

License

MIT

版本与发布记录

@reuse-sh/lightbox 共发布 6 个版本,首次发布于 2026/11/02;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.0.5latest2026/11/021 天前
0.0.42026/11/021 天前
0.0.32026/11/021 天前
0.0.22026/11/021 天前
0.0.12026/11/021 天前
0.0.0-stage2026/11/021 天前

关于 @reuse-sh/lightbox 的常见问题

@reuse-sh/lightbox 是什么?

本机滚动的图像灯箱,具有缩略图过渡,缩放,平移和缩放。

如何安装 @reuse-sh/lightbox?

在项目目录运行 npm install @reuse-sh/lightbox,或使用 pnpm add / yarn add / bun add。

@reuse-sh/lightbox 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@reuse-sh/lightbox 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@reuse-sh/lightbox 可以商用吗?

@reuse-sh/lightbox 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@reuse-sh/lightbox 还在维护吗?

最新版本 0.0.5 发布于 2026/11/02(1 天前);至今共发布 6 个版本,其中过去 12 个月发布了 6 个;首次发布于 2026/11/02。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。