Exciting release!Introducing "safe npm". Learn more
Socket
Log inDemoInstall

vue-tinybox

Package Overview
Dependencies
0
Maintainers
1
Versions
18
Issues
File Explorer

Advanced tools

vue-tinybox

A slick, yet tiny lightbox gallery for Vue.js

    1.3.0latest
    GitHub

Version published
Maintainers
1
Weekly downloads
663
decreased by-17.54%

Weekly downloads

Readme

Source

vue-tinybox

Milky Way emoji

A slick, yet tiny lightbox gallery for Vue.js

  • Slick. No excessive design. Pictures, thumbnails, controls.
  • Tiny. Dependency-free. 3 KB minified and gzipped.
  • Adaptive. Works on computers. Works on tablets. Works on phones.

Demo

Observe the live demo here: os.karamoff.dev/vue-tinybox

Basic usage

<Tinybox v-model="index" :images="images" loop no-thumbs />

Install

Browsers

  1. Include the link to Tinybox in <head> alongside Vue.js:

    <script src="https://cdn.jsdelivr.net/npm/vue"></script> <script src="https://cdn.jsdelivr.net/npm/vue-tinybox"></script>
  2. Tinybox will auto-install upon detecting the global Vue instance. You can use it right away.

Node environment

  1. Install the Tinybox package:

    npm install vue-tinybox # or yarn add vue-tinybox
  2. Register it as you usually would:

    import Tinybox from "vue-tinybox"; // or const Tinybox = require('vue-tinybox'); Vue.component('Tinybox', Tinybox); //or Vue.use(Tinybox); //or new Vue({ components: { Tinybox }, // ... });

API

Image object

An Image object is an object with following fields:

Field nameTypeDescription
srcStringImage URL
thumbnailString(optional) Thumbnail URL. If omitted, the image URL will be used
captionString(optional) Caption text to be overlayed on the image
altString(optional) Alt text. If omitted, the caption will be used

Props

Prop nameTypeDefaultDescription
imagesArray[]List of either image URLs or Image objects
loopBooleanfalseIndicates whether the images should loop
no-thumbsBooleanfalseWhen enabled, the thumbnails are hidden

v-model

You can use v-model on a Number variable, which will hold the index of the image currently open. If no image is open (i.e. Tinybox is closed), the value becomes null.

Instead of v-model you can use the index prop and change event:

<Tinybox v-model="index" :images="images" /> <!-- is equivalent to --> <Tinybox :images="images" :index="index" @change="(i) => {index = i}" />

Events

Event namePayloadDescription
changeindex of the image changed toIs emitted on any image change (thumbnail navigation, prev/next, close)
prev/nextindex of the image changed toIs emitted specifically when the user clicks "Prev"/"Next" or presses Left/Right arrow key
closeindex of the image Tinybox was closed atIs emitted specifically when the user clicks "Close" or presses the Esc key

Events can come in handy for business logic cases:

<Tinybox :images="images" v-model="index" @change="onChange" @prev="onPrevious" @next="onNext" @close="onClose" /> export default { // ... methods: { onChange(index) { console.log("User navigated to the photo: ", index); }, onPrevious(index) { console.log("User clicked 'previous' to switch to: ", index); }, onNext(index) { console.log("User clicked 'previous' to switch to: ", index); }, onClose(index) { console.log("User closed TinyBox on this photo: ", index); } }, }

Browser support

ChromeFirefoxSafariMS EdgeInternet Explorer
21+28+7+16+11

Keywords

FAQs

Last updated on 12 Jul 2020

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket
Socket
support@socket.devSocket SOC 2 Logo

Product

  • Package Issues
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc