JavaScript libraries and frameworks

For building Web applications, modern websites or anything, you may have now powerful JavaScript libraries that work on any recent browser.

Libraries to buid a user interface

These are general-purpose Ajax frameworks or more specialized libraries.

Ample SDK

This JavaScript framework that works on all browsers using XUL as language for the graphical interface and offers many widgets whose appearance is defined in CSS.
It does not use but its own XUL interpreter instead. Extends jQuery.

JQuery UI

JQuery complements to make graphical interfaces to Web applications. It provides widgets such as calendar, color picker, etc.

Gauge

Easy to add to a website, menu bar similar to that on Apple's site. With shaded colors and reflection effect.

Popcorn.js

By Mozilla, it can manage video and social links. It is accompanied by Popcorn Maker, an online tool  for making montages. 
Thus we can create interactive presentations, in 3D with WegGL with video and audio components.

Tangle

Make a page more interactive. When a data is modified by the user, this is reflected in other related data displayed.
The principle is not new, the library just makes its implementation easier.

Libraries for games, images and visual effects

Scripty 2

It is a rewrite of script.aculo.us and its goal is to make Web sites attractive with a lot of visual effects.
It requires the Prototype framework.

Bigvideo

As you can display an image in the background, it is possible to display a video in background with this library, itself based on another video display library. It definitely does not fit all pages of a site but it can add a special effect to give life to an object that has an article devoted.

But if you want to save bandwidth, you can also put your video on Youtube and use Tubular. Until Youtube blocks the service that consumes their bandwidth without income in return!

Extending the language

Underscore

Adds new features to older versions of JavaScript. The functions are redirected to the native implementation when a newer version is present in the browser.

Web Intents

Functions to share data and images between applications and with social networks.
This works with a list of actions (pick, view, share...) linked to functions.

Stratified, concurrent JavaScript

Adds constructs for concurrency. For example, waitfor ... or .. or ...

Charts and presentation

Most charting libraries are based on Raphael, D3 (SVG) or NVD3. Some are demos of these libs.

XChart

Even though if it produces less complete and pretty charts than other libraries, this tool has the advantage of defining a chart with a simple JSON file, easy to generate, without having to know a special format.
Based on SVG and D3, it requires a modern browser (IE9 at least). Note that D3 can interface with Angle and facilitate significantly access to data.

Vega

More general than a framework, it is a grammar of visual representation based on descriptions in JSON format. The display is in Canvas or SVG. All types of graphs are possible and the interaction is supported. Try the online editor.
Requires D3.js.

D3.js

To generate code from data, for example, a table from statistical data.
In fact it provides a declarative language to access the DOM or produce SVG, rather than loops and instructions.
This makes a better interaction between data and display.

See this extented list of D3 scripts or this gallery.

Vis.js

Like D3 make visualisation data such as charts, timelines, networks but made specially for Canvas, is faster.

Rickshaw

For creating interactive charts. Based on D3, so not compatible with IE 8 and older versions.

More free interactive frameworks: nvd3, dc.js, crossfilter, flotr2, Chart.js (Canvas).

Other purposes

BrowserFS

To have a file system in the browser, more precisely, have read and write functions to put data in files, similar to those of Node.
The API serves as a common interface to different technologies such as LocalStorage, IndexedDB, XMLHttpRequest. The data is therefore stored on disk or in the browser environment.
This is especially suited for using the browser as an OS for local applications.

We have a similar tool with Vinyl, a virtual file format.

Youtube API

This framework dedicated to Youtube has several levels: basic functions to use a player on his website, functions to customize and configure the player, functions to change its behaviour, and widgets related to videos (such as the videobar).

speak.js, speech synthesis

A JavaScript function, in fact converted from a C++ code, to vocalize a written text. This can be useful for those who can not see or in situation where you can not see, as well as in games or other interactive program. Most languages ​​are recognized but not all browsers. Work on Chrome.

Glow, news server

It is the JavaScript framework of BBC. Since BBC is an online news server, the library is mainly aimed at displaing news and related reports and graphics. With a wide compatibility to browsers.

Mindmap

A library to display mind maps, ie semantical graphes showing relations between concepts.

Processing.js

A visual API to create interactive animations and graphics for the Web in Canvas.

Node.js

Node.js is a events server written in JavaScript designed to make network applications.
Nowjs is based on node.js to more easily build an interactive space between client and server, with synchonisation of data on both sides.
Node Guide is a tutorial for the software.

WebODF

Provides an alternative to PDF: This is a JavaScript library to display ODF documents from LibreOffice as HTML and CSS on a website.

Zip.js

A library of compression and decompression of zip files up to 4 gigabytes in JavaScript. It works with FileReader and FileWriter and then using the new API for access to the file system shows that the browser becomes a platform for all applications.

Other tools

See also

© 2008-2017 Xul.fr