User Interface Description Languages: XUL
Mark Finkle
What is XUL
- Powerful widget-based markup language
- XUL is an HTML-like markup language designed for rich applications
- Includes a set of cross platform widgets
- Based on existing standards
- Cascading Style Sheets (CSS)
- Document Object Model (DOM)
- JavaScript, including E4X (ECMAScript for XML)
- XML, SVG, MathML
- Platform portability
- XUL user interfaces can run on Windows, Mac and Linux
- Easy localization
- Locale specific resources are easily separated from presentation and code
- Automatically chooses appropriate locale at startup
Applications and Extensions
- Core toolkit support
- Standard and custom UI widgets
- Templated UI generation
- Script and binary components
- Supports native accessibility technologies
- Completely cross platform
- Application support
- Lightweight, version controlled runtime
- Widgets support native OS look and feel
- Extensibility through a common add-on mechanism
- Builtin upgrade mechanism
- Extension support
- Overlay UI and code into host application
- Builtin installation and upgrade mechanism
Editing / Protoyping
- Text-based files - working with XUL feels very much like HTML
- Use XUL to create an interface
- Use CSS to define appearance
- Use JavaScript for behavior
- Use locale files for localizable strings*
- Quickly preview modifications
- Displays in Firefox (or any Mozilla based browser)
- Not compiled so viewing changes is as simple as refresh/restart
Designer / Developer Process
- Designers and Developers can both participate in the UI design process
- Designers can start the UI prototype or modify an existing UI
- Developers can manage the semantic code points in the markup
- UI can be prototyped and even support interactivity before any real code is written
- Layers of UI are separate
- Designers can edit the style without effecting the structure or the behavior
- Developers can change behavior and even structure
- Localizers can manage locales in isolation
Build a Sample
To the editor...
Resources
- Documentation
- Software written using XUL platform