XUL

XUL (произносится «зул», XML User Interface Language) — язык разметки для создания динамических пользовательских интерфейсов на основе XML. XUL разрабатывается в рамках проекта Mozilla и является частью платформы XULRunner.

XUL разработан для создания интерфейсов в таких программах как браузеры, почтовые клиенты и т. д. Однако, XUL можно достаточно эффективно использовать для создания любых приложений, активно взаимодействующих с веб-ресурсами.

Тем не менее, XUL изначально предназначен для работы с Gecko в составе продуктов Mozilla, и его составляющие полностью контролируются процессом их разработки. Это позволяет Mozilla Foundation легко добавлять нужные им функции в ущерб стандартности (например, использования какого-нибудь другого языка).

Как и в случае с HTML, XUL позволяет описывать интерфейсы посредством использования языка разметки, задавать внешний вид приложения, используя CSS, и определять поведение приложения, используя JavaScript. Но, в отличие от HTML, используя XUL, можно создавать динамику в пользовательском интерфейсе намного быстрее и удобнее. Например, выпадающее меню можно реализовать с помощью нескольких предназначенных для этого тегов, не требующих громоздкой конструкции на JavaScript и/или CSS, как это потребовалось бы в HTML.

XUL активно использовался для написания расширений для браузера Mozilla Firefox и почтового клиента Mozilla Thunderbird. Большая часть интерфейса этих двух программ написана на XUL. В августе 2015 Mozilla объявила использование XUL для создания расширений Firefox устаревшей технологией, от которой планируется отказаться в пользу WebExtensions. В форке Firefox Pale Moon планируется сохранить поддержку XUL.

Пример

Следующий пример демонстрирует 3 кнопки, размещённые одна над другой в вертикальном («vbox») контейнере:

<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="vbox example" title="Example 3...." xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <vbox> <button id="yes" label="Yes"/> <button id="no" label="No"/> <button id="maybe" label="Maybe"/> </vbox> </window>

Приложения с интерфейсом на XUL

  • Firefox, Thunderbird, Sunbird и другие проекты Mozilla
  • Songbird
  • Miro
  • Komodo IDE, Komodo Edit
  • Spicebird
  • Instantbird
  • XULPlayer
  • Cyclone3
  • SeaMonkey
  • Zotero

Прекращение развития

В 2016 году Mozilla объявила о том, что Firefox 57 будет целиком переведён на WebExtensions, а функции XUL будут вырезаны. В связи с этим на официальном сайте дополнений был прекращён приём новых дополнений с использованием XUL, а в октябре 2017 г. было заявлено, что XUL-дополнения будут доступны на официальном сайте дополнений до июня 2018.

В связи с этим разработчиками облегчённого браузера Pale Moon был начат проект Unifed XUL Platform (Codename: Möbius). 17 ноября 2017 года была выпущена первая версия экспериментального браузера Basilisk, основанного на этом движке.