A third version of the lightweight lightbox inspired component for Vue.js with local video support and more features coming. If you're interested, see demo.
Supported formats and services
All image formats that can be displayed in browser
Local video files with following extensions .mp4, .ogg, .webm, .mov, .flv, .wmv, .mkv
YouTube, Vimeo and Twitch embed videos with autoplay
Then in the template you use a silent-box component to display the gallery.
<silent-box :gallery="images"><!-- your additional content --></silent-box>
Or you can show a single image by just renaming the property.
<silent-box :image="images[0]"><!-- your additional content --></silent-box>
Custom activators
In case you don't like the default image previews that SilentBox provides, you can
set your own activators - text, button or even a video! SilentBox provides a named slot for this - silentbox-item. The slot provides variable called silentboxItem which
provides you access to all properties you set on image object.
<!--
In this example only alt text is displayed as an activator.
--><silent-box:gallery="images"><h2class="tw-text-3xl tw-font-bold tw-mb-2">Gallery</h2><pclass="tw-font-light tw-mb-3">
Items could be merged into groups that make galleries.
</p><templatev-slot:silentbox-item="{ silentboxItem }"><p>{{ silentboxItem.alt }}</p></template></silent-box>
Plugin options
You can set the following options to the plugin to change the behaviour of the
SilentBox or display additional information.
You can set the following attributes to the image object to change the behaviour
of the SilentBox or display additional information. On the other hand, if you're
lazy, only the src attribute is required.
Attribute
required
type
Description
src
yes
string
media source, it could be an image, video or a YouTube / Vimeo embed link
short description below image (doesn't work below videos yet)
alt
no
string
alt description for images
autoplay
no
bool
to autoplay youtube / Vimeo video
download
no
bool/string
Link to download the file. When set to a boolean value (true/false), the src is used as the download link.
controls
no
bool
does not work for Vimeo, setting false will hide video controls
Gallery element attributes
These attributes can change the gallery element behaviour.
Attribute
required
type
Description
gallery
no
array
list of image objects that will be displayed in the gallery
image
no
object
image object that will be displayed in the gallery
lazy-loading
no
bool
whether images should be lazy loaded
preview-count
no
number
number of images that should be displayed in the gallery
Events
SilentBox also fires several events that can be further used in your Vue.js application. Each event has a payload that contains the
item object which holds information about the currently displayed item.
Event name
When is event fired
silentbox-overlay-opened
when the overlay is opened
silentbox-overlay-hidden
when the overlay is closed (button or ESC key)
silentbox-overlay-next-item-displayed
when the user moves to the next picture (arrow or key)
silentbox-overlay-prev-item-displayed
when the user moves to the previous picture (arrow or key)
Open overlay programatically
SilentBox provides two options how to open the overlay programatically. If you need to open an existing gallery, the best option
is to use the ref attribute and then call the method openOverlay on the $refs object in your method. See example:
and then the method openOverlay can be called from your method:
// ...methods: {
// the index parameter is optional, however it should be set if you're opening// the overlay on different position than the beginning of the gallery
openOverlayProgramaticallyWithContext (item, index = 0) {
this.$refs.silentbox.openOverlay(item, index)
}
}
// ...
However, in case you just want to open an item without any context, it might be a better choice to call the global open
method that SilentBox provides.
Vue3 always transforms <img /> width and height to numbers, thus properties thumbnailWidth and thumbnailHeight should always be a number
event fired when user navigates to previous image was renamed to silentbox-overlay-prev-item-displayed from silentbox-overlay-previous-item-displayed
Upgrading from 0.1?
Version 2 brought many breaking changes. There are no more two separate components
to display a single image or gallery. So, change all your silentbox-group and silentbox-single components to silent-box.
The source of images must be an array of objects or a single object with previously mentioned attributes.
Contributions
All contributions are welcomed, however give me some time to review your requests. Please, use emoji in your commits, so it is easier to identify what your commits do.
There are several emoji guides on the internet. Please stick with mine which is inspired by Atom contributing guidelines, see emoji in commits.
The npm package vue-silentbox receives a total of 1,512 weekly downloads. As such, vue-silentbox popularity was classified as popular.
We found that vue-silentbox demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 1 open source maintainer collaborating on the project.
Package last updated on 12 Jan 2023
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.