mirror of
https://github.com/sorrycc/awesome-javascript.git
synced 2026-01-24 04:08:01 -08:00
275 lines
18 KiB
Markdown
275 lines
18 KiB
Markdown
# Awesome JavaScript
|
||
|
||
A curated list of amazingly awesome browser-side JavaScript libraries, resources and shiny things.
|
||
|
||
* [Awesome JavaScript](#awesome-javascript)
|
||
* [Package Managers](#package-managers)
|
||
* [Loaders](#loaders)
|
||
* [Testing Frameworks](#testing-frameworks)
|
||
* [MVC Frameworks](#mvc-frameworks)
|
||
* [Templating Engines](#templating-engines)
|
||
* [Data Visualization](#data-visualization)
|
||
* [Editors](#editors)
|
||
* Utilities
|
||
* [Functional Programming](#functional-programming)
|
||
* [Date](#date)
|
||
* [String](#string)
|
||
* [Storage](#storage)
|
||
* [Color](#color)
|
||
* [I18n And L10n](#i18n-and-l10n)
|
||
* [Class](#class)
|
||
* [Control Flow](#control-flow)
|
||
* [Routing](#routing)
|
||
* UI
|
||
* [Loading Status](#loading-status)
|
||
* [Validation](#validation)
|
||
* [Keyboard Wrappers](#keyboard-wrappers)
|
||
* [Tours And Guides](#tours-and-guides)
|
||
* Notifications
|
||
* Sliders
|
||
* [Other Awesome Lists](#other-awesome-lists)
|
||
|
||
|
||
## Package Managers
|
||
|
||
*Host the javascript libraries and provide tools for fetching and packaging them.*
|
||
|
||
* [Bower](https://github.com/bower/bower) - A package manager for the web.
|
||
* [component](https://github.com/component/component) - Client package management for building better web applications.
|
||
* [spm](https://github.com/spmjs/spm) - Brand new static package manger.
|
||
* [browserify](https://github.com/substack/node-browserify) - Browser-side require() the node.js way.
|
||
* [jam](https://github.com/caolan/jam) - A package manager using a browser-focused and RequireJS compatible repository.
|
||
* [yepnope.js](https://github.com/SlexAxton/yepnope.js) - An Asynchronous Conditional Resource Loader.
|
||
* [jspm](https://github.com/jspm/jspm-cli) - Frictionless browser package management.
|
||
* [Ender](https://github.com/ender-js/Ender) - The no-library library.
|
||
* [volo](https://github.com/volojs/volo) - Create front end projects from templates, add dependencies, and automate the resulting projects.
|
||
|
||
|
||
## Loaders
|
||
*Module or loading system for JavaScript.*
|
||
|
||
* [RequireJS](https://github.com/jrburke/requirejs) - A file and module loader for JavaScript.
|
||
* [SeaJS](https://github.com/seajs/seajs) - A Module Loader for the Web.
|
||
* [HeadJS](https://github.com/headjs/headjs) - The only script in your HEAD.
|
||
* [curl](https://github.com/cujojs/curl) - A small, fast, extensible module loader that handles AMD, CommonJS Modules/1.1, CSS, HTML/text, and legacy scripts.
|
||
* [lazyload](https://github.com/rgrove/lazyload/) - Tiny, dependency-free async JavaScript and CSS loader.
|
||
* [script.js](https://github.com/ded/script.js) - Asyncronous JavaScript loader and dependency manager.
|
||
|
||
|
||
## Testing Frameworks
|
||
|
||
* [mocha](https://github.com/visionmedia/mocha) - Simple, flexible, fun javascript test framework for node.js & the browser.
|
||
* [jasmine](https://github.com/pivotal/jasmine) - DOM-less simple JavaScript testing framework.
|
||
* [qunit](https://github.com/jquery/qunit) - An easy-to-use JavaScript Unit Testing framework.
|
||
* [chai](https://github.com/chaijs/chai) - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
|
||
* [Sinon.JS](https://github.com/cjohansen/Sinon.JS) - Test spies, stubs and mocks for JavaScript.
|
||
* [expect.js](https://github.com/LearnBoost/expect.js) - Minimalistic BDD-style assertions for Node.JS and the browser.
|
||
* [istanbul](https://github.com/gotwarlost/istanbul) - Yet another JS code coverage tool.
|
||
* [blanket](https://github.com/alex-seville/blanket) - A simple code coverage library for javascript. Designed to be easy to install and use, for both browser and nodejs.
|
||
* [JSCover](https://github.com/tntim96/JSCover) - JSCover is a tool that measures code coverage for JavaScript programs.
|
||
* [phantomjs](https://github.com/ariya/phantomjs) - Scriptable Headless WebKit.
|
||
* [slimerjs](https://github.com/laurentj/slimerjs) - A PhantomJS-like tool running Gecko.
|
||
* [casperjs](https://github.com/n1k0/casperjs) - Navigation scripting & testing utility for PhantomJS and SlimerJS.
|
||
* [zombie](https://github.com/assaf/zombie) - Insanely fast, full-stack, headless browser testing using node.js.
|
||
* [totoro](https://github.com/totorojs/totoro) - A simple and stable cross-browser testing tool.
|
||
* [karma](https://github.com/karma-runner/karma) - Spectacular Test Runner for JavaScript.
|
||
* [jest](http://github.com/facebook/jest) - Painless Javascript Unit Testing.
|
||
|
||
|
||
## MVC Frameworks
|
||
|
||
* [angular.js](https://github.com/angular/angular.js) - HTML enhanced for web apps.
|
||
* [backbone](https://github.com/jashkenas/backbone) - Give your JS App some Backbone with Models, Views, Collections, and Events.
|
||
* [ember.js](https://github.com/emberjs/ember.js) - A JavaScript framework for creating ambitious web applications.
|
||
* [ractive](https://github.com/ractivejs/ractive) - Next-generation DOM manipulation.
|
||
* [vue](https://github.com/yyx990803/vue) - Intuitive, fast & composable MVVM for building interactive interfaces.
|
||
* [knockout](https://github.com/knockout/knockout) - Knockout makes it easier to create rich, responsive UIs with JavaScript.
|
||
* [spine](https://github.com/spine/spine) - Lightweight MVC library for building JavaScript applications.
|
||
* [canjs](https://github.com/bitovi/canjs) - Can do JS, better, faster, easier.
|
||
|
||
|
||
## Templating Engines
|
||
*Templating engines allow you to perform string interpolation.*
|
||
|
||
* [mustache.js](https://github.com/janl/mustache.js) - Minimal templating with {{mustaches}} in JavaScript.
|
||
* [handlebars.js](https://github.com/wycats/handlebars.js/) - An extension to the Mustache templating language.
|
||
* [hogan.js](https://github.com/twitter/hogan.js) - A compiler for the Mustache templating language.
|
||
* [doT](https://github.com/olado/doT) - The fastest + concise javascript template engine for nodejs and browsers.
|
||
* [dustjs](https://github.com/linkedin/dustjs/) - Asynchronous templates for the browser and node.js.
|
||
* [eco](https://github.com/sstephenson/eco/) - Embedded CoffeeScript templates.
|
||
* [JavaScript-Templates](https://github.com/blueimp/JavaScript-Templates) - < 1KB lightweight, fast & powerful JavaScript templating engine with zero dependencies.
|
||
* [t.js](https://github.com/jasonmoo/t.js) - A tiny javascript templating framework in ~400 bytes gzipped.
|
||
|
||
|
||
## Data Visualization
|
||
*Data visualization tools for the web.*
|
||
|
||
* [d3](https://github.com/mbostock/d3) - A JavaScript visualization library for HTML and SVG.
|
||
* [Chart.js](https://github.com/nnnick/Chart.js) - Simple HTML5 Charts using the <canvas> tag.
|
||
* [paper.js](https://github.com/paperjs/paper.js) - The Swiss Army Knife of Vector Graphics Scripting – Scriptographer ported to JavaScript and the browser, using HTML5 Canvas.
|
||
* [peity](https://github.com/benpickles/peity) - Progressive <svg> bar, line and pie charts.
|
||
* [raphael](https://github.com/DmitryBaranovskiy/raphael) - JavaScript Vector Library.
|
||
* [echarts](https://github.com/ecomfe/echarts) - Enterprise Charts.
|
||
* [vis](https://github.com/almende/vis) - Dynamic, browser-based visualization library.
|
||
* [two.js](https://github.com/jonobr1/two.js) - A renderer agnostic two-dimensional drawing api for the web.
|
||
* [g.raphael](https://github.com/DmitryBaranovskiy/g.raphael) - Charts for Raphaël.
|
||
* [sigma.js](https://github.com/jacomyal/sigma.js) - A JavaScript library dedicated to graph drawing.
|
||
* [arbor](https://github.com/samizdatco/arbor) - A graph visualization library using web workers and jQuery.
|
||
* [cubism](https://github.com/square/cubism) - A D3 plugin for visualizing time series.
|
||
* [dc.js](https://github.com/dc-js/dc.js) - Multi-Dimensional charting built to work natively with crossfilter rendered with d3.js
|
||
* [vega](https://github.com/trifacta/vega) - A visualization grammar.
|
||
* [envisionjs](https://github.com/HumbleSoftware/envisionjs) - Dynamic HTML5 visualization.
|
||
* [rickshaw](https://github.com/shutterstock/rickshaw) - JavaScript toolkit for creating interactive real-time graphs.
|
||
* [flot](https://github.com/flot/flot) - Attractive JavaScript charts for jQuery.
|
||
* [morris.js](https://github.com/morrisjs/morris.js) - Pretty time-series line graphs.
|
||
* [nvd3](https://github.com/novus/nvd3) - Build re-usable charts and chart components for d3.js
|
||
* [svg.js](https://github.com/wout/svg.js) - A lightweight library for manipulating and animating SVG.
|
||
* [heatmap.js](https://github.com/pa7/heatmap.js) - JavaScript Library for HTML5 canvas based heatmaps.
|
||
* [jquery.sparkline](https://github.com/gwatts/jquery.sparkline) - A plugin for the jQuery javascript library to generate small sparkline charts directly in the browser.
|
||
* [xCharts](https://github.com/tenxer/xCharts) - A D3-based library for building custom charts and graphs.
|
||
* [trianglify](https://github.com/qrohlf/trianglify) - Low poly style background generator with d3.js
|
||
* [d3-cloud](https://github.com/jasondavies/d3-cloud) - Create word clouds in JavaScript.
|
||
* [d4](https://github.com/heavysixer/d4) - A friendly reusable charts DSL for D3.
|
||
* [dimple.js](http://dimplejs.org) - Easy charts for business analytics powered by d3
|
||
|
||
There're also some great commercial libraries, like [amchart](http://www.amcharts.com/) and [highchart](http://www.highcharts.com/).
|
||
|
||
|
||
## Editors
|
||
|
||
* [ace](https://github.com/ajaxorg/ace) - Ace (Ajax.org Cloud9 Editor).
|
||
* [CodeMirror](https://github.com/marijnh/CodeMirror) - In-browser code editor.
|
||
* [esprima](https://github.com/ariya/esprima) - ECMAScript parsing infrastructure for multipurpose analysis.
|
||
* [quill](https://github.com/quilljs/quill) - A cross browser rich text editor with an API.
|
||
* [medium-editor](https://github.com/daviferreira/medium-editor) - Medium.com WYSIWYG editor clone.
|
||
* [pen](https://github.com/sofish/pen) - enjoy live editing (+markdown).
|
||
* [jquery-notebook](https://github.com/raphaelcruzeiro/jquery-notebook) - A simple, clean and elegant text editor. Inspired by the awesomeness of Medium.
|
||
* [bootstrap-wysiwyg](https://github.com/mindmup/bootstrap-wysiwyg) - Tiny bootstrap-compatible WISWYG rich text editor.
|
||
* [ckeditor-releases](https://github.com/ckeditor/ckeditor-releases) - The best web text editor for everyone.
|
||
* [editor](https://github.com/lepture/editor) - A markdown editor. still on development.
|
||
* [EpicEditor](https://github.com/OscarGodson/EpicEditor) - An embeddable JavaScript Markdown editor with split fullscreen editing, live previewing, automatic draft saving, offline support, and more.
|
||
* [jsoneditor](https://github.com/josdejong/jsoneditor) - A web-based tool to view, edit and format JSON.
|
||
|
||
|
||
## Functional Programming
|
||
*Functional programming libraries to extend JavaScript’s capabilities.*
|
||
|
||
* [underscore](https://github.com/jashkenas/underscore) - JavaScript's utility _ belt.
|
||
* [lodash](https://github.com/lodash/lodash) - A utility library delivering consistency, customization, performance, & extras.
|
||
* [Sugar](https://github.com/andrewplummer/Sugar) - A Javascript library for working with native objects.
|
||
* [lazy.js](https://github.com/dtao/lazy.js) - Like Underscore, but lazier.
|
||
|
||
|
||
## Date
|
||
*Date Libraries.*
|
||
|
||
* [moment](https://github.com/moment/moment) - Parse, validate, manipulate, and display dates in javascript.
|
||
* [moment-timezone](https://github.com/moment/moment-timezone) - Timezone support for moment.js.
|
||
* [jquery-timeago](https://github.com/rmm5t/jquery-timeago) - A jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago").
|
||
* [timezone-js](https://github.com/mde/timezone-js) - Timezone-enabled JavaScript Date object. Uses Olson zoneinfo files for timezone data.
|
||
|
||
|
||
## String
|
||
*String Libraries.*
|
||
|
||
* [underscore.string](https://github.com/epeli/underscore.string) - String manipulation extensions for Underscore.js javascript library.
|
||
* [string.js](https://github.com/jprichardson/string.js) - Extra JavaScript string methods.
|
||
* [he](https://github.com/mathiasbynens/he) - A robust HTML entity encoder/decoder written in JavaScript.
|
||
* [multiline](https://github.com/sindresorhus/multiline) - Multiline strings in JavaScript.
|
||
* [query-string](https://github.com/sindresorhus/query-string) - Parse and stringify URL query strings.
|
||
* [URI.js](https://github.com/medialize/URI.js/) - Javascript URL mutation library.
|
||
* [jsurl](https://github.com/Mikhus/jsurl) - Lightweight URL manipulation with JavaScript.
|
||
* [sprintf.js](https://github.com/alexei/sprintf.js) - A sprintf implementation.
|
||
|
||
|
||
## Storage
|
||
|
||
* [store.js](https://github.com/marcuswestin/store.js) - LocalStorage wrapper for all browsers without using cookies or flash. Uses localStorage, globalStorage, and userData behavior under the hood.
|
||
* [localForage](https://github.com/mozilla/localForage) - Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.
|
||
* [jStorage](https://github.com/andris9/jStorage) - jStorage is a simple key/value database to store data on browser side.
|
||
* [basket.js](https://github.com/addyosmani/basket.js) - A script and resource loader for caching & loading scripts with localStorage.
|
||
* [jquery-cookie](https://github.com/carhartl/jquery-cookie) - A simple, lightweight jQuery plugin for reading, writing and deleting cookies.
|
||
* [Cookies](https://github.com/ScottHamper/Cookies) - JavaScript Client-Side Cookie Manipulation Library.
|
||
|
||
|
||
## Color
|
||
|
||
* [randomColor](https://github.com/davidmerfield/randomColor) - A color generator for JavaScript.
|
||
* [chroma.js](https://github.com/gka/chroma.js) - JavaScript library for all kinds of color manipulations.
|
||
* [color](https://github.com/harthur/color) - JavaScript color conversion and manipulation library.
|
||
* [colors](https://github.com/mrmrs/colors) - Smarter defaults for colors on the web.
|
||
|
||
## I18n And L10n
|
||
*Localization (i18n) and internationalization (l10n) JavaScript libraries.*
|
||
|
||
|
||
## Class
|
||
|
||
* [klass](https://github.com/ded/klass) - A utility for creating expressive classes in JavaScript.
|
||
* [augment](https://github.com/javascript/augment) - The world's smallest and fastest classical JavaScript inheritance pattern.
|
||
|
||
|
||
## Control Flow
|
||
|
||
* [async](https://github.com/caolan/async) - Async utilities for node and the browser.
|
||
* [q](https://github.com/kriskowal/q) - A tool for making and composing asynchronous promises in JavaScript.
|
||
* [step](https://github.com/creationix/step/) - An async control-flow library that makes stepping through logic easy.
|
||
|
||
|
||
## Routing
|
||
|
||
* [director](https://github.com/flatiron/director) - A tiny and isomorphic URL router for JavaScript.
|
||
* [page.js](https://github.com/visionmedia/page.js) - Micro client-side router inspired by the Express router (~1200 bytes).
|
||
* [pathjs](https://github.com/mtrpcic/pathjs) - Simple, lightweight routing for web browsers.
|
||
* [crossroads](https://github.com/millermedeiros/crossroads.js) - JavaScript Routes.
|
||
* [davis.js](https://github.com/olivernn/davis.js) - RESTful degradable JavaScript routing using pushState.
|
||
|
||
|
||
## Loading Status
|
||
*Libraries for indicate load status.*
|
||
|
||
* [NProgress](http://ricostacruz.com/nprogress/) - Slim progress bars for Ajax'y applications.
|
||
* [Spin.js](https://github.com/fgnass/spin.js) - A spinning activity indicator.
|
||
* [progress.js](https://github.com/usablica/progress.js) - Create and manage progress bar for every objects on the page.
|
||
* [pace](https://github.com/HubSpot/pace) - Automatically add a progress bar to your site.
|
||
* [topbar](https://github.com/buunguyen/topbar) - Tiny & beautiful site-wide progress indicator.
|
||
* [nanobar](https://github.com/jacoborus/nanobar) - Very lighweight progress bars. No jQuery.
|
||
* [PageLoadingEffects](https://github.com/codrops/PageLoadingEffects) - Modern ways of revealing new content using SVG animations.
|
||
* [css-loaders](https://github.com/lukehaas/css-loaders) - A collection of loading spinners animated with CSS.
|
||
|
||
Besides libraries, there're [Collection on Codepen](http://codepen.io/collection/HtAne/), and generators like [Ajaxload](http://www.ajaxload.info/), [Preloaders](http://preloaders.net/) and [CSSLoad](http://cssload.net/).
|
||
|
||
|
||
## Validation
|
||
|
||
* [Parsley.js](https://github.com/guillaumepotier/Parsley.js) - Validate your forms, frontend, without writing a single line of javascript.
|
||
* [jquery-validation](https://github.com/jzaefferer/jquery-validation) - jQuery Validation Plugin.
|
||
* [validator.js](https://github.com/chriso/validator.js) - String validation and sanitization.
|
||
* [validate.js](https://github.com/rickharrison/validate.js) - Lightweight JavaScript form validation library inspired by CodeIgniter.
|
||
|
||
|
||
## Keyboard Wrappers
|
||
|
||
* [mousetrap](https://github.com/ccampbell/mousetrap) - Simple library for handling keyboard shortcuts in Javascript.
|
||
* [keymaster](https://github.com/madrobby/keymaster) - A simple micro-library for defining and dispatching keyboard shortcuts.
|
||
* [Keypress](https://github.com/dmauro/Keypress) - A keyboard input capturing utility in which any key can be a modifier key.
|
||
* [KeyboardJS](https://github.com/RobertWHurst/KeyboardJS) - A JavaScript library for binding keyboard combos without the pain of key codes and key combo conflicts.
|
||
* [jquery.hotkeys](https://github.com/jeresig/jquery.hotkeys) - jQuery Hotkeys lets you watch for keyboard events anywhere in your code supporting almost any key combination.
|
||
* [jwerty](https://github.com/keithamus/jwerty) - Awesome handling of keyboard events.
|
||
|
||
|
||
## Tours And Guides
|
||
|
||
* [intro.js](https://github.com/usablica/intro.js) - A better way for new feature introduction and step-by-step users guide for your website and project.
|
||
* [shepherd](https://github.com/HubSpot/shepherd) - Guide your users through a tour of your app.
|
||
* [bootstrap-tour](https://github.com/sorich87/bootstrap-tour) - Quick and easy product tours with Twitter Bootstrap Popovers.
|
||
* [tourist](https://github.com/easelinc/tourist) - Simple, flexible tours for your app.
|
||
* [chardin.js](https://github.com/heelhook/chardin.js) - Simple overlay instructions for your apps.
|
||
* [pageguide](https://github.com/tracelytics/pageguide) - An interactive guide for web page elements using jQuery and CSS3.
|
||
* [hopscotch](https://github.com/linkedin/hopscotch) - A framework to make it easy for developers to add product tours to their pages.
|
||
* [joyride](https://github.com/zurb/joyride) - jQuery feature tour plugin.
|
||
|
||
|
||
# Other Awesome Lists
|
||
Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.
|