Menu Search
Jump to the content X X
Smashing Conf San Francisco

We use ad-blockers as well, you know. We gotta keep those servers running though. Did you know that we publish useful books and run friendly conferences — crafted for pros like yourself? E.g. upcoming SmashingConf San Francisco, dedicated to smart front-end techniques and design patterns.

Useful JavaScript Libraries and jQuery Plugins

If you have a problem and need a solution for it, chances are high that a JavaScript library or jQuery plugin exists that was created to solve this very problem. Such libraries are always great to have in your bookmarks or in your local folders, especially if you aren’t a big fan of cross-browser debugging.

A JavaScript library isn’t always the best solution: it should never be a single point of failure for any website, and neither should a website rely on JavaScript making the content potentially inaccessible. Progressive enhancement is our friend; sometimes JavaScript won’t load properly, or won’t be supported — e.g. users of mobile devices might run into latency issues1 or performance issues2 with some JavaScript-libraries. Often large all-around JavaScript libraries such as jQuery might be an overkill, while tiny JavaScript micro-libraries could serve as good, “light” alternatives for a particular problem. We’ll present some of them today.

In this two-part overview, we feature some of the most useful JavaScript and jQuery3 libraries which could be just the right solutions for your common problems. You might know some of these libraries, but you probably don’t know all of them. In either case, we hope that this overview will help you find or rediscover some tools that you could use in your next projects.

Due to the length of this post, we’ve split it into two parts for your convenience:

Quick Overview: Link

Below you’ll find a brief overview and links to the libraries and tools featured in this post. They are supposed to help you find just the right tool quickly without browsing the whole page.

Web Forms and Input Validation Link

Select2 jQuery Plugin50 Link

A jQuery-plugin for replacement and enhancement of <select>-boxes. The plugin supports search, remote data sets, and infinite scrolling of results. Users can just start typing what they’re looking for. Non-matching entries are removed from the view, and options can be selected using “Enter” or a mouse click. The plug-in works with standard select input fields as well as with multiple selects and optgroup. It also has support for selected, disabled and default text (HTML5’s placeholder attribute). The plug-in is based on Chosen51, an alternative solution which is currently available in jQuery, MooTools and Prototype flavors and as a Drupal 7 module.

JavaScript Library52
jQueryCoreUISelect Link

Another cross-browser solution to enhance the <select> element with jQuery and CSS. Requires jQuery 1.6 or higher. It provides full customization, support of optiongroup, automatic calculations, keyboard support, callback functions and is compatible with mobile devices.

jQueryCoreUISelect
Sisyphus.js53 Link

This script allows Gmail-like auto-saving of drafts. It stores form data to the HTML5 local storage of the user’s browser and restores it when the user reloads or reopens the page or opens the page in a new tab. The data is cleared from local storage when the user submits or resets the form.

Sisyphus.js54
jQuery Credit Card Validator Link

This library attaches to the input event (with a fallback to the keyup event) and so every time a number in the input field changes, it calls a validation function. When a card is recognized, the credit card type is highlighted; and if the credit card number is correct, it is highlighted with a green checkmark as well. The plugin supports American Express, Diners Club, Discover Card, JCB, Laser, Maestro, MasterCard, Visa and Visa Electron. You might want to consider credit cards JavaScript validator55 and the Smart Validate Credit Card Validation plugin56.

JavaScript Library
TextExt57 Link

This library allows you to transform HTML text into input fields, without resorting to code inflation. The plugin inserts aesthetic as well as practical input possibilities, e.g. Tags, Ajax, Focus and others.

TextExt58
Avgrund: Better Modal Boxes59 Link

A jQuery plugin for displaying a depth illusion between popup and page. The original script by Hakim El Hattab60 uses CSS transitions and transformations, and the plugin gracefully degrades in those that do not support transitions and transforms. MIT licensed.

Avgrund: Better Modal Boxes61
VisualSearch.js62 Link

This library enhances ordinary search boxes with the ability to autocomplete faceted search queries. You can specify the facets for completion, along with the completable values for any facet. You can retrieve the search query as a structured object, so you don’t have to parse the query string yourself.

Ideal Forms Framework Link

A very comprehensive jQuery plugin for building and validating responsive HTML5 forms. It provides keyboard support, customizable input types, “on the spot” validation, localization and HTML5 placeholder polyfill. Supported in IE8+, Chrome, Firefox, Opera, iOS5+, Android 4.0+.

Ideal Forms Framework
Mailcheck63 Link

With this JavaScript spell-checker you can suggests another domain when the user misspells it in an email address. Mailcheck helps effectively reducing sign up typos. While it already includes some  domains, you can easily supply your own.

Mailcheck64
Validate.js65 Link

