# XUL and HTML
Our UI is made up of XUL and HTML. Sometimes the documents are primarily XUL,
and sometimes they are primarily HTML, or even exclusively HTML. At the time of
writing slightly over half of all the elements declared in (X)HTML documents are
HTML elements.
## File extensions
Most of our markup files end with `.xhtml`. That means the document is a valid
XML document, typically with the root element being an HTML root element
(``). Some rare cases might still use an XUL root element (like
``).
If a document uses the `.html` extension its contents are purely HTML and no XUL
is allowed.
The `.inc.*` prefix is used to indicate that the file is not a fully valid
document and is expected to be included by the preprocessor into another
document.
## Namespaces
Typically `.xhtml` documents will declare an `xmlns`, `xmlns:xul` and
`xmlns:html` on the root element.
The namespace in the `xmlns` attribute decides what set the elements without any
namespace prefix come from. This is relevant because both XUL and HTML have a
`