Socket
Book a DemoInstallSign in
Socket

doorvel-gallery

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

doorvel-gallery

A modern, responsive, Airbnb-style gallery component for React.

latest
Source
npmnpm
Version
1.2.6
Version published
Weekly downloads
22
-21.43%
Maintainers
1
Weekly downloads
 
Created
Source

A modern, responsive, Airbnb-style gallery component for React. Features a beautiful grid, sectioned view, and modal/lightbox with swipe, fade, and thumbnail navigation. Built with React, Tailwind CSS, and Embla Carousel.

✨ Features

  • Responsive Airbnb-style grid (first image large, others small)
  • Sectioned view for grouped images
  • Modal/lightbox with swipe (mobile) and fade (desktop)
  • Keyboard navigation, thumbnails, and custom modal buttons
  • TypeScript support
  • Easily theme with Tailwind CSS

🚀 Installation

npm install @your-org/airbnb-gallery embla-carousel-react

Peer dependencies:

  • react (>=17)
  • react-dom (>=17)
  • embla-carousel-react (>=8)

🛠 Usage

import { Gallery } from '@your-org/airbnb-gallery'

const images = [
  'https://images.unsplash.com/photo-1.jpg',
  'https://images.unsplash.com/photo-2.jpg',
  'https://images.unsplash.com/photo-3.jpg',
  // ...
]

function App() {
  return <Gallery images={images} />
}

Sectioned View Example

import { Gallery, GalleryImage } from '@your-org/airbnb-gallery'

const sectionedImages: GalleryImage[] = [
  { url: '...', label: 'Living Room', section: 'Living' },
  { url: '...', label: 'Kitchen', section: 'Kitchen' },
  // ...
]

<Gallery images={sectionedImages} mode="sections" sectionsTitle="Tour" />

📦 API

PropTypeDefaultDescription
imagesstring[] | GalleryImage[]requiredArray of image URLs or objects
mode'grid' | 'sections''grid'Display mode
buttonLabelstring'Show all photos'Text for the grid overlay button
customModalButtonsReact.ReactNodeundefinedCustom buttons in modal (e.g. share, save)
sectionsTitlestring'Photos'Title for sectioned view

GalleryImage Type

type GalleryImage = {
  url: string;
  label?: string;
  section?: string;
}

🎨 Customization

  • Style with Tailwind CSS classes (override or extend as needed)
  • Pass custom buttons (e.g. share, save) to the modal
  • Use your own section/grouping logic with GalleryImage[]

🧪 Testing

This library is fully tested with Vitest and React Testing Library. To run tests:

npm test

📄 License

MIT

Keywords

react

FAQs

Package last updated on 24 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts