Skip to header Skip to main navigation Skip to main content Skip to footer
Cookies UI
Site branding
Alaa Haddad - Drupal Expert
Consultant • Architect • Developer • Themer - Expert Drupal Solutions
Main navigation
Alaa Haddad Offers Exceptional Drupal Custom Theming and Modules in Austin TX Alaa Haddad - Drupal Expert
  • Professional Profile
  • Drupal Services
    • Drupal Development
    • Drupal Developer
    • Drupal Themer
    • Drupal Architect
    • Drupal Consultant
  • My Drupal Modules & Themes
      • Cloudflare Purge
      • Solo Copy Blocks
      • W3CSS Paragraphs
      • Paragraphs Bundles
      • Acquia Purge Varnish
      • Reference Blocked Users
      • Module Matrix
      • Paragraphs Bundles Import
      • Selectify
      • Solo Utilities
      • Utilikit
      • Solo
      • Amun
      • Anhur
      • Amunet
      • W3CSS Theme
      • 3D Carousel
      • 3D FlipBox
      • Accordion
      • Carousel
      • Hero
      • Lightbox
      • Parallax
      • Reveal
      • Slideshow
      • Tabs
  • Blog
  • Videos
  • Contact
  • Hire Me (opens in new tab)

Views Lightbox (Drupal Module)

Breadcrumbs

Breadcrumb

  • Home
  • Drupal Modules
  • Views Lightbox (Drupal Module)

Main page content

Alaa Haddad, professional Drupal developer based in Austin, TX   Alaa Haddad
  10:43 PM CDT, Sun September 13, 2026
Share

Views Lightbox (VVJL) renders a Views row set as an accessible, keyboard-navigable image lightbox gallery — grid thumbnails that open into a modal — using pure vanilla JavaScript with no jQuery. It requires Drupal 11.3 or 12, and it is free on drupal.org.

What it does

VVJL adds a Lightbox display style to Views: select it in the Format section and a row-style view renders as a responsive image grid where clicking any item opens a modal viewer with navigation between items, rather than linking away to a full page or a separate image. It is a Views style plugin, not a field formatter, so it applies to the whole view's row output rather than one field at a time.

Requirements

Views Lightbox requirements, from vvjl.info.yml
RequirementValue
Drupal core^11.3 || ^12
PHP8.3+
Core modulesViews, Filter
Required contrib moduleVVJ Core (vvj_core) — not optional

VVJL depends on VVJ Core and will not install without it. VVJ Core supplies the shared style-plugin base class, the accessibility helpers, and the JavaScript custom-element foundation every VVJ v2 module builds on — it does nothing on its own. Composer resolves it for you:

composer require drupal/vvjl:^2.0

Installing from a downloaded tarball instead of Composer means downloading vvj_core yourself and enabling it first — the admin modules page will refuse to enable VVJL without it on disk.

This is a Drupal 11.3+ and 12 module, not Drupal 10. VVJL 2.x is built on Views' current #[ViewsStyle] attribute-based plugin discovery, which is what Drupal 12 requires — annotation-only plugin discovery was removed in Drupal 12. If you need this on a Drupal 10 site, that means upgrading first; Drupal 10 to 11/12 upgrades are work I do.

Setting up the view

What the Lightbox display style expects of the view
RequirementDetail
First fieldAn image field, and it should not be set clickable — the module opens the modal itself and disables a clickable image link as a fallback if you forget, but leaving it non-clickable avoids relying on that fallback
Remaining fieldsPositioned at the bottom of each grid image as caption content
Images per itemOne image per row for the lightbox itself; any links in the remaining fields stay active inside the opened modal
CSS classesvvj-lightbox on the view, alongside Views' own js-view-dom-id; a grid-count-N class carrying the item count
Not supportedViews' "Grouping Field" option — leave it off

Configuration options

  • Grid image width and gap — set in pixels, controlling the thumbnail grid layout.
  • Overlay color and opacity, with an option to disable the modal overlay entirely.
  • Animation type for the transition between images — top, bottom, left, right, or zoom.

Accessibility

Accessibility is not a bolt-on here — it is why the module exists in its current form. VVJL ships:

ARIA roles and properties
The modal and its controls carry the roles and state attributes a screen reader needs to announce what is open and what changed.
Keyboard navigation
Every action available with a mouse — opening an item, moving to the next or previous image, closing the modal — is reachable from the keyboard.
Focus management
Opening the modal moves focus into it, and the currently displayed item stays focused as you navigate, rather than leaving keyboard focus stranded on the page behind the overlay.

