Fact-checked by Grok 2 weeks ago

MooTools

MooTools (My Object-Oriented Tools) is a compact, modular, and lightweight object-oriented designed for intermediate to advanced developers, enabling the creation of powerful, flexible, and cross-browser compatible code through elegant and utilities. Developed by Valerio Proietti and first released in September 2006, MooTools drew inspiration from frameworks like and ' base2, quickly gaining popularity for its emphasis on code extensibility and developer productivity. Released under the open-source , it consists of two main distributions: MooTools Core, which provides essential features such as a robust system with , DOM selectors and (e.g., via the $$ function and Element ), event handling, and Ajax support through the Request ; and MooTools More, an optional extension adding advanced utilities like drag-and-drop, sortable lists, and enhanced form handling. The framework's modular structure allows developers to include only necessary components, resulting in smaller file sizes and optimized performance for web applications. Major versions evolved from 1.0 in to 1.6.0 in January 2016, which introduced features like Class.Thenable for promise-like and was the last version to support legacy versions below 11, marking the last official release. While MooTools influenced early development practices and remains available via CDNs for legacy projects, its active maintenance has ceased, with modern shifting toward frameworks like and .

Introduction

Overview

MooTools, short for My Object-Oriented Tools, is a lightweight, object-oriented framework designed for intermediate to advanced developers. Released under the permissive , it provides a collection of modular utilities that enable the creation of interactive web applications through features such as DOM manipulation, event handling, requests, animations, and general-purpose tools. The framework emphasizes writing powerful, flexible, and cross-browser compatible code via its coherent and well-documented , allowing developers to extend native functionality efficiently. A key aspect of MooTools is its customizable download system, which permits users to select and bundle only the required modules and dependencies, resulting in optimized, implementations tailored to specific project needs. This supports extensibility, making MooTools suitable for building complex, maintainable applications without unnecessary overhead.

Key Principles

MooTools is built around several principles that emphasize developer productivity and code elegance. Central to its is chainability, which enables a fluent where methods return the original object instance, allowing multiple operations to be performed in a single, readable expression. This approach reduces and improves code flow, as seen in DOM manipulations where elements can be selected, modified, and positioned sequentially without intermediate variables. For instance, the following code demonstrates chaining Element methods: $('myElement').set('text', 'Hello').addClass('active').inject($('container'));. Such design fosters intuitive scripting while maintaining performance, as each method in classes like , , and is engineered to return this for seamless continuation. Another foundational tenet is extensibility, which permits developers to augment the framework without altering its core source. MooTools achieves this through prototype extension via the implement method and robust class inheritance using Extends and Implements. Developers can add custom methods to existing classes, such as enhancing the prototype with domain-specific utilities: Array.implement({ customFilter: function() { /* logic */ } });.. Inheritance further supports this by allowing new classes to derive from base ones, invoking parent methods via this.parent() when needed, as in var Cat = [new Class](/page/New_class)({ Extends: Animal, initialize: function(name) { this.parent(name); } });.. This ensures the framework remains adaptable to diverse project requirements while preserving its lightweight footprint. The framework adheres to the by promoting reusable code patterns through its object-oriented structure and modular utilities. Inheritance and implementation mechanisms minimize duplication, enabling shared behaviors across classes without redundant definitions. For example, extending a base class reuses initialization logic, reducing boilerplate in subclasses.. Utilities like prototype implementations further enforce DRY by centralizing common operations, such as array manipulations that can be applied globally once defined. Finally, cross-browser normalization abstracts inconsistencies in DOM handling and event propagation across browsers, providing a unified interface for reliable code execution. The Browser object detects capabilities like support or native parsing via Browser.Features, enabling conditional fallbacks.. It also normalizes events and requests, such as through Browser.Request for consistent handling, ensuring scripts behave predictably in environments from + to modern browsers without manual vendor-specific checks.. This principle underpins MooTools' compatibility, allowing developers to focus on functionality rather than browser quirks.

History and Development

Origins and Early Influences

