Extension:Theme

MediaWiki extensions manual
Theme
Release status: stable
Implementation Skin
Description Allows using themes of skins
Author(s) Ryan Schmidt
Jack Phoenix
Samantha Nguyen
Latest version 2.5
MediaWiki 1.39+
License Public domain
(the main PHP file is PD-licensed, while some of the actual theme files may not be)
Download
Example ShoutWiki
$wgDefaultTheme, $wgSkipThemes
Quarterly downloads 38 (Ranked 96th)
Public wikis using 1,212 (Ranked 229th)
Translate the Theme extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

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 $wgDefaultTheme variable can be used to control what theme is being used site-wide, and the usetheme=X parameter is accepted on a request to change the theme on a per-pageload basis.

This extension was written by Skizzerz for ShoutWiki.

Installation

  • Download and move the extracted Theme folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Theme
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'Theme' );
    
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Parameters

  • $wgDefaultTheme controls which theme is displayed by default when users visit your wiki.
  • $wgSkipThemes (available from extension version 2.5, July 2024) allows sysadmins to disable certain themes. If you wanted to disable the StellarBook MonoBook and dark Vector themes, for example, you'd set it like so:
$wgSkipThemes = [
	'monobook' => [
		'stellarbook' => true
	],
	'vector' => [
		'dark' => true
	]
];

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 (2010)

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 $IP /extensions/Theme, place the CSS file(s) there and register the new theme in Theme/extension.json file, under ResourceModules object.

To add a new theme for a custom skin, register a module for each theme in the skin's main setup file (skin.json). 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 ThemeModules to list the available theme names. Here's how Gamepress does that (see Gamepress' skin.json file's master version for details):

	"ThemeModules": {
		"gamepress": [ "blue", "green", "orange" ]
	},
It seems that this only works with manifest_version v1.