A curated list of amazingly awesome browser-side JavaScript libraries, resources and shiny things.
- Awesome JavaScript
- Package Managers
- Loaders
- Testing Frameworks
- MVC Frameworks
- Templating Engines
- Data Visualization
- Editors
- Utilities
- Functional Programming
- Date
- String
- Storage
- Color
- I18n And L10n
- Selector
- Class
- Event
- Control Flow
- UI
- Loading Status
- Validation
- Keyboard
- Tours And Guides
- Notifications
- Sliders
- Other Awesome Lists
Host the javascript libraries and provide tools for fetching and packaging them.
- Bower - A package manager for the web.
- component - Client package management for building better web applications.
- spm - Brand new static package manger.
- browserify - Browser-side require() the node.js way.
- jam - A package manager using a browser-focused and RequireJS compatible repository.
- yepnope.js - An Asynchronous Conditional Resource Loader.
- jspm - Frictionless browser package management.
- Ender - The no-library library.
- volo - Create front end projects from templates, add dependencies, and automate the resulting projects.
Module or loading system for JavaScript.
- RequireJS - A file and module loader for JavaScript.
- SeaJS - A Module Loader for the Web.
- HeadJS - The only script in your HEAD.
- curl - A small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
- lazyload - Tiny, dependency-free async JavaScript and CSS loader.
- script.js - Asyncronous JavaScript loader and dependency manager.
- mocha - Simple, flexible, fun javascript test framework for node.js & the browser.
- jasmine - DOM-less simple JavaScript testing framework.
- qunit - An easy-to-use JavaScript Unit Testing framework.
- chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Sinon.JS - Test spies, stubs and mocks for JavaScript.
- expect.js - Minimalistic BDD-style assertions for Node.JS and the browser.
- istanbul - Yet another JS code coverage tool.
- JSCover - JSCover is a tool that measures code coverage for JavaScript programs.
- phantomjs - Scriptable Headless WebKit.
- slimerjs - A PhantomJS-like tool running Gecko.
- casperjs - Navigation scripting & testing utility for PhantomJS and SlimerJS.
- zombie - Insanely fast, full-stack, headless browser testing using node.js.
- totoro - A simple and stable cross-browser testing tool.
- karma - Spectacular Test Runner for JavaScript.
Templating engines allow you to perform string interpolation.
- mustache.js - Minimal templating with {{mustaches}} in JavaScript.
- handlebars.js - An extension to the Mustache templating language.
- hogan.js - A compiler for the Mustache templating language.
- doT - The fastest + concise javascript template engine for nodejs and browsers.
- dustjs - Asynchronous templates for the browser and node.js.
- eco - Embedded CoffeeScript templates.
- JavaScript-Templates - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies.
- t.js - A tiny javascript templating framework in ~400 bytes gzipped.
Data visualization tools for the web.
- d3 - A JavaScript visualization library for HTML and SVG.
- Chart.js - Simple HTML5 Charts using the tag.
- peity - Progressive bar, line and pie charts.
- raphael - JavaScript Vector Library.
- echarts - Enterprise Charts.
- vis - Dynamic, browser-based visualization library.
- two.js - A renderer agnostic two-dimensional drawing api for the web.
- g.raphael - Charts for Raphaël.
- sigma.js - A JavaScript library dedicated to graph drawing.
- arbor - A graph visualization library using web workers and jQuery.
- cubism - A D3 plugin for visualizing time series.
- dc.js - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js
- vega - A visualization grammar.
- envisionjs - Dynamic HTML5 visualization.
- rickshaw - JavaScript toolkit for creating interactive real-time graphs.
- flot - Attractive JavaScript charts for jQuery.
- morris.js - Pretty time-series line graphs.
- nvd3 - Build re-usable charts and chart components for d3.js
- svg.js - A lightweight library for manipulating and animating SVG.
- heatmap.js - JavaScript Library for HTML5 canvas based heatmaps.
- jquery.sparkline - A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser.
- xCharts - A D3-based library for building custom charts and graphs.
- trianglify - Low poly style background generator with d3.js
- d3-cloud - Create word clouds in JavaScript.
- d4 - A friendly reusable charts DSL for D3.
There're also some great commercial libraries, like amchart and highchart.
- ace - Ace (Ajax.org Cloud9 Editor).
- CodeMirror - In-browser code editor.
- esprima - ECMAScript parsing infrastructure for multipurpose analysis.
- quill - A cross browser rich text editor with an API.
- medium-editor - Medium.com WYSIWYG editor clone.
- pen - enjoy live editing (+markdown).
- jquery-notebook - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium.
- bootstrap-wysiwyg - Tiny bootstrap-compatible WISWYG rich text editor.
- ckeditor-releases - The best web text editor for everyone.
- editor - A markdown editor. still on development.
- EpicEditor - An embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more.
- jsoneditor - A web-based tool to view, edit and format JSON.
Functional programming libraries to extend JavaScript’s capabilities.
- underscore - JavaScript's utility _ belt.
- lodash - A utility library delivering consistency, customization, performance, & extras.
- Sugar - A Javascript library for working with native objects.
- lazy.js - Like Underscore, but lazier.
Date Libraries.
- moment - Parse, validate, manipulate, and display dates in javascript.
- moment-timezone - Timezone support for moment.js.
- jquery-timeago - A jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago").
- timezone-js - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.
String Libraries.
- underscore.string - String manipulation extensions for Underscore.js javascript library.
- string.js - Extra JavaScript string methods.
- he - A robust HTML entity encoder/decoder written in JavaScript.
- multiline - Multiline strings in JavaScript.
- query-string - Parse and stringify URL query strings.
- URI.js - Javascript URL mutation library.
- jsurl - Lightweight URL manipulation with JavaScript.
- sprintf.js - A sprintf implementation.
- randomColor - A color generator for JavaScript.
- chroma.js - JavaScript library for all kinds of color manipulations.
- color - JavaScript color conversion and manipulation library.
- colors - Smarter defaults for colors on the web.
Localization (i18n) and internationalization (l10n) JavaScript libraries.
Libraries for indicate load status.
- NProgress - Slim progress bars for Ajax'y applications.
- Spin.js - A spinning activity indicator.
- progress.js - Create and manage progress bar for every objects on the page.
- pace - Automatically add a progress bar to your site.
- topbar - Tiny & beautiful site-wide progress indicator.
- nanobar - Very lighweight progress bars. No jQuery.
- PageLoadingEffects - Modern ways of revealing new content using SVG animations.
- css-loaders - A collection of loading spinners animated with CSS.
Besides libraries, there're Collection on Codepen, and generators like Ajaxload, Preloaders and CSSLoad.
Other amazingly awesome lists can be found in the awesome-awesomeness list.