MooTools was created by Italian developer Valerio Proietti in 2005 as an evolution of his earlier Moo.fx library, which provided animation and effects capabilities as a lightweight add-on to the popular Prototype.js framework. Moo.fx itself debuted in October 2005, quickly gaining traction for its compact implementation of smooth transitions and visual enhancements in web development. The framework's initial release, MooTools 1.0, arrived on September 8, 2006, marking Proietti's expansion from specialized effects into a broader toolkit. This version integrated Moo.fx's core animation features while introducing a more comprehensive structure for handling DOM manipulation, events, and utilities. MooTools drew key influences from established JavaScript libraries of the era, particularly .js for its scripting utilities and DOM handling approaches, and ' base2 library for advanced enhancements that simulated classical inheritance in JavaScript. These inspirations allowed Proietti to build upon proven patterns for extending native JavaScript objects without reinventing foundational elements. The early development of MooTools was motivated by the burgeoning popularity of -driven web applications in the mid-2000s, where developers sought a compact and modular alternative to bulkier frameworks like , enabling more efficient creation of interactive, dynamic sites with minimal overhead. This focus on lightness—evident in the 20KB compressed size of the initial release, which included support and drag-and-drop functionality—positioned MooTools as a tool for intermediate to advanced developers aiming for reusable, extensible code during the revolution.

Release Timeline and Milestones

MooTools evolved through a series of major version releases that refined its core functionality, modularity, and browser compatibility, with each iteration building on community feedback and technical advancements. Version 1.1, released in 2007, enhanced overall , allowing developers to create reusable and extensible code structures more effectively. Subsequent minor updates, such as 1.1.1 in June 2007, addressed memory leaks and bugs to stabilize the framework. In 2008, Version 1.2 brought significant enhancements to the module for animations and effects, rewriting it for better optimization and a cleaner , including new methods like pause and resume. The Request module also saw improvements for handling, while community-driven expansions via the repository expanded plugin availability, fostering greater ecosystem growth. Version 1.3, released in late 2010, focused on better support through cross-browser event unification and introduced performance optimizations, notably via the new Slick selector engine for faster DOM querying. Versions 1.4 through 1.5, spanning 2011 to 2014, included refinements to native extensions like and methods, along with improved and document handling for more robust environmental interactions. The stable release of Version 1.6.0 on January 14, 2016, marked the final major update, featuring bug fixes, ES5 compatibility enhancements for the system, and alignments with emerging standards like Promise-style flows via Class.Thenable. Following this, MooTools shifted to , with no further official major releases; the project transitioned to community-driven forks and contributions via its repository.

Design Philosophy

Modularity and Reusability

MooTools emphasizes modularity through its build system, which enables developers to create customized downloads by selecting only the required components from a comprehensive set of . This online allows users to include essentials like the module for foundational functionality or expand to additional ones such as Array, Function, and Element, resulting in tailored JavaScript files that avoid unnecessary overhead. For instance, the minimal download comprises just the basic , while the full build incorporates all 29 available for complete feature access. The framework organizes its components into distinct to enhance reusability and maintainability. The namespace houses essential building blocks, including native extensions and the system, providing the minimal viable framework for most applications. Complementing this, the More namespace offers optional extensions, such as advanced widgets and utilities like Request. for cross-domain requests, which can be added as needed without altering the base structure. This separation ensures that developers can incrementally build upon the , fostering a plugin-like where extensions integrate seamlessly. Reusability is further amplified by MooTools' native extension mechanism, which permits the safe addition of methods to built-in objects like and . For example, developers can extend .prototype with custom methods such as sum() to compute totals, while taking care to avoid conflicts with other code, though these extensions modify global prototypes. This approach enriches native types—adding utilities to , Number, , and others—while preserving compatibility with vanilla and other libraries through careful prototype management. These modular and reusable elements collectively reduce by allowing selective inclusion, thereby improving page load times and performance in resource-constrained environments. Additionally, the design supports robust plugin development, as seen in the More repository, enabling community contributions that extend functionality without modifications.

Object-Oriented Approach