All of the lightbox's interactive controls are inline SVG, so if you need a different accent color, target the SVG fill directly rather than swapping icon assets.

Custom tokens for Views header and footer

Views' built-in "Use replacement tokens from the first row" option on a Global: Text area or Global: Unfiltered text field does not resolve against Lightbox output. Use VVJL's own tokens instead:

[vvjl:title]
Replaces the default {{ title }} token.
[vvjl:field_image]
Replaces {{ field_image }}, and the same pattern works for any other field machine name.
[vvjl:title:plain]
Append :plain to strip HTML from the resolved value.

A field using a complex rewrite (Global: Custom text with its own {{ tokens }}) is not supported — use the individual field token form. Token resolution runs through the shared vvj_core.token_resolver service in v2, but the token syntax itself is unchanged from 1.x.

Targeting the markup with CSS

To style the fields inside the closed grid, target .vvjl-inner > .lightbox-row .lightbox-image. To style the same fields once the modal is open, target .vvjl-inner > .lightbox-modal .lightbox-image instead — the grid and the modal use separate markup, not the same nodes repositioned.

Installation

composer require drupal/vvjl:^2.0
drush en vvjl -y
drush cr

Then edit or create a view, and in the Format section choose Lightbox as the display style.

Common questions

What happens if I leave the first field clickable by mistake?

VVJL includes a fallback that disables the click behaviour on that field so the modal still opens correctly, but the cleaner setup is to leave the first field non-clickable from the start and let the module own the click.

Can a gallery item link to more than one image in the modal?

Only one image per row feeds the lightbox itself. Any additional links in the row's other fields remain clickable inside the opened modal, but they are not additional lightbox images.

Does the Grouping Field option in Views work with this display style?

No. This is a stated limitation of the current implementation — avoid it for any view using the Lightbox style.

Is this compatible with Drupal 10?

No. core_version_requirement is ^11.3 || ^12. A Drupal 10 site needs the 1.x branch or a core upgrade first.

Does the lightbox require jQuery or a JavaScript gallery library?

No. It is built entirely in vanilla JavaScript, coordinated through the shared vvj_core custom-element foundation — no jQuery, no third-party lightbox library.

Related VVJ display formats

For a full-width banner instead of a gallery grid, see Views Hero. For a scroll-driven background treatment on the same row data, see Views Parallax. If your image galleries live inside Paragraphs rather than Views, Paragraphs Bundles ships comparable components as paragraph types.

Need a gallery built and tuned for a real project instead of configured yourself, or help clearing a Drupal 10 site for the Drupal 11/12 upgrade this module requires? See my Drupal services or get in touch.

Views Vanilla JavaScript Lightbox
Slide 1 of 27
Acquia Purge Varnish - API V2 (Drupal Module)
Slide 2 of 27
Amun - W3CSS Sub-Theme (Drupal Theme)
Slide 3 of 27
Amunet - W3CSS Sub-Theme (Drupal Theme)
Slide 4 of 27
Anhur - W3CSS Sub-Theme (Drupal Theme)
Slide 5 of 27
Cloudflare Purge (Drupal Module)
Slide 6 of 27
Module Matrix (Drupal Module)
Slide 7 of 27
Paragraphs Bundles (Drupal Module)
Slide 8 of 27
Paragraphs Bundles Import (Drupal Module)
Slide 9 of 27
Reference Blocked Users (Drupal Module)
Slide 10 of 27
Selectify (Drupal Module)
Slide 11 of 27
Solo (Drupal Theme)
Slide 12 of 27
Solo Copy Blocks (Drupal Module)
Slide 13 of 27
Solo Utilities (Drupal Module)
Slide 14 of 27
Utilikit (Drupal Module)
Slide 15 of 27
Views 3D Carousel (Drupal Module)
Slide 16 of 27
Views 3D FlipBox (Drupal Module)
Slide 17 of 27
Views Accordion (Drupal Module)
Slide 18 of 27
Views Carousel (Drupal Module)
Slide 19 of 27
Views Hero (Drupal Module)
Slide 20 of 27
Views Lightbox (Drupal Module)
Slide 21 of 27
Views Parallax (Drupal Module)
Slide 22 of 27
Views Reveal (Drupal Module)
Slide 23 of 27
Views Slideshow (Drupal Module)
Slide 24 of 27
Views Tabs (Drupal Module)
Slide 25 of 27
VVJ Core (Drupal Module)
Slide 26 of 27
W3CSS Paragraphs (Drupal Module)
Slide 27 of 27
W3CSS Theme (Drupal Theme)
1 of 27

