JS libs
links and headings are messed up, to sort
Libraries
- Journey Through The JavaScript MVC Jungle - July 27th, 2012
CDN
- Google Libraries API is a content distribution network for the most popular, open-source JavaScript libraries. The Libraries API provides access to a growing list of the most popular, open-source JavaScript libraries, including: AngularJS, Chrome Frame, Dojo, Ext Core, jQuery, jQuery UI, MooTools, Prototype, script.aculo.us, SWFObject, WebFont Loader
- irc.geekshed.net, #googleapis
Loading
- Jam. For front-end developers who crave maintainable assets, Jam is a package manager for JavaScript. Unlike other repositories, we put the browser first by using AMD modules.
- RequireJS [1] is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
- Ender is a full featured package manager for your browser. It allows you to search, install, manage, and compile front-end javascript packages and their dependencies for the web. We like to think of it as NPM's little sister. Ender is not a JavaScript library. It's not a jQuery replacement. It's not even a static asset. It's a tool for making the consumption of front-end javascript packages dead simple and incredibly powerful.
- volo - A JavaScript dependency manager and project creation tool that favors GitHub for the package repository. Written in JavaScript for JavaScript.
- yepnope is an asynchronous conditional resource loader that's super-fast, and allows you to load only the scripts that your users need.
- Head JS - Load scripts like images. Use HTML5 and CSS3 safely. Target CSS for different screens, paths, states and browsers. Make it the only script in your HEAD.
General
- OxJS is Ox.js, a general-purpose utility library. It embraces functional programming, supports modules, provides lots of tools to deal with dates, has all the missing math methods (plus some more for geographic coordinates) and helper functions for strings and regular expressions, fixes type detection and equality testing, includes utilities to handle HTML, the DOM and remote requests, can tokenize and minify JavaScript, comes with its own documentation format, including inline tests, and does many other cool things. Then there are modules, most notably Ox.UI, which provides a simple but flexible model to write complex, desktop-class web applications for HTML5-compliant browsers.
- X-Tag - Based on the current W3 Web Components draft, enables the custom element portion of the proposal. Custom elements let you register new tags/elements with the parser so they are recognized and inflated with special abilities you define.
- https://github.com/mozilla/x-tag
DOM
- Laconic DOM Library - Laconic offers an intuitive approach to generating DOM content in JavaScript. Laconic adds a method to the $.el namespace for all known HTML Elements. These methods should be invoked with a variable-length list of child elements, strings, numbers, or arrays containing these types. An optional attributes object may be passed as the first argument.
- rangy - A cross-browser JavaScript range and selection library. It provides a simple standards-based API for performing common DOM Range and Selection tasks in all major browsers, abstracting away the wildly different implementations of this functionality between Internet Explorer up to and including version 8 and DOM-compliant browsers.
Templating
- Underscore is a utility-belt library for JavaScript that provides a lot of the functional programming support that you would expect in Prototype.js (or Ruby), but without extending any of the built-in JavaScript objects. It's the tie to go along with jQuery's tux, and Backbone.js's suspenders.
- Udon is a library providing basic support for functional programming idioms in JavaScript.
- mustache.js is an implementation of the mustache template system in JavaScript. Mustache is a logic-less template syntax. It can be used for HTML, config files, source code - anything. It works by expanding tags in a template using values provided in a hash or object.
- Handlebars.js is an extension to the Mustache templating language created by Chris Wanstrath. Handlebars.js and Mustache are both logicless templating languages that keep the view and the code separated like we all know they should be.
- Walrus is a templating library inspired by mustache, handlebars, ejs and friends, but with a couple of important differences in philosophy and style
- Knockout is a JavaScript library that helps you to create rich, responsive display and editor user interfaces with a clean underlying data model. Any time you have sections of UI that update dynamically (e.g., changing depending on the user’s actions or when an external data source changes), KO can help you implement it more simply and maintainably. Simplify dynamic JavaScript UIs by applying the Model-View-View Model (MVVM) pattern.
- https://github.com/jasonmoo/t.js - v small
Keyboard
- Mousetrap - A simple library for handling keyboard shortcuts in Javascript.
- Whatthekeycode.com - quickly find a js keycode for any key [2]
Media
- http://mudcu.be/midi-js/
- http://matt.west.co.tt/music/jasmid-midi-synthesis-with-javascript-and-html5-audio/
- https://github.com/abudaan/midibridge-js
Visualisation
- Datavisualization.ch Selected Tools is a collection of tools that we, the people behind Datavisualization.ch, work with on a daily basis and recommend warmly. This is not a list of everything out there, but instead a thoughtfully curated selection of our favourite tools that will make your life easier creating meaningful and beautiful data visualizations.
- D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG and CSS. D3’s emphasis on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework, combining powerful visualization components and a data-driven approach to DOM manipulation.
- Dojo GFX is a cross-browser 2D vector graphics API that enables development of rich graphic web application on desktop and mobile without having to deal with the browsers native graphics technologies.
- Paper.js is an open source vector graphics scripting framework that runs on top of the HTML5 Canvas. It offers a clean Scene Graph / Document Object Model and a lot of powerful functionality to create and work with vector graphics and bezier curves, all neatly wrapped up in a well designed, consistent and clean programming interface.
Presentation
- Impress.js - It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com.
- http://tantaman.github.com/Strut/ Strut] - Presentation editor for Impress.js
- http://shama.github.com/jmpress.js - jQuery and Impress.js
- dizzy.js is a Javascript library that enables you to create nonlinear presentations similiar to Prezi without using Flash. The presentation data is stored in the SVG-format, the navigation and animation is done via Javascript.
Bubbles
jQuery
- jQuery - Docs Main Page
- jQuery UI - jQuery's visual controls. jQuery UI features a wide range of core interaction plugins as well as many UI widgets. The project homepage is located at jqueryui.com. Please visit these pages for downloading UI and many demos.
- The Basics of jQuery February 28th 2012
- jQuery By Example - blog
News
- jQuery.Buzz() - Latest jQuery news & resources
API
- jQAPI - Alternative jQuery Documentation.
- jQuery 1.7 API Cheat Sheet
- jQuery source viewer
Development
Plugins
- http://archive.plugins.jquery.com/ - new one is being built
jQuery UI
- jQuery UI provides abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications.
Layout
Popup
Tooltips
- qTip2 - Pretty powerful tooltips
Textarea
Animation
- jRumble is a jQuery plugin that rumbles, vibrates, shakes, and rotates any element you choose. It's great to use as a hover effect or a way to direct attention to an element.
Carousel
$("ul#roundabout").roundabout({ autoplay: true, autoplayInitialDelay: 2000 });
The above works only for the first instance. Use window.setTimeout to alter further IDs. [3]
Scroll to anchor
$('body').plusAnchor({ easing: 'swing', // The easing method, defaults are 'swing' and 'linear'. // Anything else requires the easing.js plugin speed: 1000 // The amount of time, in milisecons, it takes to complete a transition });
$("#someDiv").slideto({ highlight_color: 'blue', highlight_duration: 'slow', slide_duration: 500 });
- http://webdesignerwall.com/tutorials/scrollto-posts-with-jquery [4]
- https://github.com/litera/jquery-scrollintoview
$("some_selector").scrollintoview({ duration: 2500, direction: "vertical", complete: function() { // highlight the element so user's focus gets where it needs to be } });
$(...).scrollTo( 'li:eq(15)', 1000, {offset: {top:-5, left:-30} });
$('a').smoothScroll(); $('#container a').smoothScroll(); $('#container a').smoothScroll({excludeWithin: ['.container2']}); exclude links if they are within a containing element: $('a').smoothScroll({exclude: ['.rough','#chunky']}); exclude links if they match certain conditions $('.backtotop').smoothScroll({offset: -100}); adjust where the scrolling stops $('a').smoothScroll({afterScroll: function() { alert('we made it!'); }}); add a callback function that is triggered after the scroll is complete
{ offset: 0, direction: 'top', // one of 'top' or 'left' scrollTarget: null, // only use if you want to override default behavior afterScroll: null, // function to be called after scrolling occurs. "this" is the triggering element easing: 'swing', speed: 400 }
Scroll with page
- http://css-tricks.com/scrollfollow-sidebar/
- http://stackoverflow.com/questions/2177983/how-to-make-div-follow-scrolling-smoothly-with-jquery
Scrolling and parallax
- http://joelb.me/scrollpath/ - define custom scroll paths
- http://markdalgleish.com/projects/stellar.js - not so good in chrome?
Injection
- DiceJS (dynamically injected css engine) is a jQuery extension that allows you to store your CSS in JavaScript objects to dynamically manipulate and inject as you please.
Forms
- http://harvesthq.github.com/chosen/ - A library for making long, unwieldy select boxes more user friendly, for jQuery and Prototype
Typography
- http://www.frequency-decoder.com/demo/slabText/ - scaling headline text
Time
- Timeago is a jQuery plugin that makes it easy to support automatically updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").]
Waypoints
Actions on certain areas of the page.
Video
Google Closure
- The Closure Library is a broad, well-tested, modular, and cross-browser JavaScript library. You can pull just what you need from a large set of reusable UI widgets and controls, and from lower-level utilities for DOM manipulation, server communication, animation, data structures, unit testing, rich-text editing, and more.
Baskbone.js
- Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.
Articles
- Step by step from jQuery to Backbone - Jul 23, 2012
- http://dailyjs.com/2012/07/19/mvstar-2/ Backbone.js: Hacker's Guide] - 19 Jul, 2012
- Putting some MVC meat into your app: Backbone.js
- How to build fast HTML5 mobile apps using backbone.js, zepto.js and trigger.io - March 2, 2012
- http://floatleft.com/notebook/backbone-has-made-me-a-better-programmer
- http://news.ycombinator.com/item?id=4434553
Docs
- Developing Backbone.js Applications - Welcome to my (in-progress) book about the Backbone.js framework for structuring JavaScript applications.
Related
- Backbone UI provides a simple way to represent your Backbone Models and Collections as UI components. The need to shuffle data in and out of your UI is replaced with simple data binding techniques. All components are skinnable with CSS, and will render consistently accross browsers.
- Recline.js - Building on Backbone, Recline supplies components and structure to data-heavy applications by providing a set of models (Dataset, Record/Row, Field) and views (Grid, Map, Graph etc).
- Btapp.js provides access to a browser plugin version of uTorrent/BitTorrent via a tree of Backbone Models and Collections. The intent of this project is to allow access to the extensive functionality of a torrent client, from web apps that are as simple as a single Backbone View.
- Chaplin is an architecture for JavaScript applications using the Backbone.js library. The code is derived from moviepilot.com, a large single-page application.
Frameworks
- http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks
- http://blog.stevensanderson.com/2012/08/01/rich-javascript-applications-the-seven-frameworks-throne-of-js-2012/
YUI
- YUI is a free, open source JavaScript and CSS framework for building richly interactive web applications.
CommonJS
- CommonJS - JavaScript spec does not define a standard library that is useful for building a broader range of applications. The CommonJS API will fill that gap by defining APIs that handle many common application needs, ultimately providing a standard library as rich as those of Python, Ruby and Java. The intention is that an application developer will be able to write an application using the CommonJS APIs and then run that application across different JavaScript interpreters and host environments.
Angular
- AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.
Other
- Prototype is a JavaScript Framework that aims to ease development of dynamic web applications. Featuring a unique, easy-to-use toolkit for class-driven development and the nicest Ajax library around, Prototype is quickly becoming the codebase of choice for web application developers everywhere.
- cujo is an architectural framework for next generation JavaScript applications. It encourages highly modular development, declarative application assembly, and embraces the asynchronous nature of JavaScript and its fusion of object-oriented and functional programming styles. cujo’s extensible architecture and use of industry standards allows it to work seamlessly with your current application framework -- and adapt easily to your next.
- curl (cujo resource loader) - A small, fast module and resource loader with dependency management. (AMD, CommonJS Modules/1.1, CSS, HTML, etc.)]
- Cappuccino is built on top of standard web technologies like JavaScript, and it implements most of the familiar APIs from GNUstep and Apple's Cocoa frameworks. When you program in Cappuccino, you don't need to concern yourself with the complexities of traditional web technologies like HTML, CSS, or even the DOM.
- Seed is a library and interpreter, dynamically bridging (through GObjectIntrospection) the WebKit JavaScriptCore engine, with the GNOME platform. Seed serves as something which enables you to write standalone applications in JavaScript, or easily enable your application to be extensible in JavaScript.
- Montage simplifies rich HTML5 application development by providing modular components, real-time two-way data binding, CommonJS dependency management, and more.
- Augment.js - Enables use of modern JavaScript by augmenting built in objects with the latest JavaScript methods. Never overrides any native implementations; it only adds what is missing.
- Enyo is an open source object-oriented JavaScript framework emphasizing encapsulation and modularity for mobile or web application.
Caching
- jStorage is a simple wrapper plugin for Prototype, MooTools and jQuery to cache data (string, numbers, objects, even XML nodes) on browser side. Note that functions, DOM nodes, host objects and such can not be saved.
jStorage was first developed under the name of DOMCached but since a lot of features were dropped to make it simpler (like the support for namespaces and such) it was renamed. DOMCached had separate files for working with Prototype and jQuery but jStorage can handle both in one go.
- locache.js is a simple framework to help you cache objects on the client-side. It's not a replacement for HTTP caching, and often that is a better idea. Rather it allows you to cache JavaScript objects ( anything that is JSON serialisable) for re-use or offline usage. You can optionally provide an expiration time for cached objects.
- AES.io offers online tools for secure data storage and collaboration. We use client-side encryption to ensure all information is safe - both private and shared.
--
Interface
- Create.js is a comprehensive web editing interface for Content Management Systems. It is designed to provide a modern, fully browser-based HTML5 environment for managing content. Create can be adapted to work on almost any content management backend.
- pjax loads html from your server into the current page without a full page load. It's ajax with real permalinks, page titles, and a working back button that fully degrades.
- djax - Dynamic pjax, responds to layout changes across requested pages
- skrollr - Parallax* scrolling lib with zero dependencies (seriously, you don't need jQuery) in just under 5.5k minified (2.6k gzipped). No JavaScript skills needed.
- Keep in View - Don't allow elements to scroll out of view by having them stick to the top or bottom of a window.
- sizzle - A pure-JavaScript CSS selector engine designed to be easily dropped in to a host library.
- Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you can achieve it simply and easily with this library. Uses the SVG W3C Recommendation and VML as a base for creating graphics. This means every graphical object you create is also a DOM object, so you can attach JavaScript event handlers or modify them later.
- Donatello is a pure-CSS drawing library for the browser. The API is inspired in part by Raphael.js. All graphical elements are rendered using HTML DOM and CSS.
- http://prismjs.com/
- https://github.com/phoboslab/jQuery-JSH
- http://softwaremaniacs.org/soft/highlight/en/
- http://craig.is/making/rainbows
- http://code.google.com/p/google-code-prettify/
- Asirra (Animal Species Image Recognition for Restricting Access) is a HIP that works by asking users to identify photographs of cats and dogs. This task is difficult for computers, but our user studies have shown that people can accomplish it quickly and accurately. Many even think it's fun!