MooTools implements a class-based (OOP) system in through its Class module, which serves as the foundation for creating reusable, extensible classes. This module enables developers to define classes with constructors, methods, and properties in a structured manner, simulating traditional OOP paradigms on top of JavaScript's prototypal model. By using the new Class() factory function, classes are constructed as functions with automatically configured prototypes, providing a more intuitive syntax compared to native JavaScript's manual prototype manipulation. The module supports via the Extends property, allowing a new to inherit all and from a while overriding or extending them as needed. When defining a subclass, Extends must be the first in the definition object, and it establishes a chain where the child class's points to the 's instance. To invoke a 's overridden , developers use this.parent(arguments) within the child's , ensuring proper super- calls without direct reference to the constructor. This approach effectively simulates classical , making it easier to build hierarchical structures. For polymorphism and interface-like behavior, MooTools provides the Implements property, which copies methods and properties from one or more specified classes (or mixins) directly into the target class's prototype without establishing an inheritance chain. This is particularly useful for adding cross-cutting concerns, such as event handling or configuration management, to classes. For instance, implementing the Events mixin adds methods like addEvent, fireEvent, and removeEvent to the class, enabling event-driven programming where instances can emit and respond to custom events. Similarly, implementing the Options mixin facilitates configurable instances by merging user-provided options with class defaults in the constructor, with 'on'-prefixed options automatically registering as events if they are functions. A representative example of defining a class with these features is as follows:
javascript
var MyClass = new Class({
    Implements: [Events, Options],
    options: {
        name: 'Default',
        onComplete: function() {}
    },
    initialize: function(options) {
        this.setOptions(options); // Merges user options with defaults
    },
    myMethod: function() {
        // Method implementation
        this.fireEvent('complete'); // Triggers event
    }
});
This creates a class instance configurable via options passed to initialize, with built-in event support for polymorphism in event responses. Unlike native JavaScript, where classes require explicit constructor functions and prototype assignments (e.g., function MyClass() {} followed by MyClass.prototype.method = function() {}), MooTools' Class module augments the process by extending Function with utility methods like implement and extend, streamlining prototype modifications and promoting cleaner, more readable code.

Core Components and Features

Essential Modules

The essential modules of MooTools form the foundational layer of the framework, providing core utilities for extending native types, handling browser interactions, and manipulating the DOM. The Core Builder encompasses these modules, allowing developers to include only necessary components for lightweight builds. At its heart, the module supplies fundamental functions such as typeOf for determining object types and instanceOf for inheritance checks, along with the Native base for extending JavaScript primitives. The Natives extensions enhance built-in JavaScript objects with practical methods to improve code efficiency. For Array, it adds prototypes like each for iteration, contains for membership checks, and erase for removal, enabling more fluent array operations without custom loops. The Function native includes utilities such as bind for context binding, pass for partial application, and delay for timed execution, facilitating functional programming patterns. Similarly, Number gains methods like limit for clamping values, round for precision control, and times for repetition, while String provides camelCase for formatting, capitalize for text manipulation, and test for regular expression matching, streamlining common string tasks. The module abstracts global objects, including Window and Document, to handle environment-specific features consistently across browsers. Window offers methods for detecting engine properties (e.g., via a browser hash) and managing events like resizing or scrolling, while Document supports initialization and loading abstractions, such as the domready event that fires when the DOM is fully parsed, ensuring scripts execute only after elements are available. These abstractions normalize differences in browser implementations, promoting cross-compatibility without manual vendor checks. The module implements a robust object-oriented with support for , mixins, and traits, enabling developers to define reusable classes via new Class({ Implements: [Options], ... }). This underpins the framework's extensibility, allowing custom classes to integrate seamlessly with core types like . serves as the primary interface for DOM querying and manipulation, extending HTML elements with chainable methods for seamless interaction. Key functionalities include get for retrieving attributes or s (e.g., element.get('style')), set for assigning properties like content or CSS (e.g., element.set('html', '<div>content</div>')), and addEvent for attaching listeners (e.g., element.addEvent('click', function(){})). This module also integrates with the dollar functions $ for single-element selection by and $$ for multiple elements, enabling concise DOM access. Events provides a unified system for handling DOM events across browsers, abstracting inconsistencies in event objects and propagation. The Event type normalizes properties like target and relatedTarget, while Element.Event adds methods such as addEvent for binding handlers and removeEvent for cleanup, supporting both direct attachment and removal with exact function references. Event delegation is facilitated through the Element.Delegation extension, allowing efficient binding to parent elements for dynamic child events, reducing listener overhead. Selectors powers advanced DOM querying using a CSS3-compatible engine based on Slick, enabling complex selections without native browser limitations. The $$ function queries the entire document for matches (e.g., $$('div.class')), while getElements and getElement target subsets within a parent (e.g., parent.getElements('input[type=checkbox]')), supporting operators like =, *=, and pseudos such as :nth-child or :contains. This module underpins Element's querying capabilities, ensuring robust and performant element retrieval. The module provides animation capabilities through classes like Fx.Tween and Fx.Morph, enabling smooth transitions for CSS properties. Fx.Tween handles single-property animations, such as changing height or opacity over time. For example, var myFx = new Fx.Tween('myElement', {duration: 'long', property: 'height'}); myFx.start(40, 100); animates the element's height from 40 to 100 pixels. Options include duration (e.g., 'short', 'long') and transition (e.g., 'quad:out') for easing. Fx.Morph extends this to multiple properties simultaneously, such as background color and width, ideal for complex effects. Both inherit from the Fx base for shared controls like pausing. For network operations, the Request class in Core offers AJAX handling, with Request.JSON extending it for JSON-specific workflows. Request.JSON automatically parses responses using JSON.decode for security. An example is var jsonRequest = new Request.JSON({url: 'data.php', onSuccess: function(obj){ alert(obj.value); }}).get({param: 'value'});, where onSuccess receives the parsed object. Options like urlEncoded and noCache support queuing, and events like onFailure manage errors. Class.Extras enhances the Class system with Chain and Events mixins for managing sequences and callbacks. Chain links functions for sequential execution, e.g., var chain = new Chain(); chain.chain(function(){ /* step 1 */ }, function(){ /* step 2 */ }).callChain();, with clearChain() for interruption. Events enables pub-sub patterns, e.g., addEvent('complete', callback), used in Fx for post-animation actions. Implemented via Implements: [Chain, Events], it promotes event-driven code.

