Extension:Theme

The Theme extension allows loading of themes (preset CSS to change the appearance of a skin). Users can determine their preferred theme by configuring this in their preferences. The  variable can be used to control what theme is being used site-wide, and the   parameter is accepted on a request to change the theme on a per-pageload basis.

This extension was written by Skizzerz for ShoutWiki.

Parameters
$wgDefaultTheme controls which theme is displayed by default when users visit your wiki.

Available themes
Certain skins, like Bouquet, Dusk or Gamepress include themes as a part of the skin; themes can then be activated once the Theme extension is installed on your wiki.

Other skins, primarily those maintained by Wikimedia Foundation developers for use on Wikimedia Foundation websites like Wikipedia etc., do not include themes; instead their themes are located as a part of the Theme extension. Currently these kind of skins include MonoBook and Vector.

As a part of the Theme extension

 * For MonoBook:
 * dark
 * pink
 * stellarbook
 * For Vector:
 * dark
 * dark-grey
 * deepsea (removed for MW 1.39+ in 06bbbfd597df7b63206f7eaf95a120a42583d03d)

Included with the skins themselves

 * Bouquet:
 * forgetmenot
 * pinkdogwood
 * tigerlily


 * Dusk:
 * green


 * Gamepress
 * red (default)
 * blue
 * green
 * orange

Adding themes
To add a new theme for a core skin (such as Modern or Vector), create a directory called skinname (i.e. vector) under, place the CSS file(s) there and register the new theme in   file, under   object.

To add a new theme for a custom skin, register a module for each theme in the skin's main setup file. The naming convention is themeloader.skins.skinname-in-lowercase.themename-in-lowercase; for example, the module name of the AutumnLeaf theme for the BlueCloud skin would be themeloader.skins.bluecloud.autumnleaf.

You also need to define a top-level key called  to list the available theme names. Here's how Gamepress does that (see Gamepress' skin.json file's master version for details):