A lightweight JavaScript form validation library. You can validate form fields using over a dozen rules and set custom messages; the library doesn’t have any dependencies and you can define your own validation callbacks for custom rules. Works in all major browsers (even IE6!).

JavaScript Library66
jQuery File Upload67 Link

File Upload widget with multiple file selection, drag&drop-support, progress bars and preview images. It supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

JavaScript Library68
Grumble.js69 Link

This jQuery plugin provides tool tips without being limited to cardinal directions. A grumble can be rotated around a given element at any angle, all 360 degrees and at any distance — with CSS. Works in Internet Explorer 6+ and modern browsers. Also, check Tipped70, a larger library of various designs and implementations of tooltips with an extensive API.

Grumble.js71
Dialogs for Twitter Bootstrap72 Link

A small JavaScript library which allows you to create dialog boxes using Twitter’s Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers. You might want to check out the Date Range Picket for Bootstrap73 as well as a growing library of HTML Snippets for Twitter Bootstrap74.

JavaScript Library75
ddSlick76 Link

Prashant Chaudhary has realeased a free lightweight jQuery plugin that lets you create a custom drop-down that can include images, a short description, along with your usual text and value. It also supports callback functions on selection. You could use CSS3 Drop-Downs77 as well.

ddSlick78
noty79 Link

This jQuery plugin makes it easy to create alert, success, error, warning, information and confirmation messages. The notification can be positioned anywhere on the page and you can customize the text, animation, speed and buttons easily.

noty80
jQuery.complexify.js81 Link

Complexify helps you to accurately gauge the quality of a user’s password to give them visual feedback, and to enforce a minimum level of security.

JavaScript Library82
Numberfy Link

With Numberfy you can integrate native support for line numbers in your website’s text areas. On every key press in the text area, the text area’s current value is split into lines. This script will not work in IE due to a bug in the text-wrap properties.

FormAccordion Link

A jQuery plugin for easily hiding and revealing related form fields conditionally.

jQuery.superLabels83 Link

You can use the library to give your forms a fade-out label. This implementation makes the label slide across the field when gaining focus and fade out when a value is entered. A fallback is provided as well.

cryptico84 Link

An encryption system utilizing RSA and AES for JavaScript.

Web Typography Libraries and Plugins Link

Baseline.js Link

A jQuery plugin for restoring baselines thrown off by odd image sizes. To use it, you just call the plugin passing the height of your baseline as a variable. You can also define multiple baselines for different responsive breakpoints.

Baseline.js
FTColumnflow85 Link

Developed by the development team of Financial Times, this library is essentially a polyfill that fixes the inadequacies of CSS column layouts. With the library, you can provide configurable column widths, gutters and margins, define elements spanning columns, keep-with-next to avoid headings at the bottom of a column, group columns into pages and standardize line height to align text baseline to a grid.

FTcolumnflow86
Responsive Measure jQuery Plugin87 Link

A simple script that allows you to pass in a selector (ideally the container where your primary content will go), which generates the ideal font size needed to produce the ideal measure for your text. The script also  generates a resolution-independent font-scale based on the ideal font-size. Created by Josh Brewer.

Baseline.js88
The Widow Tamer89 Link

The Widow Tamer is a small JavaScript library that automatically “fixes” typographic widows. It’s designed to work with responsive sites, fixing widows as it finds them on resize or orientation change.

JavaScript Library90
Fluid Line-Height91 Link

With his article, Tim Brown inspired developers to release tools that adjust line-height for optimum readability on responsive websites. The so-called molten-leading binds the height of the line to an element’s minimum and maximum width. jQuery-minLineHeight is a jQuery plugin that works similarly with minimum and maximum width association.

Nice Web Type92
FitText.js93 Link

This jQuery plugin helps you create scalable headlines that fill the width of a parent element in your fluid or responsive layouts. You might want to check out Lettering.js94 as well to get a complete down-to-the-letter control of letters in your projects.

FitText.js95
Kerning.js9624 Link

This library lets you kern, style, transform, and scale your Web type with CSS rules, automatically. You can adjust pairings, introduce font conditionals and augment properties.

Kerning.js97
SlabText.js Link

The script splits headlines into rows before resizing each row to fill the available horizontal space. The ideal number of characters to set on each row is calculated by dividing the available width by the pixel font-size – the script then uses this ideal character count to split the headline into word combinations that are displayed as separate rows of text.

Nice Web Type

Little Time-Savers Link

money.js: Open-Source Exchange Rates and Currency Conversion98 Link

Joss Crowcroft has created an Open Source Exchange Rates API, which provides up-to-date, flexible and portable currency-conversion data that can be used in any application, framework or language (not just JavaScript). It has no access fees, no rate limits, no nasty XML: just free, hourly updated exchange rates in JSON. Joss also built money.js, a JavaScript currency conversion library that can be easily integrated in any website. A demo playground and detailed documentation are provided on the website, and the source code is available on GitHub.