Advanced Extensions

MooTools More provides optional extensions that build on Core to add specialized functionalities for interactive UI components and dynamic behaviors, such as drag-and-drop and accessibility helpers. These modules introduce higher-level abstractions while relying on Core elements like and . Drag and Drop functionalities in MooTools More empower interactive manipulations, with Sortables providing a high-level for reordering lists via gestures. Instantiated as new Sortables('ul.sortable', {clone: true, opacity: 0.5});, it attaches drag handlers to list items, supporting features like container boundaries, snap-to-grid, and cross-list sorting when multiple selectors are passed. Key methods include addItems(elements) for dynamic additions and serialize() to retrieve the updated order as an array, while such as onSort fire during rearrangements for real-time feedback. For resizable elements, the core class can be extended with modes like 'vertical' or combined with for smooth snapping, enabling behaviors like adjustable panels without external libraries. These modules abstract low-level into intuitive APIs, fostering sortable interfaces in applications like task managers. UI helpers like and Scroller simplify common enhancements for and . creates tooltips from element attributes, such as and rel, with customizable offsets and delays; for example, new Tips('.tip', {offset: {x: 16, y: 16}, fixed: true}); displays hover tips that follow the cursor, supporting via an id option for compatibility. Methods like attach() and detach() allow runtime management, and events onShow/onHide customize visibility transitions. Scroller, conversely, automates overflow scrolling based on proximity to edges, ideal for large canvases or windows: new Scroller('div.scrollable', {area: 20, [velocity](/page/Velocity): 1}); triggers start() on mouse enter, with onChange(x, y) for adjustments. Together, these extensions elevate static pages into responsive experiences, leveraging MooTools' event system for efficient, lightweight implementations.

Implementation and Compatibility

Browser Support

