πŸ“Š State of Magento 2025 β†’

The Home for Magento 2 Excellence

Quality-tested Magento 2 modules. Explore. Evaluate. Elevate. #magento2

613 Modules
398 Ready
213 Need Help
πŸ† Leaderboard
Actively Maintained v1.0.1

Rollpix Product Gallery for Magento 2

rollpix/module-product-gallery

Replaces the default product gallery with a vertical scrolling layout and sticky product info. Includes hover zoom, lightbox, and mobile carousel features.

0
Downloads
0
GitHub Stars
6d ago
Last Release
0
Open Issues
Build Issues
0/3 checks passed

Build Tests

Composer Install
– DI Compile
– Templates

Code Quality

CS Coding Standard
– PHPStan

Tested on Magento 2.4.8-p3

Recent Test History

Each release is tested against the latest Magento version at that time.

v1.0.1 on Magento 2.4.8-p3
Jan 28, 2026

Looking for Contributors

Composer installation fails. Your contribution could help the entire Magento community!

Contribute

Share This Module's Status

Rollpix Product Gallery for Magento 2 Magento compatibility status badge

README

Loaded from GitHub

Rollpix Product Gallery for Magento 2

A modern, editorial-style product gallery module for Magento 2 that replaces the default Fotorama gallery with a vertical scrolling layout. Features a sticky product info panel, hover zoom, lightbox support, and mobile carousel.

Magento 2 PHP License

Features

Layout

  • Vertical Gallery Layout: Images stacked vertically on one side, product info on the other
  • Configurable Position: Gallery on left or right side
  • Flexible Column Ratios: Choose between 40/60, 50/50, or 60/40 splits
  • Adjustable Image Gap: Configure spacing between images (0-40px)

Zoom Options

  • Hover Magnifier: Native-style zoom on mouse hover with lens indicator
  • Lightbox Mode: Full-screen image viewing with GLightbox
  • Configurable Zoom Level: 2x to 5x magnification
  • Zoom Position: Display zoomed image on the right side or inside the image

Sticky Panel

  • Sticky Product Info: Product details remain visible while scrolling through images
  • Configurable Offset: Adjust top offset for sites with fixed headers
  • Toggle On/Off: Enable or disable sticky behavior

Mobile Experience

  • Responsive Design: Optimized for all screen sizes
  • Swipeable Carousel: Touch-friendly image carousel on mobile
  • Vertical Stack Option: Alternative stack layout for mobile

Performance

  • Lazy Loading: Native lazy loading for images
  • Lightweight: No heavy dependencies, GLightbox is only ~2KB gzipped
  • CSS Variables: Dynamic styling without page reload

Requirements

| Requirement | Version | |-------------|---------| | Magento | 2.4.7 - 2.4.8 | | PHP | 8.1 - 8.3 | | Theme | Luma or Luma-based themes |

Installation

Via Composer (Recommended)

composer require rollpix/module-product-gallery
bin/magento module:enable Rollpix_ProductGallery
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

Manual Installation

  1. Create the directory structure:
mkdir -p app/code/Rollpix/ProductGallery
  1. Download and extract the module files to app/code/Rollpix/ProductGallery/

  2. Enable the module:

bin/magento module:enable Rollpix_ProductGallery
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

Configuration

Navigate to Stores > Configuration > Rollpix > Product Gallery

Zoom Settings

| Option | Description | Default | |--------|-------------|---------| | Zoom Type | Hover Magnifier, Lightbox, or Disabled | Hover | | Zoom Level | Magnification level (2x-5x) | 3x | | Zoom Window Position | Right Side or Inside Image | Right |

Layout Settings

| Option | Description | Default | |--------|-------------|---------| | Gallery Position | Left or Right | Left | | Column Ratio | 40/60, 50/50, or 60/40 | 50/50 | | Gap Between Images | Spacing in pixels (0-40) | 20px |

Mobile Settings

| Option | Description | Default | |--------|-------------|---------| | Mobile Behavior | Vertical Stack or Swipeable Carousel | Carousel |

Sticky Panel Settings

| Option | Description | Default | |--------|-------------|---------| | Enable Sticky | Keep product info fixed while scrolling | Yes | | Top Offset | Distance from top in pixels | 20px |

Screenshots

Desktop - Gallery Left (50/50)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚             β”‚    β”‚ Product Title       β”‚ β”‚
β”‚  β”‚   Image 1   β”‚    β”‚ $99.00              β”‚ β”‚
β”‚  β”‚             β”‚    β”‚                     β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚ [Add to Cart]       β”‚ β”‚
β”‚                     β”‚                     β”‚ β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚ Description...      β”‚ β”‚
β”‚  β”‚             β”‚    β”‚                     β”‚ β”‚
β”‚  β”‚   Image 2   β”‚    β”‚  (Sticky Panel)     β”‚ β”‚
β”‚  β”‚             β”‚    β”‚                     β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                            β”‚
β”‚  β”‚   Image 3   β”‚                            β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Hover Zoom (Right Position)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    β”Œβ”€β”€β”€β”€β”€β”      β”‚  β”‚                 β”‚
β”‚    β”‚Lens β”‚      β”‚  β”‚   Zoomed Area   β”‚
β”‚    β””β”€β”€β”€β”€β”€β”˜      β”‚  β”‚                 β”‚
β”‚                 β”‚  β”‚                 β”‚
β”‚   Main Image    β”‚  β”‚                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Mobile Carousel

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β—„  Image 1  β–Ί β”‚
β”‚               β”‚
β”‚   ● β—‹ β—‹ β—‹ β—‹   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Product Title β”‚
β”‚ $99.00        β”‚
β”‚ [Add to Cart] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

