Unheap

A tidy repository of javascript plugins

  • Vanilla
X

Snazzy Info Window: Customizable info windows using the Google Maps JavaScript API

Snazzy Info Window is a plugin for customizable info windows using the Google Maps JavaScript API. This plugin was built to allow for easier styling of info windows using the Google Maps JavaScript API. It supports dynamic content, responsive sizing, and custom styling using SCSS. You can also have it show up above, below, right or left of the marker. If you are building custom maps for your site, this plugin is a must.

  • Vanilla
X

Reactive Listener: Affect change over an element from a distance

Another great gem from Zurb. What if you wanted to make a user aware of a piece of content long before their mouse directly hovers over its element? Perhaps it was a piece of content that a user would have never otherwise hovered over (thus rendering all that CSS you styled on the :hover of your class forever invisible to your user). What is a designer/developer to do?

Reactive Listener allows us to affect change over an element from a distance that otherwise would not be possible. In this example, we detect the proximity of the mouse pointer to an element which reacts more vibrantly the closer to user’s mouse comes to it. Here we use this effect to draw attention to some additional information contained in a hidden div, but many more practical uses abound, like drawing attention to a share button, or CTA.

The reactive listener is currently a prototype where the only real thing it knows how to watch for is mouse position, but the core concept is extensible, and we can imagine reacting to things like scroll, rotation, GPS, and a variety of other data sources.

  • Vanilla
X

flatpickr: lightweight datetimepicker with no dependencies

Appalled at the fact that you have to load 300kb of jquery and jquery UI or hook up bootstrap just to use a calendar? This is a vanillaJS [date][time]picker that’s powerful, easy to use, and looks good out of the box.
Almost every large SPA or project involves date and time input. There are limited options, however, if you also prefer to keep your projects lean and consequently stay away from heavy frameworks such as jQuery, or even Bootstrap.

Written in vanilla javascript, works with anything, anywhere.

X

GridTab: grid based responsive tabs

Gridtab is a lightweight jquery plugin to create grid based responsive tabs, with separate settings for any responsive breakpoint. It’s always a hard task finding the right plugin to solve a common UI design pattern – Grid based responsive tabs. There are only a very few plugins out there, that are either buggy, rely heavily on DOM manipulation or hardly customisable. GridTab works on CSS flexbox layout and hence it’s lightweight.

X

EmojiOne: The complete open source emoji set.

The web’s first and only complete open source emoji set. It is 100% free and super easy to integrate.

THe goal is to standardize emoji on the web through the use of common :shortnames:.

When storing user inputted text in your database, say from a guestbook or through a CMS admin, you should always make sure you are storing text containing only :shortnames: and not Unicode emoji characters or emoji images. Then, when you are displaying that content to the user, you can convert it server-side with the PHP toolkit provided, or client-side using the Javascript toolkit which is also provided. Demos of this process using Javascript, jQuery, and PHP are included in the repo.

  • Vanilla
X

iCheck: Super customized checkboxes and radio buttons.

iCheck works with checkboxes and radio buttons like a constructor. It wraps each input with a div, which may be customized by you or using one of the available skins. You may also place inside that div some HTML code or text using insert option.

iCheck is created to avoid routine of reinventing the wheel when working with checkboxes and radio buttons. It provides an expected identical result for the huge number of browsers, devices and their versions. Callbacks and methods can be used to easily handle and make changes at customized inputs.

There are some CSS3 ways available to style checkboxes and radio buttons, like this one. You have to know about some of the disadvantages of similar methods:

  • inputs are keyboard inaccessible, since display: none or visibility: hidden used to hide them
  • poor browser support
  • multiple bugs on mobile devices
  • tricky, harder to maintain CSS code
  • JavaScript is still needed to fix specific issues
  • While CSS3 method is quite limited solution, iCheck is made to be an everyday replacement covering most of the tasks.

 

Features

  • Identical inputs across different browsers and devices — both desktop and mobile
  • Touch devices support — iOS, Android, BlackBerry, Windows Phone, Amazon Kindle
  • Keyboard accessible inputs — Tab, Spacebar, Arrow up/down and other shortcuts
  • Customization freedom — use any HTML and CSS to style inputs (try 6 Retina-ready skins)
  • jQuery and Zepto JavaScript libraries support from single file
  • Screenreader accessible inputs — ARIA attributes for VoiceOver and others
  • Lightweight size — 1 kb gzipped
  • 32 options to customize checkboxes and radio buttons
  • 11 callbacks to handle changes
  • 9 methods to make changes programmatically
  • Saves changes to original inputs, works carefully with any selectors

 

  • Vanilla
