[[ https://www.mediawiki.org/wiki/Extension:Theme | Extension:Theme]] adds functionality for skins to add user- or site-selection of css variants (themes) of a given skin, such as a dark version or a layout with more colours. Because this is widely requested functionality that is difficult to properly implement and especially maintain in an extension, and keeps being reinvented outside of it regardless, the existing extension should really be merged into core, with further development continued there.
Current functionality to merge:
* Enable skins to specify alternate stylesheets to load depending on the theme selected (each theme functions as an RL module tied to the name of the theme). These can be loaded over general css or instead. Preferred implementation is of course to keep it all as simple as possible and avoid using the theme as an override, and instead contain only the relevant styles for the theme, but this does not preclude developers making a mess of things regardless.
* Add settings (site and user) for each theme, displayed for users in their preferences when they enable the skin the themes pertain to.
* Create a core framework for setting skin variables which will then automatically load into the rest of the skin (or perhaps even core) less.
* Create onwiki interfaces for site admins to create their own themes to customise the site.
See [[ https://www.mediawiki.org/wiki/Requests_for_comment/Themes_in_core | Requests_for_comment/Themes_in_core ]] for full background.