File Structure

app/code/Rollpix/ProductGallery/
β”œβ”€β”€ registration.php
β”œβ”€β”€ composer.json
β”œβ”€β”€ README.md
β”œβ”€β”€ etc/
β”‚   β”œβ”€β”€ module.xml
β”‚   β”œβ”€β”€ config.xml
β”‚   β”œβ”€β”€ acl.xml
β”‚   β”œβ”€β”€ di.xml
β”‚   └── adminhtml/
β”‚       └── system.xml
β”œβ”€β”€ Model/
β”‚   β”œβ”€β”€ Config.php
β”‚   └── Config/Source/
β”‚       β”œβ”€β”€ ZoomType.php
β”‚       β”œβ”€β”€ ZoomLevel.php
β”‚       β”œβ”€β”€ ZoomPosition.php
β”‚       β”œβ”€β”€ GalleryPosition.php
β”‚       β”œβ”€β”€ ColumnRatio.php
β”‚       β”œβ”€β”€ ImageGap.php
β”‚       └── MobileBehavior.php
β”œβ”€β”€ ViewModel/
β”‚   └── GalleryConfig.php
└── view/
    └── frontend/
        β”œβ”€β”€ layout/
        β”‚   └── catalog_product_view.xml
        β”œβ”€β”€ templates/
        β”‚   └── product/view/
        β”‚       └── gallery-vertical.phtml
        β”œβ”€β”€ requirejs-config.js
        └── web/
            β”œβ”€β”€ css/
            β”‚   └── gallery-vertical.css
            └── js/
                β”œβ”€β”€ gallery-zoom.js
                └── gallery-carousel.js

Customization

CSS Variables

The module uses CSS custom properties that can be overridden:

.rp-product-wrapper {
    --rp-col-1: 1fr;           /* First column width */
    --rp-col-2: 1fr;           /* Second column width */
    --rp-gallery-order: 1;     /* Gallery order (1 or 2) */
    --rp-info-order: 2;        /* Info panel order (1 or 2) */
    --rp-sticky-offset: 20px;  /* Sticky top offset */
    --rp-image-gap: 20px;      /* Gap between images */
}

Theme Compatibility

If your theme uses different selectors, you may need to adjust the CSS. The module targets:

  • .catalog-product-view - Product page body class
  • .column.main - Main content area
  • .product-info-main - Product info container

Extending the Module

To add custom functionality, you can:

  1. Override the template: Copy gallery-vertical.phtml to your theme
  2. Add custom CSS: Create a _extend.less file in your theme
  3. Modify JS behavior: Create a mixin for the JS components

Troubleshooting

Zoom not working

  1. Open browser DevTools (F12) and check Console for errors
  2. Verify the module is outputting: "Rollpix Gallery Zoom initialized"
  3. Clear all caches:
rm -rf pub/static/frontend/*
rm -rf var/view_preprocessed/*
bin/magento setup:static-content:deploy -f
bin/magento cache:flush

Layout issues with custom theme

  1. Verify your theme extends Luma
  2. Check if your theme overrides catalog_product_view.xml
  3. Ensure .product-info-main container exists

Sticky not working

  1. Verify the parent container has sufficient height
  2. Check if another CSS rule overrides position: sticky
  3. Ensure no overflow: hidden on parent elements

Images not loading

  1. Check if product has images assigned
  2. Verify image URLs are accessible
  3. Check browser console for 404 errors

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Mobile Safari (iOS 12+)
  • Chrome for Android

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Coding Standards

Roadmap

  • [ ] Admin configuration for enable/disable per category
  • [ ] Video support in gallery
  • [ ] Thumbnail strip option
  • [ ] Image counter overlay
  • [ ] Zoom on hover without click
  • [ ] Custom animations/transitions
  • [ ] Integration with PageBuilder

Changelog

1.0.0 (2025-01-26)

  • Initial release
  • Vertical gallery layout
  • Hover zoom functionality
  • Lightbox support (GLightbox)
  • Mobile carousel
  • Sticky product info panel
  • Full admin configuration

License

This project is licensed under the MIT License - see the LICENSE file for details.

Credits

  • GLightbox - Lightweight lightbox library
  • Inspired by editorial product pages from leading fashion e-commerce sites

Support


Made with ❀️ by Rollpix

This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.