A touchable jQuery lightbox.
What is Shinybox ?

shinybox is a jQuery "lightbox" plugin for desktop, mobile and tablet.

  • Swipe gestures for mobile
  • Keyboard Navigation for desktop
  • CSS transitions with jQuery fallback
  • Retina support for UI icons
  • Easy CSS customization

Chrome, Safari, Firefox, Opera, IE8+, IOS4+, Android, windows phone.


Include jquery and the shinybox script in your head tags or right before your body closing tag.

<script src="lib/jquery-1.9.0.js"></script>
<script src="source/jquery.shinybox.js"></script>

Include the shinybox CSS style in your head tags.

<link rel="stylesheet" href="source/shinybox.css">

Use a specific class for your links and use the title attribute as caption.

<a href="big/image.jpg" class="shinybox" title="My Caption">
Fire the plugin

Bind the shinybox behaviour on every link with the "shinybox" class.


id: 'shinybox-overlay', // id of the overlay element
useCSS: true, // false will force the use of jQuery for animations
useSVG: true, // true will use svg icons instead of png icons

removeBarsOnMobile: false, // remove top and bottom bars on mobile
hideCloseButtonOnMobile: false, // hide close button on mobile, you can always use swipe up or down to close the shinybox on mobile
loopAtEnd: false, // Play images in loop in either directions

initialIndexOnArray: 0, // which image index to init when a array is passed
hideBarsDelay: 3000, // 0 to always show caption and action bar
sort: null, // a sorting function to sort the dom elements before showing in shinybox

closePlacement: 'bottom', // places close button in bottom bar
captionPlacement: 'top', // places caption in top bar
navigationPlacement: 'bottom', // places navigation buttons in bottom bar

videoMaxWidth: 1140, // videos max width
autoplayVideos: false, // true will autoplay Youtube and Vimeo videos
vimeoColor: 'CCCCCC', // vimeo color
queryStringData: {}, // plain object with custom query string arguments to pass/override for video URLs

beforeOpen: function(){}, // called before opening
afterClose: function(){}, // called after closing
afterMedia: function(element, index){}, // called after loading media
afterSlide: function(element, index){} // called after sliding to image at the index

Photos by Daniele Zedda
Based on Swipebox

Chandrasekhar Ambula V


I am a software engineer with JavaScript as my major skill. I have been in field since June 2012.

I am an expert in developing Interactive and Responsive user interfaces. I have experience in developing web apps and websites from scratch.

Get in touch