MooTools, as of version 1.6.0, provides broad compatibility with major browsers from the mid-2000s onward, specifically supporting and later, and later, 1 and later, 3 and later, and 9 and later. This focus on older environments ensured accessibility during an era when legacy browsers remained prevalent in enterprise and consumer use. The framework's object facilitates detection of engine, version, and platform details, enabling conditional code execution for optimal performance across these targets. To address inconsistencies in 3 and early ES5 implementations, particularly in older versions of , MooTools incorporates polyfills and shims via its Native module. This extends core types—such as , , and —with standardized methods like each, map, filter, and indexOf, which were absent or inconsistent in ES3 environments. Additionally, the Utilities.JSON class provides decode and encode methods, utilizing safe parsing (avoiding eval where possible) to normalize handling in browsers lacking native support, such as IE6 and IE7. These enhancements promote consistent behavior without requiring external libraries, though they may introduce minor overhead in supported environments. While MooTools excels in ES3/ES5 normalization, it offers only partial support for very old browsers like (versions prior to 8), where core DOM and event handling may fail due to fundamental differences. The framework does not natively support ES6+ features, including modules, as its development predates the ES2015 standard, limiting its use in modern module-based workflows without additional transpilation. Cross-browser consistency is maintained through an integrated testing suite, utilizing tools like , Karma, and to run unit tests across configured browsers, including IE, Edge, Firefox, Safari, Chrome, Opera, and PhantomJS. This automated verification ensures that polyfills and shims function reliably, with results configurable via a browsers.json manifest for targeted validation.

Practical Usage Patterns

To integrate MooTools into a web project, developers typically include the library via a script tag in the HTML head, such as <script type="text/javascript" src="mootools-core-1.6-full.js"></script>, where the source file is obtained from the official builder for customized modular builds. Initialization occurs within the domready event to ensure DOM elements are available before manipulation, as in window.addEvent('domready', function(){ /* initialization code */ });. Common patterns in MooTools emphasize chaining methods for efficient DOM updates, such as $('myElement').addClass('highlight').setStyle('color', '#ff0000');, which applies a class and style in a single fluent operation. Event binding follows a similar concise syntax, for example, $('button').addEvent('click', function(event){ event.stop(); /* handle click */ });, allowing delegation of user interactions without inline handlers. Simple animations leverage the Fx module, like new Fx.Tween('element-id', {duration: 1000}).start('opacity', 0, 1);, which smoothly transitions an element's opacity over one second. Best practices include using the MooTools Core Builder to select and load only required modules, minimizing and enhancing for modular applications. To avoid global namespace pollution, developers encapsulate code within MooTools classes rather than relying on global variables, promoting maintainable structures. For integration with other libraries like , opt for the nocompat build, which removes conflicting globals such as $ and $$. A basic slider can be implemented using .Tween for horizontal movement and for selection, as shown in this three-step example:
  1. Select and prepare elements (assuming with a container, slide box, and navigation buttons):
    javascript
    var slideBox = $('slide_box');  // The element to slide
    var prevBtn = $('prev_button');
    var nextBtn = $('next_button');
  2. Initialize the .Tween instance with options for smooth transition:
    javascript
    var slideFx = new [Fx](/page/F/X).Tween(slideBox, {
        duration: 500,
        transition: 'sine:out'
    });
  3. Bind events to trigger sliding (e.g., move left by 300px on next, right on previous):
    javascript
    nextBtn.addEvent('click', function() {
        slideFx.start('left', '+300px');
    });
    prevBtn.addEvent('click', function() {
        slideFx.start('left', '-300px');
    });
This creates a responsive by animating the left property, with events chained to navigation elements for user control.

Legacy and Modern Context

MooTools experienced its peak adoption between 2008 and 2012, during which it powered a significant portion of dynamic applications, particularly within content management systems like and various media websites. Historical data from web technology surveys indicate that MooTools was used by approximately 5–10% of the top websites during this period, reflecting its popularity for enhancing user interfaces with modular utilities. Adoption began to decline sharply after 2012, dropping to less than 0.5% of websites by , largely overshadowed by the rise of lighter-weight libraries like and subsequent full-fledged frameworks such as and , which offered more streamlined approaches to building complex single-page applications. The last major official release, version 1.6.0, occurred in January 2016, after which stalled, contributing to its fading relevance amid evolving web standards. As of November 2025, MooTools is used by 0.5% of all websites and maintains minimal active usage, primarily in legacy systems and older installations of platforms like , where it persists for . While the official repositories on show no updates since 2016 and the project remains unmaintained with no prominent community-driven forks providing ongoing maintenance, widespread migration to modern alternatives has rendered it largely obsolete. Key factors in this decline include the standardization of modern features in ES6 and later versions, which diminished the need for MooTools' custom extensions, alongside the adoption of module bundlers like that favored ecosystem-compatible tools over standalone s.

Influence and Alternatives

