HOME

TheInfoList



OR:

XUL ( ), which stands for XML User Interface Language, is a
user interface markup language A user interface markup language is a markup language that renders and describes graphical user interfaces and controls. Many of these markup languages are dialects of XML and are dependent upon a pre-existing scripting language engine, usually a ...
developed by
Mozilla Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
. XUL is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
dialect for writing
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
s, enabling developers to write user interface elements in a manner similar to
web page A web page (or webpage) is a World Wide Web, Web document that is accessed in a web browser. A website typically consists of many web pages hyperlink, linked together under a common domain name. The term "web page" is therefore a metaphor of pap ...
s. XUL
applications Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
rely on the Mozilla
codebase In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
or a
fork In cutlery or kitchenware, a fork (from 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods either to h ...
of it. The most prominent example is the
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
web browser. However, Mozilla has significantly reduced the usage of XUL in Firefox after their rewrite of the browser engine in version 57. This resulted in the removal of the legacy add-on system, which relied on XUL and
XPCOM Cross Platform Component Object Model (XPCOM) is a cross-platform component model from Mozilla. It is similar to Component Object Model (COM), Common Object Request Broker Architecture (CORBA) and system object model (SOM). It features multiple ...
, another cross-platform technology Mozilla decided to deprecate shortly before the release of Firefox 57. Firefox originally permitted add-ons to extensively alter its user interface, but this capability was removed in 2017 and replaced with the less-permissive WebExtensions API. Several
fork In cutlery or kitchenware, a fork (from 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods either to h ...
s of Firefox retain support for XUL and XPCOM-based add-ons.
Waterfox Waterfox is a free and open-source web browser and fork of Firefox. It claims to be ethical and user-centric, emphasizing performance and privacy. There are official Waterfox releases for Windows, macOS, Linux and Android. It was initially cr ...
maintains a fork of the legacy Mozilla codebase for the ''Waterfox Classic'' browser. The
Pale Moon Pale Moon is a free and open-source web browser licensed under the MPL-2.0 with an emphasis on customization. There are official releases for Microsoft Windows, FreeBSD, macOS, and Linux. Pale Moon originated as a fork of Firefox, but has subs ...
browser,
Basilisk In European bestiary, bestiaries and legends, a basilisk ( or ) is a legendary reptile reputed to be a Serpent symbolism, serpent king, who causes death to those who look into its eyes. According to the ''Natural History (Pliny), Naturalis Histo ...
browser,
Hyperbola In mathematics, a hyperbola is a type of smooth function, smooth plane curve, curve lying in a plane, defined by its geometric properties or by equations for which it is the solution set. A hyperbola has two pieces, called connected component ( ...
operating system, and numerous smaller projects collectively use and maintain the Unified XUL Platform (UXP) implementation.


History

XUL was devised at
Netscape Netscape Communications Corporation (originally Mosaic Communications Corporation) was an American independent computer services company with headquarters in Mountain View, California, and then Dulles, Virginia. Its Netscape web browser was o ...
in 1997 as part of the development effort that eventually became the
Mozilla Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
codebase In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
. XUL is similar to web technologies implemented by the
Gecko Geckos are small, mostly carnivorous lizards that have a wide distribution, found on every continent except Antarctica. Belonging to the infraorder Gekkota, geckos are found in warm climates. They range from . Geckos are unique among lizards ...
rendering engine. When XUL was introduced, it added features beyond the then standard
HTML 4 Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ...
. It was designed as an extension of HTML to be used with applications rather than documents. XUL was used by various Mozilla projects,
forks In cutlery or kitchenware, a fork (from 'pitchfork') is a Eating utensil, utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tine (structural), tines with whic ...
of Mozilla projects, and projects closely related to Mozilla. Some software projects such as
Songbird A songbird is a bird belonging to the suborder Passeri of the perching birds (Passeriformes). Another name that is sometimes seen as the scientific or vernacular name is Oscines, from Latin ''oscen'', "songbird". The Passeriformes contains 5,00 ...
, Komodo IDE, and
Zotero Zotero () is a free and open-source reference management software to manage bibliographic data and related research materials, such as PDF and ePUB files. Features include web browser integration, online syncing, generation of in-text citatio ...
started as desktop applications that utilized
XULRunner XULRunner is a discontinued, packaged version of the Mozilla platform to enable standalone desktop application development using XUL, developed by Mozilla. It replaced the ''Gecko Runtime Environment'', a stalled project with a similar purpose. ...
to render and compose their UI. In the early 2000s, there was some interest in using XUL by other parties, including
Amazon Amazon most often refers to: * Amazon River, in South America * Amazon rainforest, a rainforest covering most of the Amazon basin * Amazon (company), an American multinational technology company * Amazons, a tribe of female warriors in Greek myth ...
, but those have switched over to
HTML5 HTML5 (Hypertext Markup Language 5) is a markup language used for structuring and presenting hypertext documents on the World Wide Web. It was the fifth and final major HTML version that is now a retired World Wide Web Consortium (W3C) recommend ...
. Many of the features of modern web technologies such as HTML5, CSS3, ECMAScript 5+, WebGL, and WebAssembly that made rich and modern web applications possible, without the need of utilizing legacy NPAPI/
PPAPI Google Native Client (NaCl) is a discontinued sandboxing technology for running either a subset of Intel x86, ARM, or MIPS native code, or a portable executable, in a sandbox. It allows safely running native code from a web browser, independe ...
/
ActiveX ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide W ...
browser plug-in technologies like
Adobe Flash Adobe Flash (formerly Macromedia Flash and FutureSplash) is a mostly discontinuedAlthough it is discontinued by Adobe Inc., for the Chinese market it is developed by Zhongcheng and for the international enterprise market it is developed by Ha ...
,
Silverlight Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later version ...
,
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, or
Shockwave In physics, a shock wave (also spelled shockwave), or shock, is a type of propagating disturbance that moves faster than the local speed of sound in the medium. Like an ordinary wave, a shock wave carries energy and can propagate through a me ...
, also made much of XUL redundant. Mozilla released Firefox 57, also known as Firefox Quantum, in November 2017. As part of this, Firefox finished transitioning to a multiprocess architecture. Although XUL add-ons could work in this architecture, they often created significant performance issues. Because of this, Mozilla removed support for legacy add-ons, including the use of custom XUL code. Mozilla switched their browser extensions system to the cross-browser WebExtensions API, which is largely based on the Chrome extension API. In late 2017, Firefox still included 289 XUL bindings for native browser components. By the end of 2019, Mozilla had removed all XUL files from their mozilla-central repository. When Mozilla removed support from Firefox, there were still several applications using XUL. Mozilla began gradually removing XUL support from their email client, Thunderbird. They released Thunderbird 78 without support for XUL-based extensions in 2020. The
SeaMonkey SeaMonkey is a free and open-source Internet suite. It is the continuation of the former Mozilla Application Suite, based on the same source code, which itself grew out of Netscape Communicator and formed the base of Netscape 6 and Netscape ...
internet suite chose to re-implement XUL for the Firefox Quantum codebase, and the suite's development has subsequently slowed. The
Pale Moon Pale Moon is a free and open-source web browser licensed under the MPL-2.0 with an emphasis on customization. There are official releases for Microsoft Windows, FreeBSD, macOS, and Linux. Pale Moon originated as a fork of Firefox, but has subs ...
developers forked Mozilla's entire Firefox 52 ESR codebase to create the Unified XUL Platform (UXP) for their
Goanna A goanna is any one of several species of lizard of the genus ''Monitor lizard, Varanus'' found in Australia and Southeast Asia. Around 70 species of ''Varanus'' are known, 25 of which are found in Australia. This varied group of carnivorous r ...
rendering engine. UXP maintains the traditional XUL capabilities. As a result, Pale Moon and other UXP applications have remained single-process but more extensible compared to modern versions of Firefox and Thunderbird.


Usage

XUL can only be used with the
Mozilla Mozilla is a free software community founded in 1998 by members of Netscape. The Mozilla community uses, develops, publishes and supports Mozilla products, thereby promoting free software and open standards. The community is supported institution ...
codebase In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code system files; thu ...
(or a
fork In cutlery or kitchenware, a fork (from 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods either to h ...
of it) because the
Gecko Geckos are small, mostly carnivorous lizards that have a wide distribution, found on every continent except Antarctica. Belonging to the infraorder Gekkota, geckos are found in warm climates. They range from . Geckos are unique among lizards ...
(or
Goanna A goanna is any one of several species of lizard of the genus ''Monitor lizard, Varanus'' found in Australia and Southeast Asia. Around 70 species of ''Varanus'' are known, 25 of which are found in Australia. This varied group of carnivorous r ...
)
engine An engine or motor is a machine designed to convert one or more forms of energy into mechanical energy. Available energy sources include potential energy (e.g. energy of the Earth's gravitational field as exploited in hydroelectric power ge ...
does the XUL rendering. Application programmers need to define a XUL interface as three discrete sets of components: # Content: the XUL document(s), whose elements define the layout of the
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
# Skin: the CSS and image files, which define the appearance of an application # Locale: the files containing user-visible strings for easy
software localization In computing, internationalization and localization ( American) or internationalisation and localisation (British), often abbreviated i18n and l10n respectively, are means of adapting to different languages, regional peculiarities and technical r ...
XUL defines a wide range of elements, which roughly belong to the following types: * Top-level elements:
window A window is an opening in a wall, door, roof, or vehicle that allows the exchange of light and may also allow the passage of sound and sometimes air. Modern windows are usually glazed or covered in some other transparent or translucent ma ...
, page, dialog, wizard, etc. * Widgets: label,
button A button is a fastener that joins two pieces of fabric together by slipping through a loop or by sliding through a buttonhole. In modern clothing and fashion design, buttons are commonly made of plastic but also may be made of metal, wood, or ...
,
text box A text box also called an input box, text field or text entry box, is a control element of a graphical user interface, that should enable the user to input text information to be used by a program. Human Interface Guidelines recommend a single ...
, list box,
combo box A combo box is a commonly used graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, gr ...
,
radio button A radio button or option button is a graphical control element that allows the user to choose only one of a predefined set of mutually exclusive options. The singular property of a radio button makes it distinct from checkboxes, where the user ...
,
check box A checkbox (check box, tickbox, tick box) is a graphical widget that allows the user to make a binary choice, i.e. a choice between one of two possible mutually exclusive options. For example, the user may have to answer 'yes' (checked) or 'no' ...
,
tree In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
,
menu In a restaurant, the menu is a list of food and beverages offered to the customer. A menu may be à la carte – which presents a list of options from which customers choose, often with prices shown – or table d'hôte, in which case a pre-est ...
,
toolbar The toolbar, also called a bar or standard toolbar (originally known as ribbon), is a graphical control element on which on-screen icons can be used. A toolbar often allows for quick access to functions that are commonly used in the program. Some ...
, group box, tab box, color-picker, spacer, splitter, etc. * Box model: box, grid, stack, deck, etc. * Events and scripts: script, command, key, broadcaster, observer, etc. * Data source: template, rule, etc. * Others: overlay, iframe, browser, editor, etc. The default behavior of XUL widgets can be altered with XBL bindings.


XBL

XML Binding Language ( XBL) is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-based
markup language A markup language is a Encoding, text-encoding system which specifies the structure and formatting of a document and potentially the relationships among its parts. Markup can control the display of a document or enrich its content to facilitate au ...
for altering the behavior of a XUL widget, such as a scroll bar. An XBL file contains bindings, each of which describes the behavior of a XUL widget. The root element of an XBL file is the element, which contains one or more elements. Each element declares one binding, which can be attached to any XUL element. It may also possess an id attribute. A binding is assigned to an element by setting the CSS property -moz-binding to the
URL A uniform resource locator (URL), colloquially known as an address on the Web, is a reference to a resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identi ...
of the binding's file. For example: scrollbar


Example

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