/gridtab

GridTab is a lightweight jQuery plugin to create grid based responsive tabs https://gopalraju.github.io/gridtab

Primary LanguageHTMLMIT LicenseMIT

GridTab jQuery Plugin

GridTab is a lightweight jQuery plugin to create grid based responsive tabs.

Demo

http://gopalraju.github.io/gridtab

Features

  • Responsive
  • Lightweight and based on CSS3 flexbox
  • Set Grid for each breakpoint
  • Switch between Grid and Tab layout
  • Next, previous and close controls
  • Scroll to current tab
  • Custom selectors
  • Right-To-Left Support

Package Managers

# Bower
bower install --save gridtab

# NPM
npm install gridtab

Usage

Setting up GridTab is really simple

HTML Markup

Your markup should look something like this

<dl id="gridtab-1">
	<dt>Tab 1</dt>
	<dd>Tab 1 Description</dd>
	<dt>Tab 2</dt>
	<dd>Tab 2 Description</dd>
	<dt>Tab 3</dt>
	<dd>Tab 3 Description</dd>
	<dt>Tab 4</dt>
	<dd>Tab 4 Description</dd>
	<dt>Tab 5</dt>
	<dd>Tab 5 Description</dd>
	<dt>Tab 6</dt>
	<dd>Tab 6 Description</dd>
</dl>

Where, <dt> contains the title of the tab nad <dd> contains the description to be shown on click.

Stylesheet

Just add a link to the css file in your :

<link rel="stylesheet" type="text/css" href="gridtab.min.css"/>

jQuery Plugin

Then, before your closing <body> tag add:

<script type="text/javascript" src="gridtab.min.js"></script>

and initialize the plugin as shown below:

<script>
	$(document).ready(function() {
		$('#gridtab-1').gridtab({
			grid:3
		});
	});
</script>

Where grid is the number of grids/tabs in a row

Settings

Basic Settings Type Default Description
grid integer 4 Number of grids or tabs per row
borderWidth integer 2 Width of the borders.
tabBorderColor string '#ddd' border color of the tabs (Hex Color Code).
tabPadding integer 25 padding/spacing around the tabs.
contentBorderColor string '#ddd' border color of the content section (Hex Color Code).
contentPadding integer 25 padding/spacing around content section.
contentBackground string '#fff' Background color for the content section (Hex Color Code).
activeTabBackground string '#fff' Background color for the active tab (Hex Color Code).
responsive Array null Array of objects having breakpoints and settings object which is enabled at a given breakpoint.
selectors Object see table below Object with options to set custom selectors.
config Object see table below Object with options to enable features like, setting initially active tab, next/prev controls, close button, transition speed etc.
callbacks Object open:false, close:false Callbacks for the open and close states of the content section.
selectors Type Default Description
tab string '> dt' By default, the click event is triggered on the entire tab ('dt'). This can be replaced with any custom selector within the dt. For example: '.readmore'.
closeButton string '.gridtab__close' Custom class for the close button, if 'showClose' is set to true.
nextArrow string '.gridtab__next.gridtab__arrow' Custom class for the next button, if 'showArrows' is set to true.
prevArrow string '.gridtab__prev.gridtab__arrow' Custom class for the prev button, if 'showArrows' is set to true.
disabledArrow string '.is-disabled' Custom class for the disabled state of next/prev buttons, if 'showArrows' is set to true.
config Type Default Description
layout string 'grid' Change the value to 'tab' for a tab layout. By default, the layout is 'grid' based.
keepOpen Boolean false If set to true keeps the active tab open (Disables toggle).
speed integer 500 Transition speed in milliseconds.
activeTab integer 0 Initially active tab. For example, 1 enables the first tab.
showClose Boolean false Shows the close button if set to true.
showArrows Boolean false Shows the next/prev buttons if set to true.
scrollToTab Boolean false Scrolls to the active tab on click
RTL Boolean false Converts tab to RTL

Responsive Example

The responsive settings is where you reset the grids and other properties at a given breakpoint.

$('#gridtab-1').gridtab({
	grid:5,
	contentPadding: 40,
	responsive:[{
		breakpoint: 1024,
		settings:{
			grid:3,
			contentPadding: 30
		}
	},{
		breakpoint:767,
		settings:{
			grid:2,
			contentPadding: 25
		}
	},{
		breakpoint:520,
		settings:{
			grid:1,
			contentPadding: 20
		}
	}]
});

All properties under basic settings like: borderWidth, tabPadding, tabBorderColor, contentBorderColor, contentPadding, contentBackground and activeTabBackground, can be updated with the responsive settings.

Version

2.1.1

Browser support

GridTab works on IE10+ in addition to other modern browsers like Chrome, Firefox and Safari

Dependencies

jQuery 1.8.3 +

License

Licensed under the MIT license.