Skin:Chameleon

Chameleon is a highly customizable MediaWiki skin that uses Twitter Bootstrap 3.

It currently provides five different layouts to chose from. The standard layout features a horizontal navigation menu with dropdowns at the top and a horizontal menu with dropups for the language links at the bottom. Each layout is defined in an XML file and as such easily adaptable to your needs.

Installation
The Chameleon skin requires Composer for installation. (But why!?) If Composer is installed globally, run
 * 1)    If necessary install Composer.
 * 2)    Go to your MediaWiki installation directory
 * 3)    If necessary (on MediaWiki up to 1.23) copy the file   to
 * 4)    If necessary (on MediaWiki up to 1.23) copy the file   to
 * 5)    With Composer installed, run
 * 1)    ✅ – Navigate to Special:Version on your wiki to verify that the skin is successfully installed.

Remarks

 * To actually activate Chameleon as the default skin of your wiki, include  in your
 * It is not necessary to install any dependencies anymore. Composer will take care of that.

Installation on MediaWiki 1.25 and greater
These instructions are significantly different to those above, but may work for some installations that already have composer installed.
 * 1. Use an SSH client to connect to your server. eg. FireSSH.
 * If you already have FTP access, then you may find that your existing FTP username/pw are sufficient.
 * If you are unable to connect via SSH, and you have a server control panel, it may allow you to create and configure an SSH account. Otherwise, contact your hosting provider.
 * Once you connect to your server with SSH, you will see confirmation and a command line prompt, eg:
 * 2. To discover which directory you are current in, enter the bash command:  It will list the current subdirectories.
 * You may need to change directory several times to drill down to your require directory (this will be different for you), eg:
 * (the MediaWiki script directory)
 * 3. To check whether composer is installed, at the prompt, enter:
 * If composer is not installed, you will see a message: composer: command not found, and you will have to investigate how to create composer.phar
 * If composer is installed, you will see the composer logo in ascii art, and a summary of available commands.
 * 4. At the prompt, enter:
 * If it all goes well, you will see a number of responses ending without any errors.
 * If composer is installed, you will see the composer logo in ascii art, and a summary of available commands.
 * 4. At the prompt, enter:
 * If it all goes well, you will see a number of responses ending without any errors.

Click Expand to see a typical summary of successful responses:
 * The Chameleon skin should now be installed, and available in your MediWiki preferences.
 * 5. Errors. Although you may be running MediWiki under a particular version of PHP, it is possible that when you SSH to your server, that it runs under an earlier version (eg. 5.3.3) causing composer to generate an error, and the Chameleon installation to fail. In this case, you have to (a) select a later version of PHP (b) point to your composer executable directly:
 * Instead of entering:  Enter:
 * where:
 * is the full path to PHP v7
 * is the full path to the composer.phar executable.
 * You will need to discover the paths to your PHP and composer.phar on your server.

Documentation
The documentation will be successively moved into the sourcecode repository. This allows to better keep it in sync with the development of the code. Moreover it allows to go back in time and see the documentation for a particular version of the skin.

Use the documentation index page as a starting point.

Fonts and Colors
You can customize the skin by loading additional LESS files and by setting LESS variables.

To import additional LESS files, add them to the array  in  :

If your LESS file does not reference any other files (fonts, images, ...), you may omit the remote path. Just write:

To add or change LESS variables add them to the array  in  :

Regardless of the order of the calls, variables will always override imported files. A good starting point for customization is Bootstrap's list of variables: http://getbootstrap.com/customize/#less-variables

Example
To use the Amelia theme from Bootswatch you could download the  and the   file to your MediaWiki installation directory and rename them to   and. You then add the following code to your :

To make the navigation bar a bit narrower you could add

Layout of page elements
The layout of the page elements (nav bar, logo, search bar, etc.) is defined in an XML file. There are currently four pre-defined layouts available: standard, navhead, fixedhead and stickyhead. They can be activated by setting the variable  in LocalSettings.php. E.g. to activate the fixedhead layout you could add

You can of course also define and use your own layout. Have a look at the available XML files to see what is possible. (Better documentation to follow.)

Complex customizations
Have a look at the cookbook. It contains instructions on how to achieve more complex customizations.

Live examples

 * Solutions-web.eu and its test page of bootstrap features with $wgRawHtml set to false
 * Docupedia-Zeitgeschichte (in German)
 * German Star Citizen Wiki
 * OGD Cockpit
 * a complete set of examples from getbootstrap.com (in wiki-markup mode and in raw html mode)
 * FabLab Toscana wiki pages
 * EcommerceWiki
 * Wiki Valley
 * Marketing United (based on Chameleon, Paper theme and a lot of CSS customizations)

For further examples see Chameleon's page on WikiApiary

Contributing to the project
see https://github.com/wikimedia/mediawiki-skins-chameleon/blob/master/docs/contribute.md

Bugs and feature requests should preferably be reported on the Wikimedia bug tracker.

Comments, questions and suggestions should be sent or posted to:
 * the Chameleon discussion page
 * the author

Roadmap (kind of)

 * Improve documentation
 * Add many more components and layouts (suggestions welcome)
 * Improve responsiveness
 * Improve accessibility (see )
 * Make customizable (colors, fonts, sizes) via a Special page
 * Put a selector for the layout on the user preferences page
 * Compatibility with extensions

Credits
see https://github.com/wikimedia/mediawiki-skins-chameleon/blob/master/docs/credits.md