JavaScript Library99
Accounting.js: Easier Number and Currency Formatting100 Link

This simple, tiny JavaScript library will solve your currency and numbers-related formatting hassles, and it even includes optional Excel-style column rendering to line up symbols and decimals. It will make all of your numbers and currencies look much more uniform and professional.

JavaScript Library101
Moment.js: Format Dates And Times102 Link

Moment.js is a lightweight JavaScript library which lets you format, parse and manipulate dates. You can add or subtract dates from one another, as well as parse things like Unix Timestamps. Display options include formatted dates, time from now, difference, time from another moment, native date and support for leap years.

JavaScript Library103
Smart Time Ago104 Link

This little jQuery library provides you with an intelligent way of updating relative timestamps in your documents. Smart Time Ago checks and updates every 60 seconds the relative time, within a scope which you specify at the start. It checks the newest time in your scope and tunes the checking time interval to a proper value. The tool can be used as a jQuery plugin, or – if using node – can be installed from npm.

Smart Time Ago105
sortByTimeAgo.js106 Link

A little JavaScript library that takes an array of objects with TimeAgo properties and sorts them from newest to oldest.

Piecon107 Link

Piecon is a tiny JavaScript library for dynamically generating progress pie charts in your favicons. It has been tested to work in Chrome 15+, Firefox 9+ and Opera 11+.

Piecon108
Notificon: Favicon Notifications and Alerts109 Link

Matt Williams’ Notificon is a JavaScript library for creating favicon alerts and notifications. Instead of having to create a number of favicons and serving them to the client, you can specify a label and a favicon (the default being the current favicon), and it will generate a favicon notification for you. The script currently works with Chrome 6+, Firefox 2+ and Opera, but it’s a nice little add-on for browsers that support it.

jQuery Stick ‘em: Make Content Sticky on Scroll, to a Point110 Link

A problem: some of the images in the layout are very tall, so by the time you scrolled down to the bottom of the images, you would have to scroll back up just to read the description of the images or navigation items. The solution: make the content sticky as you are scrolling. This library solves this problem.

jQuery Stick 'em111
Countdown.js112 Link

Human descriptions for a span of time are often fuzzier than a computer naturally computes. For example, how long does “in 1 month” mean? We casually talk about four weeks, but in fact there is only one month in a year which is four weeks long. Countdown.js tackles this problem by producing an accurate and intuitive description of timespans which are consistent as time goes on.

geolib113 Link

A small library to provide some basic geo functions like distance calculation, conversion of decimal coordinates to sexagesimal and vice versa.

Geolib.js114
Cookies.js115 Link

Cookies.js is a small client-side JavaScript library that makes managing cookies easy. It caches cookie values, making sequential reads faster, supports AMD / CommonJS loaders and is supported in Chrome, Firefox 3+, Safari 4+, Opera 10+ and Internet Explorer 6+.

firstImpression.js116 Link

firstImpression.js is a micro-library (1 Kb minified) that answers the simple question, “Has this user visited this site before?” The detection doesn’t require much logic, so the majority of the code is just a plain JavaScript port of the popular jquery.cookie117 plugin.

Chirp.js: Tweets on Your Website118 Link

A lightweight templating JavaScript library that enables you to display tweets on your website. Client-side caching is available; and you can set if you’d like to show retweets and replies, too.

Chirp.js: Tweets on your website119
simpleWeather jQuery Plugin120 Link

A simple jQuery plugin to display the weather information for any location. The data is pulled from the public Yahoo! Weather feed via the YQL API.

zip.js12130 Link

A JavaScript library to zip and unzip files. zip.js provides a low-level API for writing and reading large zip files (up to 4GB with File Writer API). Works with Chrome, Firefox, Safari 6 and (unfortunately) Internet Explorer 10+. With Safari 5 and IE9, you must disable Web Workers and use a Typed Array polyfill122.

string.js123 Link

A library that provides extra String methods to normalize text strings and manipulate them.

Images, Maps, Graphs and Visualization Libraries Link

jVectorMap124 Link

jVectorMap is a jQuery plugin that renders SVG and VML vector maps in browsers ranging from the ancient Internet Explorer 6 to modern browsers. jVectorMap uses JavaScript, CSS, HTML, SVG or VML, and no Flash or any other proprietary browser plugin is required.

JavaScript Library125
Subway Map Visualization jQuery Plugin126 Link

If you often deal with government projects, university departments or any websites of sophisticated organizations, every now and again you’ll be asked to design a nice visualization that would explain the various divisions, structures and internal hierarchy of those organizations. Where do you start? Well, creating a Subway Map-alike visualization is an option worth considering.