MooTools significantly influenced early development by introducing a modular, object-oriented that emphasized reusability and extensibility for intermediate to advanced developers. Its Class system and chainable methods for DOM manipulation and effects set a precedent for structured client-side scripting, inspiring patterns in subsequent libraries focused on elegant design. This OOP-centric approach helped bridge the gap between procedural and more robust, reusable codebases in the mid-2000s web ecosystem. In legacy contexts, MooTools persists in older enterprise applications and systems, particularly , where it serves as the bundled for extensions and core functionality. Many 2.5 and 3.x installations still rely on it for animations, requests, and UI interactions, though efforts to disable or replace it have been common to resolve conflicts with other scripts. Its use in these environments underscores its durability in maintained legacy codebases, even as newer versions of (4 and later) have removed MooTools in favor of vanilla and optional . Contemporary alternatives to MooTools prioritize simplicity, performance, and integration with modern web standards. offers a lightweight option for DOM traversal and events with its concise syntax, making it suitable for straightforward enhancements without heavy overhead. For complex user interfaces, and provide component-based architectures that enable declarative rendering and , supplanting MooTools' imperative style in single-page applications. Native ES6 , with built-in classes, modules, and async features, serves as a direct replacement for many MooTools utilities, allowing developers to avoid external dependencies altogether. Migration from MooTools to ES6 typically involves refactoring classes and methods to leverage native syntax, such as converting MooTools' Class constructs to ES6 class declarations and replacing custom extensions with standard APIs. This process, often automated with tools like transpilers, preserves OOP patterns while improving browser compatibility and reducing bundle size. Despite low current adoption, MooTools remains a useful reference for understanding foundational OOP principles in JavaScript, aiding developers transitioning to frameworks like Backbone.js or modern vanilla implementations.

