XML User Interface Language, in short: XUL [ to ː l], is an XML-based description language for graphical user interfaces (GUI). It was originally developed for the Mozilla project, but is now also used by other software.

In Mozilla applications such as Firefox, Thunderbird, SeaMonkey or Netscape, the entire UI from XUL files is generated. Here comes the Gecko rendering engine used, which is also used for displaying web pages.

When porting to a specific operating system platform, the complete Mozilla XUL toolkit has to be ported to the new platform. In return, need after such porting XUL GUI no special adjustments more.


With XUL, the separation of layout and design of the interface is enabled, because the representation of a XUL user interface is not defined in XUL itself, but with CSS. For this reason it is by simply changing the CSS styles possible to enable the use of different skins, as is the case for example in Mozilla Firefox. Because XUL files are not compiled but interpreted at runtime, it is possible, as the user interface to edit according to your needs and to expand, which can in Mozilla programs also automated through installable extensions done. In addition, the creation of new surfaces is easier and less time-consuming than with many programming languages.

Other advantages are:

  • XML compliant description language
  • Open source code by using XML
  • Can be used on many operating systems
  • Consistent appearance on the various platforms
  • If the XUL toolkit has been ported to various platforms, XUL user interfaces can be across operating systems and easily re-created or edited.


Due to the additional costs of processing the XUL files and the necessary calculations of the layout and appearance of the processing and display speed is often slower than with native user interfaces.

As the user interface is represented by the " Gecko rendering engine " and not directly by the operating system on which the application is running, the operation and display may differ slightly from the native programs.

Building a XUL file

A simple XUL file might look like this:

< window id = "sample -window "          title = "example"          xmlns = " http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul " >