Paradigm Declarative (markup language)
Developer Mozilla Foundation
Implementation language C++
Platform Gecko
OS Cross-platform
License MPL
Filename extensions .xul
MIME type: application/vnd.mozilla.xul+xml
Website https://developer.mozilla.org/en-US/XUL
Major implementations
Influenced by

XUL ( ZOOL), which stands for XML User Interface Language, is a user interface markup language that is developed by Mozilla. XUL is implemented as an XML dialect; it allows for graphical user interfaces to be written in a similar manner to Web pages.

XUL can be used to write cross-platform applications such as Mozilla Firefox, where it is interpreted by the layout engine, known as Gecko, which renders Firefox's user interface and Web page display.[1]

Firefox 57, released in November 2017, removed all support for its long-standing XUL and XPCOM add-on capability;[2] Mozilla replaced it with WebExtensions.[3]Pale Moon and Basilisk, both forks of Firefox, will continue to support XUL/XPCOM add-ons indefinitely.[4]Waterfox, another fork of Firefox, also intends to support XUL/XPCOM add-ons.[5][6]


XUL relies on multiple existing Web standards and Web technologies, including CSS, JavaScript, and DOM. Such reliance makes XUL relatively easy to learn for people with a background in Web programming and design.

XUL has no formal specification and does not inter-operate with non-Gecko implementations. However, it uses an open-source implementation of Gecko which Mozilla tri-licensed under the GNU GPL, GNU LGPL, and MPL[7] until Gecko changed[] to GPL-compatible, MPL 2.0.

Mozilla provides experimental XULRunner builds to let developers build their applications on top of the Mozilla application framework and of XUL in particular.

XUL provides a portable definition for common widgets, allowing them to move easily to any platform on which Mozilla applications run.[8]

XUL documents

Programmers typically define a XUL interface as three discrete sets of components:

  1. content: the XUL document(s), whose elements define the layout of the user interface
  2. skin: the CSS and image files, which define the appearance of an application
  3. locale: the files containing user-visible strings for easy software localization

XUL elements

XUL defines a wide range of elements, which roughly belong to the following types:

Top-level elements
window, page, dialog, wizard, etc.
label, button, text box, list box, combo box, radio button, check box, tree, menu, toolbar, group box, tab box, colorpicker, spacer, splitter, etc.
Box model
box, grid, stack, deck, etc.
Events and scripts
script, command, key, broadcaster, observer, etc.
Data source
template, rule, etc.
overlay (analogous to SSI, but client-side and more powerful, with higher performance), iframe, browser, editor, etc.

One can use elements from other applications of XML within XUL documents, such as XHTML, SVG, and MathML.

Mozilla added some common widgets -- <scale/> (sometimes called "slider"), <textbox type="number"/> (spinbox), time and date pickers -- during the Gecko 1.9 development cycle.[9]

XUL applications

While XUL serves primarily for constructing Mozilla applications and their extensions, it may also feature in Web applications transferred over HTTP. The Mozilla Amazon Browser, a former XUL application of this type, provided a rich interface for searching books at Amazon.com.[10]

However, many of the powerful features of Mozilla (such as privileged XPCOM objects) remain unavailable to unprivileged XUL documents unless the script has a digital signature, and unless the user obtains grants of certain[which?] privileges to the application. Such documents also suffer from various limitations of the browser, including the inability to load remote XUL, DTD, and RDF documents.

As Gecko provides the only full implementation of XUL, such applications remain inaccessible to users of browsers not based on Mozilla. Mozilla-programmers sometimes refer to XUL applications running locally as chrome.[11]

Other applications using XUL include:

  • The Ample SDK open-source GUI framework provides a cross-browser implementation of XUL in JavaScript.
  • The ActiveState Komodo IDE uses XUL as well as the Open Komodo project announced in 2007.
  • The Nightingale and Songbird music-players and Miro video-player all use built-in XUL.
  • The Elixon WCMS/XUL Content management system uses exclusively remote XUL, thus overcoming some of the aforementioned limits of remote unprivileged XUL documents.
  • The developers of the Celtx media pre-production application used XUL.
  • The Flickr Uploader was built using XUL, and source code is available under GPLv2.[12]
  • Kiwix, the offline Wikipedia-viewer
  • BlueGriffon is a WYSIWYG HTML-Editor based on Gecko, XUL and Javascript

With the release of Firefox 4, support for remote XUL was disabled by default, due to security concerns. Loading an XUL page via HTTP would now display an error unless the domain was added to a hidden whitelist.[13]

Etymology and Ghostbusters references

The name "XUL" is a homophonic reference to the film Ghostbusters (1984), in which an ancient Sumerian deity called Zuul possesses the character Dana Barrett and declares, "There is no Dana, only Zuul".

Since XUL, like MXML, uses XML to define an interface rather than a document, its developers adopted the slogan "There is no data, there is only XUL". References to this and other elements of the film, such as "Keymaster" and "Gatekeeper", appear in the XUL specification; for instance, the JavaScript debugger component is called Venkman, after the film's character Peter Venkman. Another clear example is the XML namespace URI definition, required at the beginning of every XUL document:


The linked document displays the slogan in large letters in the center of the screen.


This example shows three buttons stacked on top of each other in a vertical box container:[14]

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="vbox example" title="Example 3...."
    <button id="yes1" label="Yes"/>
    <button id="no1" label="No"/>
    <button id="maybe1" label="Maybe"/>

Similar languages

Based on HTML, DHTML, and JavaScript, Microsoft's HTML Application resembles XUL as it provides a stand-alone capability to run applications on Windows, outside a Web browser.

The Microsoft Windows Presentation Foundation (WPF) defines XAML, another declarative UI language similar to XUL -- it runs on top of the .NET Framework stack.

JavaFX defines FXML as its own declarative UI language like XUL.

See also


  1. ^ "Gecko FAQ". Mozilla Developer Center. Mozilla Foundation. 2008-03-15. Retrieved . 
  2. ^ https://www.mozilla.org/en-US/firefox/57.0/releasenotes/
  3. ^ Kev Needham (2015-08-21). "The Future of Developing Firefox Add-ons". blog.mozilla.org. Retrieved . 
  4. ^ "Pale Moon future roadmap". Pale Moon. 2016-05-09. Retrieved . 
  5. ^ "Proposal for Waterfox 56". Reddit. 2017-03-11. Retrieved . 
  6. ^ "Waterfox 55 Release". Waterfox. 2017-10-10. Retrieved . 
  7. ^ Mozilla Foundation. "Mozilla Code Licensing". Retrieved . 
  8. ^ "The Joy of XUL". Mozilla Foundation. 2007-09-09. Retrieved . 
  9. ^ Firefox 3 for developers
  10. ^ "Remote Application Development with Mozilla, Part 2: A Case Study of the Mozilla Amazon Browser (MAB)". Oreillynet. 2003-02-05. 
  11. ^ Feldt, Kenneth C. (2007). Programming Firefox: Building Rich Internet Applications with XUL. O'Reilly Media. pp. 76-77. ISBN 0-596-10243-7. Retrieved . 
  12. ^ Getting your stuff onto Flickr
  13. ^ "Firefox 4 for developers". 
  14. ^ The Box Model - XUL | MDN. Developer.mozilla.org (2012-12-16). Retrieved on 2014-03-28.

External links

  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.



Connect with defaultLogic
What We've Done
Led Digital Marketing Efforts of Top 500 e-Retailers.
Worked with Top Brands at Leading Agencies.
Successfully Managed Over $50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.
Taught Advanced Internet Marketing Strategies at the graduate level.

Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your Digital Marketing and Technology knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.

  Contact Us