References

  1. [1]
    MooTools
    MooTools is a collection of JavaScript utilities designed for the intermediate to advanced JavaScript developer.Core · MooTools More · MooTools More Documentation · Blog
  2. [2]
    MooTools
    History. Valerio Proietti first authored the framework and released it in September 2006 taking as his inspiration Prototype and Dean Edward's base2. MooTools ...
  3. [3]
  4. [4]
  5. [5]
    What is MooTools? - IONOS
    Jul 13, 2023 · The MooTools framework is a compact collection of JavaScript tools arranged in a modular structure for advanced and professional JavaScript developers.
  6. [6]
    MooTools Blog: 1.6.0 is out!
    Jan 14, 2016 · Today marks the release of MooTools Core and More versions 1.6.0. This is a minor revision that delivers a number of bug fixes as well as the introduction of ...
  7. [7]
    Getting Started with MooTools - SitePoint
    Nov 6, 2024 · MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. It allows ...
  8. [8]
    mootools - Libraries - cdnjs - The #1 free and open source CDN built ...
    MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer. 3k. GitHub · MIT licensed.<|control11|><|separator|>
  9. [9]
    MooTools Core
    MooTools is a compact, modular, Object-Oriented JavaScript framework designed for the intermediate to advanced JavaScript developer.
  10. [10]
    MooTools Core Builder
    Download your customized version. Choose which modules you want to use. File, Provides, Description. Core, Core, MooTools, Type, typeOf, instanceOf, Native ...Missing: system | Show results with:system
  11. [11]
    MooTools More Builder
    Download your customized version. Choose which modules you want to use. File, Provides, Description. More, MooTools.More, MooTools More. Chain.Wait, Chain.
  12. [12]
    MooTools Core Documentation
    ### Summary: Methods Returning Element for Chaining in MooTools 1.6.0 Element
  13. [13]
    MooTools Core Documentation
    ### Summary of Extensibility, Adding Custom Methods and Classes, Inheritance in MooTools Class (1.6.0)
  14. [14]
    Browser.version - MooTools Core Documentation
    A function to parse a user agent string to an object, intended for informational or statistical purposes. If also passed a platform string, it will use that ...Missing: design principles DRY cross-
  15. [15]
    Mootools JavaScript Library Released - Snook.ca
    Sep 10, 2006 · The folks behind the popular moo.fx have gone and released their own JavaScript library called mootools, attempting to take the best of ...Missing: origins | Show results with:origins
  16. [16]
    MooTools version 1.11 released
    Jun 4, 2007 · Today we released MooTools version 1.11. In this release we fixed a bunch of memory leaks issues, as well as some minor bugs around.Missing: features | Show results with:features
  17. [17]
    MooTools 1.2 beta 1
    Nov 14, 2007 · Some parts of MooTools 1.2 aren't immediately compatible with those found in MooTools 1.1. In the downloads page, you'll find a box that ...A Little Help, Please! · Element · Core
  18. [18]
    MooTools 1.2.1 Released
    Oct 16, 2008 · MooTools 1.2 will be the last version of MooTools to support Safari 2 and Opera 9.5. These browsers have been advancing at a tremendous pace, ...Missing: history timeline
  19. [19]
    MooTools Core 1.3 Stable and MooTools More 1.3RC
    Oct 11, 2010 · Slick is a new official MooTools project developed by Thomas Aylott, Fabio Costa and Valerio Proietti with help from a vast assortment of ...Missing: 1.0 | Show results with:1.0
  20. [20]
    MooTools 1.4.0
    Sep 10, 2011 · As of today a new version of MooTools is available. This includes MooTools Core and MooTools More. We've communicated a lot about changes ...Event Delegation · Mootools More · Bugs
  21. [21]
    MooTools Core Repository - GitHub
    This repository is for MooTools developers; not users. All users should download MooTools from MooTools.net
  22. [22]
    MooTools More
    Welcome to MooTools More, the official plugin repository for the MooTools JavaScript Framework. More includes extra features to Core classes and UI.Missing: extensibility | Show results with:extensibility
  23. [23]
    MooTools Blog: Get friendly with the Natives
    Mar 24, 2010 · Flippin' Sweet Array methods ... This is all made possible by extending the Array native, see? Array.implement({ sum: function(start,length){ var ...
  24. [24]
  25. [25]
  26. [26]
    Types.Function - MooTools Core Documentation
    Implements a method to the prototype of the function. Syntax: myFunction.implement(key, value); // Or myFunction.implement(object);. Arguments: key - (string) ...Missing: augments | Show results with:augments
  27. [27]
    MooTools Core Documentation
    MooTools extends native types, like string, array or number to make them even more useful. The types MooTools uses are: String; Array; Number; Function; RegExp ...Type: Core · Function: Typeof · Deprecated Functions
  28. [28]
    Native.Array - MooTools Core Documentation
    fn - (function) The function which should be executed on each item in the array. This function is passed the item and its index in the array.
  29. [29]
    Native.Number - MooTools Core Documentation
    Number Method: toInt​​ Returns this number as another number with the passed in base. Useful because toInt must work on both Strings and Numbers.
  30. [30]
    Native.String - MooTools Core Documentation
    Substitutes keywords in a string using an object/array. Removes undefined keywords and ignores escaped keywords. Syntax: myString.substitute(object[, regexp]); ...
  31. [31]
    MooTools Core Documentation
    Contains the window Event 'domready', which will execute when the DOM has loaded. To ensure that DOM elements exist when the code attempting to access them ...Missing: module | Show results with:module
  32. [32]
    Utilities.DOMReady - MooTools Core Documentation
    Contains the window Event 'domready', which executes when the DOM is loaded. To ensure that DOM elements exist when the code attempts to access them is ...Missing: module | Show results with:module
  33. [33]
    Element - MooTools Core Documentation
    Because MooTools detects if an element needs to be extended or not, this function may be called on the same Element many times with no ill effects.Missing: module | Show results with:module
  34. [34]
    Element.Event - MooTools Core Documentation
    This is an object with all known DOM event types, like click, mouseover, load, etc. Each event type has a value, possible values are 0 ( undefined , null ), 1 ...Missing: modules Selectors
  35. [35]
    Element.Delegation - MooTools Core Documentation
    Delegates the methods of an element's children to the parent element for greater efficiency when a selector is provided. Otherwise it will work like addEvent.Missing: module | Show results with:module
  36. [36]
    MooTools Core Documentation
    Gets all the elements within an element that match the given selector. Syntax: var myElements = myElement.getElements(selector);. Arguments: selector ...Missing: essential modules
  37. [37]
    MooTools More Documentation
    MooTools More contains numerous plugins to make development easier and more feature rich. You can find the repository for MooTools More on GitHub.
  38. [38]
    Fx.Tween - MooTools Core Documentation
    The Tween effect, used to transition any CSS property from one value to another. Syntax: var myFx = new Fx.Tween(element, [, options]); ...
  39. [39]
    Request.JSON - MooTools Core Documentation
    Wrapped Request with automated receiving of JavaScript Objects in JSON Format. Extends: Request. Syntax: var myJSONRemote = new Request.JSON([options]); ...
  40. [40]
    addEvent - MooTools Core Documentation
    Class: Chain. Back to Top. A Utility Class which executes functions one after another, with each function firing after completion of the previous. Its methods ...
  41. [41]
    MooTools More Documentation
    Creates an interface for drag and drop sorting of a list or lists. Demo ... To enable sorting between lists, one or more lists or id's must be passed using an ...
  42. [42]
    MooTools More Documentation
    The tooltip element inside the tooltip container above will have 'tip' as classname. The title will have as classname: tip-title; The text will have as ...
  43. [43]
    Versions - MooTools More Documentation
    The Scroller is a Class to scroll any element with an overflow (including the window) when the mouse cursor reaches certain boundaries of that element.Missing: advanced extensions
  44. [44]
    Discovering MooTools - CODE Magazine
    Mar 31, 2011 · MooTools is an object-oriented JavaScript framework aimed at experienced web developers who need to write effective code quickly, ...
  45. [45]
    Utilities.JSON - MooTools Core Documentation
    Converts a JSON string into a JavaScript object. Syntax: var object = JSON.decode(string[, secure]); Arguments:Missing: shim older
  46. [46]
    MooTools Tween in percent - Stack Overflow
    Is it possible to tween an element in percent in MooTools? var slide = new Fx.Tween($('slide_box')); $('next_slide').addEvent('click',function(){ slide ...
  47. [47]
    Usage statistics and market share of MooTools for websites - W3Techs
    This diagram shows the historical trend in the percentage of websites using MooTools. Our dedicated trend survey shows more JavaScript libraries usage and ...Missing: adoption | Show results with:adoption
  48. [48]
    MooTools Usage Statistics - BuiltWith Trends
    Get a list of 445,217 websites using MooTools which includes location information, hosting data and contact details. The list includes 413,659 live websites and ...
  49. [49]
    Does ES6 make JavaScript frameworks obsolete? - Stack Overflow
    Nov 10, 2021 · I think two of the key features of ES6 (modules and classes, specifically) will make many of the most popular frameworks obsolete.
  50. [50]
    An interview with MooTools contributors - Preethi Kasireddy
    Jun 7, 2017 · One of the guiding principles was that code built on top of MooTools should be readable, easy to understand and easy to extend. We had a very ...Missing: key DRY
  51. [51]
    MooTools vs. Other Frameworks » The MooTorial
    Oct 27, 2008 · Some focus on very different philosophies. MooTools and Prototype both believe strongly in altering the prototypes of native elements (String, ...
  52. [52]
    MooTools and Joomla, how does it work? - Stack Overflow
    Jun 19, 2010 · I've heard that mootools is installed with Joomla and you can use it from within any extension you build without having to include it again ...
  53. [53]
    Joomla 2.5 - Disable mootools - InMotion Hosting
    Aug 16, 2021 · After several months of testing Joomla 2.5 and various components, we have found that if you disable mootools you may break a lot of features.Missing: apps | Show results with:apps
  54. [54]
    Mootools still in use? - Google Groups
    I read some time ago Mootools is deprecated and (should be) no longer used in Joomla 3. Also also read that Joomla should go completely vanilla JS.Missing: adoption media 2008-2012
  55. [55]
    What are some alternatives to MooTools? - StackShare
    Alternatives to MooTools. jQuery, AngularJS, React, Dojo, and Vue.js are the most popular alternatives and competitors to MooTools.
  56. [56]
    Migration from MooTools to ECMAScript 6 - Google Groups
    I'm a long time MooTools user who finally feel that I can start migration from my MooTools based client-side code to ES6.Missing: Native implements ES5 browsers
  57. [57]
    MooTools JavaScript Framework | e-Zest
    MooTools is a compact, lightweight and object-oriented JavaScript framework which is gaining popularity. It allows to write powerful, flexible, and cross- ...