X

Progressively: Load images progressively with pure javascript.

Looking for a way to asynchronously load images when users browse to the page without jQuery?

Progressively is a javascript library for loading images progressively. It’s written entirely in JavaScript so it doesn’t depend on 3rd-party libraries like jQuery. It’s super small, < 1.2kB when minified & gzipped! It will load images on when user browse to the page, saving bandwidth & server requests. It is compatible with all modern browsers.

X

Offcanvas: ARIA Accessible Offcanvas jQuery plugin

If you are looking for a navigation drawer that is accessible to those with disabilities then look no further. Offcanvas jQuery plugin & CSS3 based off-canvas navigation that uses JavaScript to dynamically add WAI-ARIA roles to make your site navigation more accessible. Here are some of the many features in this well crafted plugin:

  • ARIA Design pattern for Dialogs
  • The tab key loops through all of the keyboard focusable items within the offcanvas.
  • You can close it using Esc.
  • Buttons Open/Close with Space & Enter
  • BEM Syntax
  • Package managers Bower & NPM

  • Vanilla
X

MenuSpy: Highlight navigation item based on section in view

A JavaScript library to make navigation menus highlight the item based on currently in view section.

It could not be easier to use, just include the script in your page and initialize it. The items in your menu will get active class when the section referenced in your anchor is visible. It’s got a really small footprint and uses requestAnimationFrame to monitor scroll position.

X

Muuri: Responsive, sortable grid layouts

Muuri creates responsive, sortable, filterable and draggable grid layouts. They manage to pack a lot of features into a small package. Muuri is basically Packery + Masonry + Isotope and jQuery UI sortable.

Muuri’s layout system allows positioning the grid items within the container in pretty much any way imaginable. The default “First Fit” bin packing layout algorithm generates similar layouts as Packery and Masonry. The implementation is heavily based on the “maxrects” approach as described by Jukka Jylänki in his research A Thousand Ways to Pack the Bin. However, you can also provide your own layout algorithm to position the items in any way you want.

Muuri uses Velocity for animating the grid items (positioining/showing/hiding) and Hammer.js for handling the dragging. Hammer.js is an optional dependency that is only required if dragging is enabled, but Velocity is a hard dependency.

And if you’re wondering about the name of the library “muuri” is Finnish meaning a wall.

A word of warning. Muuri is currently under active development and might be still a bit rough on the edges so production use is not recommended just yet. But when did that ever stop you ;)

  • Vanilla
  • Video
X

Notyf: Simple notification plugin

Notyf is probably the quickest way to add notifications to your website or app. This plugin allows to show non-blocking, stacked notifications in a pretty good looking way.

Notyf is a dead simple, responsive, vanilla javascript plugin for showing notifications on site. No jQuery required.

  • Vanilla
X

Reframe.js: Makes unresponsive elements responsive.

Looking for a quick way to make that Youtube video responsive? Reframe.js is your answer.

Brought to you by the engineering team at Dollar Shave Club, Reframe.js removes a specified element’s height & width attributes & then wraps that element in responsive div that is an intrinsic ratio of the original element. This plugin is meant for embedded content like iframes or videos.

Reframe.js is inspired by FitVids & does what FitVids does but without the need for jQuery. This makes the plugin highly valuable when including it in a module that has to be very small & with minimal dependencies.

This plugin is small – ~1.3kb unminified & is meant to do 1 thing – wrap elements that aren’t responsive & make them responsive. ?

  • Vanilla
X

Gridder: A thumbnail grid with expanding preview

A jQuery plugin that displays a thumbnail grid expanding preview similar to the effect seen on Google Images.

Why was this plugin built?

We have all searched images on Google, so you probably noticed the interesting expanding preview when you click on a thumbnail. It’s a very nice effect and practical, allowing you quickly see more details without having to reload a new page. This plugin allows you to recreate a similar effect on a thumbnail grid. The idea is to open a preview when clicking on a thumbnail and to show a larger image and some other content like a title, a description and a link.

X

Flexdatalist: jQuery autocomplete with support for datalists

Flexdatalist is (another) jQuery autocomplete plugin with support for datalists.

After searching and not finding a standalone, lite (not dependent on jQueryUI), autocomplete that did everything I needed for a project, I created Flexdatalist.

Along with many other cool features, Flexdatalist allows you to style the list of suggested data/values, which is not possible at the moment with browser’s native .

Hope it’s useful to you as it is to me. Enjoy ;)