Our mission is to make Drupal more accessible and user-friendly, empowering businesses of all sizes, especially small enterprises with powerful tools that streamline content customization and enhance digital experiences.

Need help with your Drupal project? Hire Me through Flash Web Center, LLC.

Search

The Drupal 11 Module and Theme Stack, With Versions Checked

ARIA Live Regions in Drupal 11: What Core Does, What You Add

Drupal Architect: The Decisions Expensive to Reverse

Drupal Services: Development, Theming, Upgrades | Austin TX

Paragraphs Bundles

Drupal Module - Paragraphs Bundles

Drupal Theme - Solo

Drupal Theme - Solo

Drupal Work List - Drupal Work

Reference Blocked Users (Drupal Module)

Solo Utilities (Drupal Module)

Views Hero (Drupal Module)

Solo (Drupal Theme)

Paragraphs Bundles Import (Drupal Module)

Drupal Theme - W3CSS Theme

Drupal Theme - W3CSS Theme

Drupal Module - W3CSS Paragraphs

Drupal Module - W3CSS Paragraphs

Inspiration

Inspiration is the fuel that powers our creative engine, often coming from our surroundings, experiences, or the works of others. It's that magical moment when something clicks inside your brain, and you suddenly see a path forward that you hadn't noticed before. Inspiration can strike at any time, providing the motivation and energy needed to explore new possibilities and bring your ideas to life.

Unique Ideas

Unique Ideas

Unique ideas are the seeds of innovation, representing original thoughts or concepts that stand out from the usual. They're the sparks that ignite the process of creating something new and different, often leading to unexpected and groundbreaking solutions or products. Whether in art, science, business, or technology, unique ideas challenge the status quo and pave the way for progress.

Brainstorming

Brainstorming

Brainstorming is a creative group activity designed to generate a large number of ideas or solutions to a problem. It's a free-flowing and open-ended discussion where every suggestion is welcomed and considered, no matter how outlandish it may seem. Brainstorming encourages thinking outside the box, fostering an environment where creativity and collaboration lead to innovative solutions.

Planning

Planning

Planning is the blueprint for turning your ideas into reality. It involves setting goals, outlining steps, and organizing resources in a way that makes achieving your objectives possible. Good planning considers potential challenges and opportunities, making it easier to navigate the journey from concept to completion. It's about preparing the groundwork so that your projects can grow and flourish.

Drupal Developer

A Drupal Developer stands as the technical powerhouse behind dynamic websites, wielding expertise in PHP, custom module development, and Drupal's sophisticated API ecosystem. This role transforms business requirements into functional, secure, and scalable web solutions that power everything from small business sites to enterprise platforms serving millions of users. A Drupal Developer's expertise spans the entire development lifecycle—from architecting custom modules and integrating third-party services to optimizing performance and ensuring security compliance. Discover the complete guide to Drupal Developer skills, career paths, and hiring strategies.

Drupal Themer

A Drupal Themer serves as the artistic craftsperson who transforms wireframes and design mockups into pixel-perfect, accessible, and responsive user experiences using Twig templates, CSS, and JavaScript. This specialized role bridges the gap between design vision and technical implementation, ensuring every website not only looks exceptional but performs flawlessly across all devices and meets WCAG accessibility standards. A Drupal Themer's work encompasses the entire front-end ecosystem—from creating custom theme architectures and optimizing Core Web Vitals to implementing complex responsive designs and ensuring seamless integration with Drupal's rendering system. Explore the comprehensive guide to Drupal Themer expertise, theming best practices, and career advancement.

Drupal Architect

A Drupal Architect emerges as the strategic visionary of web construction, armed with encyclopedic knowledge of enterprise architecture patterns, infrastructure design, and Drupal's extensive technological ecosystem. This senior role operates at the highest technical level, making critical decisions that determine whether complex implementations scale successfully or collapse under real-world demands. A Drupal Architect's responsibilities begin long before development starts—during strategic planning phases where the foundation for secure, performant, and maintainable systems is established through careful evaluation of technology stacks, integration strategies, and scalability requirements. Learn about Drupal Architect skills, enterprise architecture strategies, and career progression to principal roles.

Footer menu

  • Contact
  • Professional Resume
  • Resume Summary
  • Technical Skills
  • Privacy Policy
  • Terms & Conditions
  • Search
  • Login
  • Sitemap

Copyright © 2026 Flash Web Center, LLC - All rights reserved

Developed & Designed by Alaa Haddad