From Wikipedia, the free encyclopedia

Jump to: navigation, search
Developed by The MooTools Dev Team
Latest release 1.2.1 / 2008-10-16; 173 days ago
Written in JavaScript
Type Ajax framework / JavaScript Framework
License MIT License

MooTools is an open source, lightweight, modular object-oriented programming JavaScript web application framework released under the MIT License. The goal of the software is to provide a means for intermediate to advanced web developers to write cross-browser JavaScript in an elegant, flexible, and efficient fashion. The MooTools JavaScript framework includes built-in functions for manipulation of CSS, DOM elements, native JavaScript objects, Ajax requests, and more. MooTools also provides a detailed, coherent API[1] to increase speed of development.


[edit] Benefits

MooTools aims to provide the user with a number of advantages over native JavaScript. Advantages include:

  • An extensible and modular framework where the developer can choose which components to use.[2]
  • MooTools follows object-oriented practices and the DRY principle.[3]
  • An advanced effects component, with optimized transitions such as easing equations used by many Flash developers.[4]
  • Enhancements to the DOM, enabling developers to easily add, modify, select, and delete DOM elements.[5]

[edit] Components

MooTools includes a number of components but not all need to be loaded for each application. Some of the component categories are:

  • Core: a collection of utility functions that all the other components require.[6]
  • Class is MooTools base library for Class object instantiation.[7]
  • Natives: a collection of JavaScript Native Object enhancements. The Natives add functionality, compatibility and new methods that simplify coding.
  • Element contains a slew of enhancements and compatibility to the HTML Element object.[8]
  • Fx is an advanced effects API to animate Elements.[9]
  • Request: provides XHR interface, Cookie, JSON, and HTML retrieval specific tools for developers to exploit.[10]
  • Window: provides a cross-browser interface to the Client specific information, for instance window size[11].

[edit] Browser Compatibility

MooTools is compatible and tested with[12]:

[edit] Object-oriented Programming

MooTools contains a robust Class creation and inheritance system that resembles most Object-oriented programming languages. For example, the following is MooTools' equivalent of the examples in Wikipedia's polymorphism page:

 var Animal = new Class({
    initialize: function(name){ = name;
 var Cat = new Class({ 
    Extends: Animal,
    talk: function(){
        return 'Meow!';
 var Dog = new Class({
    Extends: Animal,
    talk: function(){
        return 'Arf! Arf';
 var Animals = {
    a: new Cat('Missy'),
    b: new Cat('Mr. Bojangles'),
    c: new Dog('Lassie')
 for(var animal in Animals) alert( + ': ' +;
 // alerts the following:
 // Missy: Meow!
 // Mr. Bojangles: Meow!
 // Lassie: Arf! Arf!

[edit] Related

[edit] See also

[edit] References

[edit] External links

Personal tools