Would you like to learn how to make rich user interfaces with nothing more complicated than a text editor? Welcome to XUL, a subset of XML used to describe user interfaces. This article will get you started.
Many of you may not have heard of XUL. I hadn’t until recently. If, like me, you’re excited by the prospect of making rich user interfaces, quickly and easily, using nothing but a simple text editor, then you’ll want to learn all about XUL, because that’s exactly what it’s for. It’s pronounced to rhyme with "cool" and is a W3C compliant subset of XML that is used specifically to describe user interfaces. It stands for XML User interface Language, and was designed to implement the user interface of the Mozilla suite (including the browser and the Thunderbird email client.)
If you have even just the browser part of the Mozilla interface installed (or Netscape Navigator, or Firefox), do a quick search for *.xul and see how many files are matched. Okay, so there aren’t hundreds, but there are a few, right? These files (and others tucked away in jar files) are used to present the interface through which you use Mozilla. The side bar, for example is a XUL file that is loaded when the application is launched. Netscape Navigator and Firefox also make extensive use of XUL, and you can too.
Interestingly enough, Netscape Navigator has some built in XUL examples that you can play around with to see at a basic level how XUL works. To see one of these examples in action, open up Netscape Navigator, if you have it installed, and choose the File à Open File command. If Netscape is installed in the default location, the sample XUL files will be in the following directory:
C:\Program Files\Netscape\Netscape\res\samples
Open up any of the XUL files, such as toolbarTest1.xul, and see what it’s about.
As I mentioned above, you need no special tools to use XUL, just a simple text editor. XUL does need to be used in conjunction with the Gecko layout engine, which means that you need to use the Mozilla browser to view XUL files, although you do not have to open them via Mozilla if they are simple enough. XUL is compatible with many existing Web technologies, such as XML, JavaScript, and CSS to name a few, but there are many, many other standards with which it can be used.