JavaScript Library127
GMaps.js128 Link

This library allows you to easily use Google Maps in your projects. Extensive documentation or large amount of code aren’t required anymore. You might want to check out Gmap3 jQuery plugin129 as well.

GMaps.js130
Leaflet: Open-Source Interactive Maps With JavaScript Link

A library for creating tile-based interactive maps for desktop and mobile browsers. An easy-to-use API is available, and the tool emphasizes usability, performance, flexibility and excellent browser support. The library offers a variety of map layers, including tiles, markers, pop-ups, image overlays and GeoJSON. It supports panning on both mobile and desktop browsers, double-tap zoom on mobile browsers (plus multi-touch zoom on iOS) and more. On iOS, hardware acceleration is enabled, and Leaflet has a modular structure that lets you reduce the size of the library to make it even faster. The project is open source and available for further development and forking on GitHub.

JavaScript Library
SVGeezy: a JavaScript plugin for SVG fallbacks131 Link

A JavaScript library which detects SVG images on your website and automatically “looks” for a standard image fallback for those older, less capable browsers. Created by Ben Howdle and Jack Smith.

SVGeezy - a JS plugin for SVG fallbacks132
Retina.js133 Link

A script that checks each image on your website, when it’s loaded by a user, and replaces low-resolution image with their high-resolution equivalent, if available. It’s assumed that you use Apple’s high resolution modifier (@2x) to designate high resolution versions of images.

JustGage134 Link

A JavaScript library for generating and animating gauges. Based on Raphaël library for vector drawing, it’s resolution-independent and works in all modern browsers.

JustGage135
arbor.js136 Link

A graph visualization library for building trees with connected nodes of data. Arbor.js is essentially a layout algorithm with abstractions for graph organization and screen refresh handling.

Arbor.js137

Timeline: Generate Timelines To Visualize Data138 Link

This library is supposed to pull in media from different sources. It has built-in support for pulling in data from Twitter, YouTube, Flickr, Vimeo, Google Maps and SoundCloud—and more will be included in the near future. You can easily fill in data from a Google spreadsheet, or use a more detailed method such as JSON to create your time-line. You can also host it on your website by using the Timeline jQuery plugin. The library is available on GitHub139, or as WordPress plugin140.

JavaScript Library141
Unicon142 Link

Unicon is a Grunt.js task that makes it easy to manage icons and background images for all devices, preferring HD (retina) SVG icons but also provides fallback support for standard definition browsers, and old browsers alike. From a CSS perspective, it’s easy to use, as it generates a class referencing each icon, and doesn’t use CSS sprites.

Foresight.js143 Link

This device recognition library, gives websites the ability to gauge the users device capabilities before the image is requested from the server. Judging display resolution and network speed, it customizes the img src attribute to optimize the websites image resolution to the individual users hardware.

A Magnifying Glass With CSS3 And jQuery144 Link

This technique achieves an aesthetically pleasing visual effect. The CSS3 box-shadow and border-radius properties are used to create the magnifying glass itself, while jQuery is used to detect the cursor coordinates and mouse movements and present the larger image. And when your cursor moves off the image, the magnifying glass elegantly fades away. The included tutorial makes it very easy to learn and understand how to achieve this effect. The technique includes both a small and a large image in the markup, so optimizing the technique to load a larger image on demand might be a good idea.

JavaScript Library145
Rickshaw146 Link

This free and open source JavaScript toolkit provides the elements which you need to create interactive graphs, such as renderers, legends, hovers and range selectors. Rickshaw is based on D3, graphs are drawn with standard SVG and styled with CSS.

Rickshaw147
Flot: Plotting for jQuery148 Link

A JavaScript plotting library for jQuery, supports Internet Explorer 6+, Chrome, Firefox 2+, Safari 3+ and Opera 9.5+. You can use different types of graphs, use multiple axes, annotate a chart, update graphs with AJAX, provide support for zooming and interaction with the data points, use stacked charts, theresholding the data, apply pie charts and plot prerendered images.

Flot.js149
Chronoline.js150 Link

Chronoline.js is a library that allows you to create a chronology time-line out of events on a horizontal timescale. From a list of dates and events, it can generate a graphical representation of schedules, historical events, deadlines, and more.

JavaScript Library151
Cubism152 Link

This D3 plugin helps you to visualize time series and construct better real-time dashboards, pulling data from Graphite, Cube and other sources. Cubism scales and reduces server load by pulling only the most recent values. Cubism can scale easily to hundreds of metrics updating every ten seconds. Cubism’s horizon charts allow you to see many more metrics at-a-glance space than standard area charts.

Cubism153
Envision.js154 Link

An alternative library for creating fast, dynamic and interactive HTML5 visualizations.

JavaScript Library155
Data Visualization JavaScript Libraries156 Link

A growing, curated collection of data visualization JavaScript libraries that make it easier to create meaningful and beautiful data visualizations. If you haven’t one a useful data visualization library in the list above, you’ll definitely find the right one in this overview.

Data Visualization JavaScript Libraries157

Last Click Link

jQuery Fundamentals158 Link

This HTML book is designed to get you comfortable working through common problems you’ll be called upon to solve using jQuery. You can read the content and try the various interactive examples. Each chapter will cover a concept and give you a chance to try example code related to the concept. Written by Rebecca Murphey and recently updated by her and the rest of the gang at Bocoup.

JavaScript Library159
JavaScript Patterns Collection160 Link

A JavaScript pattern and anti-pattern collection that covers function patterns, jQuery patterns, jQuery plugin patterns, design patterns, general patterns, literals and constructor patterns, object creation patterns, code reuse patterns, DOM and browser patterns.

JavaScript Library161
JavaScript Garden162 Link

A growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavors into the depths of the language.

JavaScript Library163

Useful JavaScript and jQuery Libraries: Two Parts Link

Due to the length of this resource, it was split into two parts:

Footnotes Link

  1. 1 http://www.igvita.com/2012/07/19/latency-the-new-web-performance-bottleneck/
  2. 2 http://www.slideshare.net/stoyan/javascript-performance-patterns
  3. 3 https://www.smashingmagazine.com/2012/05/50-jquery-function-demos-for-aspiring-web-developers/
  4. 4 https://www.smashingmagazine.com/useful-javascript-libraries-jquery-plugins-part-2/
  5. 5 https://www.smashingmagazine.com/2011/12/05/sisyphus-js-client-side-drafts-and-more/
  6. 6 https://github.com/blueimp/jQuery-File-Upload
  7. 7 https://github.com/23/resumable.js
  8. 8 http://ivaynberg.github.com/select2/
  9. 9 http://labs.voronianski.com/jquery.avgrund.js/
  10. 10 https://github.com/remybach/jQuery.superLabels
  11. 11 http://designwithpc.com/Plugins/ddSlick
  12. 12 http://projects.nickstakenburg.com/tipped
  13. 13 http://textextjs.com/
  14. 14 http://rickharrison.github.com/validate.js/
  15. 15 http://www.egrappler.com/jquery-credit-card-validation-plugin-smart-validate/
  16. 16 https://github.com/Kicksend/mailcheck
  17. 17 https://github.com/danpalmer/jquery.complexify.js
  18. 18 https://github.com/ftlabs/ftcolumnflow
  19. 19 http://jbrewer.github.com/Responsive-Measure/
  20. 20 http://artequalswork.com/posts/on-widows.php
  21. 21 http://nicewebtype.com/notes/2012/02/03/molten-leading-or-fluid-line-height/
  22. 22 http://fittextjs.com/
  23. 23 http://letteringjs.com/
  24. 24 http://kerningjs.com/
  25. 25 http://josscrowcroft.github.com/money.js/
  26. 26 http://momentjs.com/
  27. 27 http://pragmaticly.github.com/smart-time-ago/
  28. 28 http://josscrowcroft.github.com/accounting.js/
  29. 29 https://github.com/ScottHamper/Cookies
  30. 30 http://gildas-lormeau.github.com/zip.js/
  31. 31 http://stringjs.com/
  32. 32 http://countdownjs.org/
  33. 33 http://viget.com/inspire/jquery-stick-em
  34. 34 http://hpneo.github.com/gmaps/
  35. 35 http://widgets.better2web.com/loader/
  36. 36 http://lipka.github.com/piecon/
  37. 37 https://github.com/makeable/Notificon
  38. 38 http://jvectormap.com/
  39. 39 http://www.kalyani.com/2010/10/subway-map-visualization-jquery-plugin/
  40. 40 http://hpneo.github.com/gmaps/
  41. 41 http://twostepmedia.co.uk/svgeezy/
  42. 42 http://www.justgage.com/
  43. 43 http://arborjs.org/
  44. 44 http://timeline.verite.co/
  45. 45 http://retinajs.com/
  46. 46 http://thecodeplayer.com/walkthrough/magnifying-glass-for-images-using-jquery-and-css3
  47. 47 http://code.shutterstock.com/rickshaw/
  48. 48 http://www.flotcharts.org/
  49. 49 http://square.github.com/cubism/
  50. 50 http://ivaynberg.github.com/select2/
  51. 51 https://github.com/harvesthq/chosen/
  52. 52 http://ivaynberg.github.com/select2/
  53. 53 https://www.smashingmagazine.com/2011/12/05/sisyphus-js-client-side-drafts-and-more/
  54. 54 https://www.smashingmagazine.com/2011/12/05/sisyphus-js-client-side-drafts-and-more/
  55. 55 http://davidwalsh.name/validate-credit-cards
  56. 56 http://www.egrappler.com/jquery-credit-card-validation-plugin-smart-validate/
  57. 57 http://textextjs.com/
  58. 58 http://textextjs.com/
  59. 59 http://labs.voronianski.com/jquery.avgrund.js/
  60. 60 https://github.com/hakimel/avgrund/
  61. 61 http://labs.voronianski.com/jquery.avgrund.js/
  62. 62 http://documentcloud.github.com/visualsearch/
  63. 63 https://github.com/Kicksend/mailcheck
  64. 64 https://github.com/Kicksend/mailcheck
  65. 65 http://rickharrison.github.com/validate.js/
  66. 66 http://rickharrison.github.com/validate.js/
  67. 67 https://github.com/blueimp/jQuery-File-Upload
  68. 68 https://github.com/blueimp/jQuery-File-Upload
  69. 69 http://jamescryer.github.com/grumble.js/
  70. 70 http://projects.nickstakenburg.com/tipped
  71. 71 http://jamescryer.github.com/grumble.js/
  72. 72 http://bootboxjs.com/
  73. 73 http://www.dangrossman.info/2012/08/20/a-date-range-picker-for-twitter-bootstrap/
  74. 74 http://bootsnipp.com/
  75. 75 http://bootboxjs.com/
  76. 76 http://designwithpc.com/Plugins/ddSlick
  77. 77 http://azadcreative.com/2012/01/bulletproof-css3-dropdown-navigation-menu/
  78. 78 http://designwithpc.com/Plugins/ddSlick
  79. 79 http://needim.github.com/noty/
  80. 80 http://needim.github.com/noty/
  81. 81 https://github.com/danpalmer/jquery.complexify.js
  82. 82 https://github.com/danpalmer/jquery.complexify.js
  83. 83 https://github.com/remybach/jQuery.superLabels
  84. 84 https://github.com/wwwtyro/cryptico
  85. 85 https://github.com/ftlabs/ftcolumnflow
  86. 86 https://github.com/ftlabs/ftcolumnflow
  87. 87 http://jbrewer.github.com/Responsive-Measure/
  88. 88 http://jbrewer.github.com/Responsive-Measure/
  89. 89 http://artequalswork.com/posts/on-widows.php
  90. 90 http://artequalswork.com/posts/on-widows.php
  91. 91 http://nicewebtype.com/notes/2012/02/03/molten-leading-or-fluid-line-height/
  92. 92 http://nicewebtype.com/notes/2012/02/03/molten-leading-or-fluid-line-height/
  93. 93 http://fittextjs.com/
  94. 94 http://fittextjs.com/
  95. 95 http://fittextjs.com/
  96. 96 http://kerningjs.com/
  97. 97 http://kerningjs.com/
  98. 98 http://josscrowcroft.github.com/money.js/
  99. 99 http://josscrowcroft.github.com/money.js/
  100. 100 http://josscrowcroft.github.com/accounting.js/
  101. 101 http://josscrowcroft.github.com/accounting.js/
  102. 102 http://momentjs.com/
  103. 103 http://momentjs.com/
  104. 104 http://pragmaticly.github.com/smart-time-ago/
  105. 105 http://pragmaticly.github.com/smart-time-ago/
  106. 106 https://github.com/cjstewart88/sortByTimeAgo
  107. 107 http://lipka.github.com/piecon/
  108. 108 http://lipka.github.com/piecon/
  109. 109 https://github.com/makeable/Notificon
  110. 110 http://viget.com/inspire/jquery-stick-em
  111. 111 http://viget.com/inspire/jquery-stick-em
  112. 112 http://countdownjs.org/
  113. 113 https://github.com/manuelbieh/geolib
  114. 114 https://github.com/manuelbieh/geolib
  115. 115 https://github.com/ScottHamper/Cookies
  116. 116 http://www.ravelrumba.com/blog/firstimpression-js-library-detecting-new-visitors/
  117. 117 https://github.com/carhartl/jquery-cookie
  118. 118 http://lab.rog.ie/chirp/
  119. 119 http://lab.rog.ie/chirp/
  120. 120 http://monkeecreate.github.com/jquery.simpleWeather/
  121. 121 http://gildas-lormeau.github.com/zip.js/
  122. 122 https://bitbucket.org/lindenlab/llsd/raw/7d2646cd3f9b/js/typedarray.js
  123. 123 http://stringjs.com/
  124. 124 http://jvectormap.com/
  125. 125 http://jvectormap.com/
  126. 126 http://www.kalyani.com/2010/10/subway-map-visualization-jquery-plugin/
  127. 127 http://www.kalyani.com/2010/10/subway-map-visualization-jquery-plugin/
  128. 128 http://hpneo.github.com/gmaps/
  129. 129 http://gmap3.net/
  130. 130 http://hpneo.github.com/gmaps/
  131. 131 http://twostepmedia.co.uk/svgeezy/
  132. 132 http://twostepmedia.co.uk/svgeezy/
  133. 133 http://retinajs.com/
  134. 134 http://www.justgage.com/
  135. 135 http://www.justgage.com/
  136. 136 http://arborjs.org/
  137. 137 http://arborjs.org/
  138. 138 http://timeline.verite.co/
  139. 139 https://github.com/VeriteCo/Timeline
  140. 140 http://wordpress.org/extend/plugins/timeline-verite-shortcode/
  141. 141 http://timeline.verite.co/
  142. 142 https://github.com/filamentgroup/unicon
  143. 143 https://github.com/adamdbradley/foresight.js
  144. 144 http://thecodeplayer.com/walkthrough/magnifying-glass-for-images-using-jquery-and-css3
  145. 145 https://www.smashingmagazine.com/wp-content/uploads/2012/08/nl-2.jpg
  146. 146 http://code.shutterstock.com/rickshaw/
  147. 147 http://code.shutterstock.com/rickshaw/
  148. 148 http://www.flotcharts.org/
  149. 149 http://www.flotcharts.org/
  150. 150 http://stoicloofah.github.com/chronoline.js/
  151. 151 http://stoicloofah.github.com/chronoline.js/
  152. 152 http://square.github.com/cubism/
  153. 153 http://square.github.com/cubism/
  154. 154 http://www.humblesoftware.com/envision
  155. 155 http://www.humblesoftware.com/envision
  156. 156 http://selection.datavisualization.ch
  157. 157 http://selection.datavisualization.ch
  158. 158 http://jqfundamentals.com/
  159. 159 http://jqfundamentals.com/
  160. 160 http://shichuan.github.com/javascript-patterns/
  161. 161 http://shichuan.github.com/javascript-patterns/
  162. 162 http://bonsaiden.github.com/JavaScript-Garden/
  163. 163 http://bonsaiden.github.com/JavaScript-Garden/
  164. 164 https://www.smashingmagazine.com/useful-javascript-libraries-jquery-plugins-part-2/

