Skin Files
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 logoskin.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.0An 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.