A jQuery Masonry alternative with CSS-driven configuration.
Filed under user interfaceShow All
Salvattore is a library agnostic JS script that will help you organize your HTML elements according to the number of columns you specify, like jQuery Masonry.
- No requirements: Salvattore is a standalone script, it will work right away after being referenced in your HTML page.
- Extremely lightweight: about 2.7KB (minified and gzipped.)
- CSS-driven configuration: the number of columns is defined in CSS and the styling is left to the user.
- Media queries ready: the same parameters can be used inside media queries for better results on different devices.
- Wide browser support: modern browsers and IE9+
- Balanced columns: to keep all columns about the same height.
To find out more and see it in action, please visit our website.
You can also follow us on Twitter.
Methods can be called on the globally exposed
salvattoreobject for advanced usage.
var grid = document.querySelector('#grid'); var item = document.createElement('article'); salvattore.appendElements(grid, [item]); item.outerHTML = 'I’ve been appended!';
Method Argument Description appendElements grid : DOM object, elements: Array of DOM objects Adds elements to the end of a grid. prependElements grid : DOM object, elements: Array of DOM objects Adds elements to a beginning of a grid. Adds multiple elements one by one before each other, so note the order. registerGrid grid : DOM object Adds a new grid to salvattore. Which is initialized automatically then. recreateColumns grid : DOM object Removes all the columns from the grid, and adds them again. rescanMediaQueries Checks stylesheets and selectors for media queries again. Recreates the columns for all grids afterwards.
How to contribute
We use Gulp to add polyfills and minify the script in the
dist/folder. To make changes to the script itself, please edit
src/salvattore.jsand send us a pull request.
Share feedback & ideas
You can even contribute by using Salvattore and sharing bugs, ideas or solutions on the Issues page. Protip: if you're posting a bug please share all the relevant data and ideally a live URL so that we can debug (yeah we do that!)