↑ Back to top Tweet itShare on Facebook

Advertisement

The Smashing team loves high-quality content and cares about the little details. Through our online articles, Smashing Books, eBooks as well as Smashing Conferences, we are committed to stimulating creativity and strengthening the web design community’s creative forces.

  1. 1

    WOW! Sweet! amazing collection! Thank you so so much

    -1
  2. 2

    awesome!

    0
  3. 3

    John Madhavan-Reese

    September 26, 2012 9:56 am

    jQuery Fundamentals wasn’t Addy Osmani, it was Rebecca Murphey. And it’s been recently updated by her and the rest of the gang at Bocoup.

    0
    • 4

      Vitaly Friedman (editor-in-chief of Smashing Magazine)

      September 26, 2012 1:03 pm

      Thanks for the heads up! The description is updated now.

      0
  4. 5

    Tooting my own horn, but if you are just looking for a way to format a date using placeholders (dd/mmm/yy, etc.) then you might use my (wonderfully compact!) function rather than a library:

    var FormatDate = function (sFormat, dDate) {
        // Returns: A string version of the date-value dDate,
        // or of today's date if dDate is omitted.
        // Usage: FormatDate("d mmm yy hh:nn:ss") or
        // FormatDate("dddd dd mmmm", date_var)
        // Defaults to YYYY/MM/DD.
        var MonthNames = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];
        var DayNames = [ "Sunday", "Monday", "Tueday", "Wednesday", "Thursday",
            "Friday", "Saturday" ];
        var dDate = dDate || new Date(),
            D = dDate.getDate(), DDDD = DayNames[dDate.getDay()],
            DDD = DDDD.substr(0,3),
            M = dDate.getMonth()+1, MMMM = MonthNames[dDate.getMonth()],
            MMM = MMMM.substr(0,3),
            YYYY = dDate.getFullYear(), YY = ('' + YYYY).substr(2, 2),
            H = dDate.getHours(), N = dDate.getMinutes(), S = dDate.getSeconds(),
            // pad with leading zeros, if required
            DD = ( D < 10 ? "0" : "" ) + D,
            MM = ( M < 10 ? "0" : "" ) + M, HH = ( H < 10 ? "0" : "" ) + H,
            NN = ( N < 10 ? "0" : "" ) + N, SS = ( S < 10 ? "0" : "" ) + S;
    
        sFormat = ( sFormat ) ? sFormat.toUpperCase() : 'YYYY/MM/DD';
        var sParsed = sFormat.replace(/D{1,4}|M{1,4}|Y{2,4}|H{1,2}|N{1,2}|S{1,2}/g,
            function (m) {
                try {
                    return eval(m);
                } catch (e) {
                    return '';
                }
            });
        return sParsed;
    };
    

    I didn't create AM/PM placeholders though.

    0
  5. 6

    wow.nice programming…
    thanks to share…..

    0
  6. 7

    ravi suryawanshi

    September 26, 2012 10:42 pm

    very helpful collection !

    0
  7. 8

    Very good collection. Very helpful and will save a lot of time for many developers. Thank you

    0
  8. 9

    wow, great list. What kind of libraries do you recommend for visual bugs or customer testing? We currently use usersnap.com, with that tool customers can mark visual defects and we get direct feedback (as screenshot).

    0
  9. 10

    OMG, thanks a lot for sharing all these… It’s totally great for references

    0
  10. 11

    Definetly saved on my *useful resources* list!

    0
  11. 12

    Wonderful collection, muchas gracias!

    0
  12. 13

    Old school, this reminds me of some roundups from early SM days.
    It is nice from time to time to have this.

    Cheers!

    0
  13. 14

    Best thread:-? But i want to question. ALl jquery plugin need java?

    0
  14. 15

    Wow! Thank you much for this article. It’s handy having a bookmark, or in my case @faavorite tag, that covers so much in one spot. Thanks again for the “library of Alexandria” for JS.

    0
  15. 16

    Darin Suthapong

    September 27, 2012 10:26 am

    This is Awesommme! Super useful article. Thanks!

    0
  16. 17

    Some plugins are amazing. Thanks a lot!

    0
  17. 18

    This is incredibly useful – great roundup. Thank you!

    0
  18. 19

    Oh, that’s EPIC!

    0
  19. 20

    It only took a couple of lines to include am/pm so I thought it worth updating. Add AP or ap within the format string to obtain AM/PM or am/pm (that is, case-sensitive); or just add a third argument of true if you only want a twelve-hour clock.

    var FormatDate = function (sFormat, dDate, twelve) {
        // Returns: A string version of the date-value dDate,
        // or of today's date if dDate is omitted.
        // Usage: FormatDate("d mmm yy hh:nn:ss") or
        // FormatDate("dddd dd mmmm ap", date_var)
        // Defaults to YYYY/MM/DD.
        // twelve == true for a 12hr clock, or just AP or ap within
        // sFormat (for AM/PM or am/pm).
        var MonthNames = ["January", "February", "March", "April", "May", "June",
            "July", "August", "September", "October", "November", "December"];
        var DayNames = [ "Sunday", "Monday", "Tueday", "Wednesday", "Thursday",
            "Friday", "Saturday" ];
        var dDate = dDate || new Date(),
            D = dDate.getDate(), DDDD = DayNames[dDate.getDay()],
            DDD = DDDD.substr(0,3),
            M = dDate.getMonth()+1, MMMM = MonthNames[dDate.getMonth()],
            MMM = MMMM.substr(0,3),
            YYYY = dDate.getFullYear(), YY = ('' + YYYY).substr(2, 2),
            H = dDate.getHours(), N = dDate.getMinutes(), S = dDate.getSeconds(),
            ap = (H > 11) ? "pm" : "am",
            // pad with leading zeros, if required
            DD = ( D < 10 ? "0" : "" ) + D,
            MM = ( M < 10 ? "0" : "" ) + M,
            NN = ( N < 10 ? "0" : "" ) + N,
            SS = ( S < 10 ? "0" : "" ) + S;
        var AP = (sFormat && (sFormat.toUpperCase().indexOf('AP')+1)) ?
            ((sFormat.indexOf('ap')+1) ? ap : ap.toUpperCase()) : '';
        if (twelve || AP) {
            H = (H < 12) ? (H || 12) : ((H - 12) || 12);
        }
        var HH = ( H < 10 ? "0" : "" ) + H;
        sFormat = ( sFormat ) ? sFormat.toUpperCase() : 'YYYY/MM/DD';
        var sParsed = sFormat.replace(/D{1,4}|M{1,4}|Y{2,4}|H{1,2}|N{1,2}|S{1,2}|AP/g,
            function (m) {
                try {
                    return eval(m);
                } catch (e) {
                    return '';
                }
            });
        return sParsed;
    };
    

    I apologise if this is not a suitable place to offer this code but I considered it relevant. Andy. [38 lines, but 8 of them are comments :) ]

    0
  20. 21

    Awesome collection!

    0

↑ Back to top