# 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 `