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 Tabs (Drupal Module)

Breadcrumbs

Breadcrumb

  • Home
  • Drupal Modules
  • Views Tabs (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 Tabs turns a Drupal View into a tabbed interface — the first field becomes each tab's label, and every other field renders inside that tab's pane — built in vanilla JavaScript with four tab positions and deep linking. It is a Views style plugin, machine name vvjt, with no jQuery dependency.

Two ways to use it

Most sites use Views Tabs the obvious way: horizontal or vertical labeled tabs, where a visitor clicks a label to switch panes. But because the "label" is just the first field in the row, it does not have to be text — set it to an image field and you get a row of clickable image thumbnails that switch the visible content underneath, without writing a line of JavaScript yourself.

Requirements

Views Tabs requirements, from vvjt.info.yml
RequirementValue
Drupal core^11.3 || ^12
PHP8.3+
Core modulesViews, Filter
Contributed dependencyVVJ Core — required by every VVJ v2 module, pulled in automatically by Composer

The 2.x branch does not run on Drupal 10. If you are on Drupal 10, install the 1.x series instead; if the version gap itself is the obstacle, upgrading Drupal to 11 or 12 is work I do.

Row structure

Set the row style to Fields with at least two fields. Every view built with this plugin carries the CSS class vvj-tabs alongside js-view-dom-id. The first field becomes the tab's clickable label and should not itself be a link — the module falls back to disabling any link on it automatically, but it is cleaner to avoid one. Every field after the first is grouped into that row's tab pane. The currently open tab's button carries the CSS class active.

Configuration

Key format settings, from vvjt.schema.yml
SettingControls
Tabs positionTop, right, bottom or left
AnimationNone, zoom, opacity fade, or slide from top, bottom, left or right
Max width / max heightCaps the size of tab buttons (useful for vertical tabs) and of the button container
Available breakpoint576, 768, 992, 1200 or 1400px — the width at which vertical tabs collapse to horizontal
Wrap tabsWrap buttons onto multiple lines instead of the default auto-scroll when they exceed the available space
Background colorsIndependent colors for the tab buttons and the tab panes, or disable both
Enable CSS libraryTurn the shipped stylesheet off for full custom styling

Deep linking

Views Tabs can enable deep linking with a URL identifier of your choosing, so a specific tab is reachable and shareable by URL fragment rather than always opening on the first one — useful when a tabbed FAQ, product spec sheet or documentation page is linked to from outside the page itself.

JavaScript API

Every tab group is reachable through Drupal.vvjt, addressed by its deep-link identifier, a CSS selector, or a direct element reference:

Drupal.vvjt.goToTab('features', 3);
Drupal.vvjt.getCurrentTab('features');
Drupal.vvjt.getTotalTabs('features');
Drupal.vvjt.getInstance('#vvjt-12345'); // 
Drupal.vvjt.getAllInstances();

That is enough to drive a tab group from an external menu, jump to a tab based on a filter selection, or coordinate two tab groups on one page.

Accessibility

Views Tabs implements ARIA roles and state properties so assistive technology announces which tab is selected, full keyboard navigation so tabs can be operated without a mouse, and focus management that keeps the currently selected tab focused for keyboard and screen reader users.

Custom tokens in Views header and footer

With Global: Text area or Global: Unfiltered text and "Use replacement tokens from the first row" enabled, Drupal's default tokens will not resolve — use the module's own instead. {{ title }} becomes [vvjt:title], {{ field_image }} becomes [vvjt:field_image], and appending :plain strips HTML, as in [vvjt:title:plain]. Complex rewrite expressions with embedded tokens are not supported; reference individual fields instead. In v2, resolution runs through the shared vvj_core.token_resolver service, with the same token syntax as v1.

Installation

composer require drupal/vvjt
drush en vvjt -y
drush cr

Then edit your view, choose Views Vanilla JavaScript Tabs as the format, and set the position, animation and breakpoint under Format Settings.

Using more than one field as the tab label

The label reads from a single field by default. To combine several, add all the fields you need and mark each "Exclude from display," then add a Custom Global Field (Text) that uses Views' replacement-pattern tokens to merge them into one label. Order the excluded fields first, the custom global field second, and the remaining pane content after that.

A known limitation

Views Tabs does not support the Views Grouping Field feature. Grouping rows by a field is not compatible with the current implementation, so avoid combining the two.

Common questions

Can the tab label be an image instead of text?

Yes. The first field can be any field type, including an image field, which turns the tab row into a set of clickable thumbnails.

What happens to vertical tabs on a narrow screen?

They collapse to horizontal tabs at your configured responsive breakpoint, so a left- or right-positioned tab set never squeezes a phone-width layout.

Can I link directly to one tab?

Yes, once deep linking is enabled with a URL identifier — the tab is then reachable and shareable by URL fragment.

Will it install on Drupal 10?

No — 2.x requires Drupal 11.3 or later, or Drupal 12. Use the 1.x branch on Drupal 10.

Do I need to install VVJ Core myself?

No. It is a required dependency and Composer installs it automatically when you require drupal/vvjt.

Related modules

Views Tabs is one of ten Views display styles sharing the VVJ Core foundation. For an accordion-style expanding list instead of tabs, see Views Accordion; for a two-sided card, see Views Reveal; for a sequential slideshow, see Views Slideshow. If your content is built with Paragraphs Bundles, its Tabs paragraph type uses the same underlying pattern without a view.

Need tabs built into a real site?

Views Tabs is free and GPL-licensed, like all my contributed work. If you want a tabbed spec sheet, FAQ or thumbnail gallery built around it, or a Drupal 10 to 11/12 upgrade so you can run the 2.x branch, that is my day job. Read about my Drupal services, see what a Drupal developer handles day to day, or get in touch.

Views Vanilla JavaScript Tabs (VVJT)
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

Drupal Architect: The Decisions Expensive to Reverse

Drupal Services: Development, Theming, Upgrades | Austin TX

Drupal Developer: Skills, Hiring and What the Job Really Is

Drupal Blocks vs Content Blocks: Stop Paragraph Duplicates

Paragraphs Bundles

Drupal Module - Paragraphs Bundles

Drupal Theme - Solo

Drupal Theme - Solo

Drupal Work List - Drupal Work

Views 3D FlipBox (Drupal Module)

Acquia Purge Varnish - API V2 (Drupal Module)

Amun - W3CSS Sub-Theme (Drupal Theme)

Anhur - W3CSS Sub-Theme (Drupal Theme)

Selectify (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