Skin Files

Last modified by Eleni Cojocariu on 2026/09/28 14:15

Reference

A skin is a set of files rather than a single setting. This page lists what those files are, what each one does and where a filesystem skin keeps them, which is what Customize a Skin replaces one file at a time. For the skins an instance can use and how each is named, see Available Skins.

What a skin is made of

Part What it does
Velocity templates (.vm) Build the pages of the interface. Overriding one of them is how a wiki skin changes the interface.
LESS sources (.less) Where the styling of the skin is written. In Flamingo the appearance is maintained here rather than directly in the stylesheets.
Stylesheets (.css) The styles the browser finally loads.
Scripts (.js) The behaviour of the interface widgets.
Images The logo and the pictures the templates refer to.
skin.properties The skin's own settings.

Each action is built by a template of its own, and the styling has a single entry point:

What it builds File in the skin
The view of a page view.vm
The editor of a page edit.vm
The main stylesheet style.css
Its LESS source less/style.less.vm

Where a filesystem skin keeps them

Filesystem skins live under webapps/xwiki/skins/, one directory each. XWiki keeps its own skins there so that they can be used even when the database is empty, which a skin held in pages cannot be. This is the whole of that directory on a standard XWiki instance, and the layout of the skin it contains:

webapps/xwiki/skins/
  flamingo/
    skin.properties       the skin's own settings
    *.vm                  Velocity templates
    less/                 LESS sources, where the styling is written
    css/, *.css           stylesheets
    *.js                  scripts
    logo.svg, logo.png    the default logo

skin.properties

skin.properties is what makes a directory a skin: a filesystem skin without one is not recognised at all. It declares the skin it inherits from and the syntax it produces, and in Flamingo it holds exactly two lines:

parent=
outputSyntax=html/5.0

An empty parent means the skin explicitly has no parent, so it falls back to no other skin for anything, which is why Flamingo has to provide a complete interface on its own.

FAQ

Where is the equivalent of skin.properties on a wiki skin?

In the XWiki.XWikiSkins object on the skin page, whose settings Available Skins lists.

Related

Get Connected