Maqetta is an open source project hosted by the Dojo Foundation

JavaScript Libraries, Widgets and Themes

Maqetta provides deep authoring support for JavaScript libraries, widgets and CSS themes.

The current release focuses mostly on the Dojo JavaScript library, but the code base has been architected to be independent of particular JavaScript libraries, particular widget collections or particular CSS themes.

  • JavaScript libraries - Maqetta’s architecture is designed to support arbitrary JavaScript libraries. The goal is that site administrators and users can set up their Maqetta environment to support their preferred JavaScript libraries; however, not all of the extensibility hooks have been implemented yet, which means that to use a particular JavaScript library (i.e., other than Dojo), currently you’ll need a developer who will pull down the Maqetta source code and change the source code.
  • Widget libraries - Maqetta’s architecture is designed to support arbitrary widget libraries. (Note: widget libraries are often packaged as a major component of a particular JavaScript library. For example, the Dijit widget library is a major component of the Dojo JavaScript toolkit.) The goal is that site administrators and users can set up their Maqetta environment to support their preferred widget libraries; however, not all of the extensibility hooks have been implemented yet, which means that to use a particular widget library (i.e., other than Dojo), currently you’ll need a developer who will pull down the Maqetta source code and change the source code.
  • Widget metadata standard support: OpenAjax Widgets - Maqetta uses OpenAjax Widgets as its format for defining widgets that appear in the application’s Widget palette. The OpenAjax widget metadata defines the widget-specific properties that appear in the Properties palette. The OpenAjax Widget format is independent of any particular JavaScript toolkit and has been used successfully by the industry to plug widgets from multiple JavaScript/Ajax toolkits into multiple JavaScript/Ajax IDEs.
  • CSS themes - To enable Maqetta’s various CSS-related authoring features, including the theme editor, Maqetta has defined a theme metadata format that defines the mapping between CSS rules within a theme and the widgets in the collection. (More precisely, the theme metadata maps a particular CSS rules to a particular {property P on widget W for widget sub-component C for interactive state S}.) This allows deep and intelligent customization of CSS styling on particular widgets. For example of the level of detail control you have with the Maqetta theme editor, you can control the background color and text color for the section (“sub-widget”) of the Calendar widget for the currently selected date, including different colors for different interactive states (e.g., Normal vs Hover). The theme metadata is designed to be toolkit-independent and be able to support the CSS themes that are available across multiple JavaScript toolkits.