Jump to content

Skin:Cosmos

From mediawiki.org
MediaWiki skins manual - category
Cosmos
Release status: stable
Description Cosmos is a skin designed and based off Fandom's Oasis skin. Designed to improve upon their design, and provide an efficient MediaWiki skin for non-Fandom users, or for users transitioning out of Fandom.
Author(s)
Latest version 7.0.0 (2023-05-11)
Compatibility policy Snapshots releases along with MediaWiki. Master is not backwards compatible.
MediaWiki 1.39.0+
License GNU General Public License 3.0 or later
Download
README.md
Join the Cosmos Discord server if you require immediate assistance, or create a task on Phabricator about it (link below).
Example Cosmos Example Wiki, Wikimedia Skins Lab
Parameters
  • $wgCosmosWordmark
  • $wgCosmosBannerBackgroundColor
  • $wgCosmosWikiHeaderBackgroundImage
  • $wgCosmosBackgroundImage
  • $wgCosmosMainBackgroundColor
  • $wgCosmosContentBackgroundColor
  • $wgCosmosBackgroundImageSize
  • $wgCosmosContentWidth
  • $wgCosmosButtonBackgroundColor
  • $wgCosmosToolbarBackgroundColor
  • $wgCosmosFooterBackgroundColor
  • $wgCosmosLinkColor
  • $wgCosmosSocialProfileAllowBio
  • $wgCosmosSocialProfileFollowBioRedirects
  • $wgCosmosSocialProfileModernTabs
  • $wgCosmosSocialProfileRoundAvatar
  • $wgCosmosSocialProfileShowEditCount
  • $wgCosmosSocialProfileShowGroupTags
  • $wgCosmosSocialProfileTagGroups
  • $wgCosmosSocialProfileNumberofGroupTags
  • $wgCosmosUseSocialProfileAvatar
  • $wgCosmosEnablePortableInfoboxEuropaTheme
  • $wgCosmosBackgroundImageRepeat
  • $wgCosmosBackgroundImageFixed
  • $wgCosmosContentOpacityLevel
  • $wgCosmosEnabledRailModules
  • $wgCosmosRailDisabledNamespaces
  • $wgCosmosRailDisabledPages
  • $wgCosmosEnableWantedPages
  • $wgCosmosFetchWantedPagesFromCache
  • $wgCosmosWantedPagesMaxTitlesCount
  • $wgCosmosWantedPagesFetchedNamespaces
Quarterly downloads 100 (Ranked 5th)
Public wikis using 25 (Ranked 71st)
Public wikis using as default skin 2
Translate the Cosmos skin if it is available at translatewiki.net
Issues : Open tasks · Report a bug

Cosmos is a skin designed and based off Fandom's Oasis skin. Designed to improve upon their design, and provide an efficient MediaWiki skin for non-Fandom users, or for users transitioning out of Fandom. If you would like to learn how to contribute, please read our guide.


Install

  • Download and place the file(s) in a directory called Cosmos in your skins/ folder.
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadSkin( 'Cosmos' );
    
  • Configure as required.
  • Yes Done - Navigate to Special:Version on your wiki to verify that the skin is successfully installed.

Configuration

These settings will apply when Cosmos is the active skin.

Option Type Default value Requires Documentation
$wgCosmosWordmark String; full URL or file name
  • $wgLogos['wordmark']['src'] (if exists)
  • $wgLogos['1x'] (if exists; fallback)
  • false (if neither of the above exist)
Adds a wordmark to the wiki navigation
$wgCosmosBannerBackgroundColor String; color name or hex code '#c0c0c0' Changes the background color of the top banner (the one with the personal tools drop-down).
$wgCosmosWikiHeaderBackgroundImage String; full URL or file name false Adds a background image to the wiki header (the one with the site navigation links); blends image with header colors using gradient.
$wgCosmosWikiHeaderBackgroundColor String; color name or hex code '#c0c0c0' Changes the background color of the wiki header (the one with the site navigation links); $wgCosmosWikiHeaderBackgroundImage uses this to blend the image to this color, if the image is set.
$wgCosmosBackgroundImage String; full URL or file name false Adds a background image to the page body (behind the content area); effectively nullifies $wgCosmosMainBackgroundColor, as the image would cover the color.
$wgCosmosMainBackgroundColor String; color name or hex code '#1A1A1A' Adds a background color to the page body (behind the content area); effectively nullified by $wgCosmosBackgroundImage, as the image would cover the color.
$wgCosmosContentBackgroundColor String; color name or hex code '#ffffff' Changes the background color of the main wiki article content area; $wgCosmosContentOpacityLevel uses this to create an RGBA styled background color-opacity level.
$wgCosmosBackgroundImageSize String; auto, contain, or cover 'cover' $wgCosmosBackgroundImage set; Sets the background image size for the body background if set; while the string accepts all values, it's recommended to use one of the following: auto, contain, or cover.
$wgCosmosContentWidth String; default, large, or full 'default' Sets the main content area width. Can be 'default', 'large', or 'full'. 'default' means the width is 1024px on screen sizes 1084px to 1595px, and 1178px on screen sizes 1596px and above. 'large' means it is the default (for the relevent screen size) plus 176px. 'full' will set the width to 'auto' for either screen size. In addition if it is set to 'full', the screen-size specific max-width, and padding on #mw-content-wrapper are not set on either of the mentioned screen sizes, and use the default ones or that of lower screen sizes, making max-width much larger, and making the content area have much less padding.
$wgCosmosButtonBackgroundColor String; color name or hex code '#c0c0c0' Changes the background color of the page action buttons for Cosmos; also sets PortableInfobox coloring through blending if the extension is installed.
$wgCosmosToolbarBackgroundColor String; color name or hex code '#000000' Changes the background color of the floating toolbar at the bottom.
$wgCosmosFooterBackgroundColor String; color name or hex code '#c0c0c0' Changes the background color of the footer; the footer always has an opacity of 0.8, so this variable is converted to RGBA to set this opacity.
$wgCosmosBackgroundImageRepeat Boolean false $wgCosmosBackgroundImage set; if true the background image will be set to 'repeat' otherwise, if false, it will be set to 'no-repeat'.
$wgCosmosBackgroundImageFixed Boolean true $wgCosmosBackgroundImage set; If true the background image will be set to position: fixed;.
$wgCosmosLinkColor String; color name or hex code '#0645ad' Changes the color of links.
$wgCosmosContentOpacityLevel Integer 100 $wgCosmosContentBackgroundColor set; Set the content area background opacity in percentage, without the percent symbol (%).
$wgCosmosRailDisabledNamespaces Array [ NS_SPECIAL, NS_MEDIAWIKI, NS_MEDIAWIKI_TALK ] List of namespace constants or IDs to always hide the rail in.
$wgCosmosRailDisabledPages Array [ 'mainpage' ] List of page titles or 'mainpage' to always hide the rail in. Works exactly like __NORAIL__ magic word.
$wgCosmosEnableWantedPages Boolean true Whether or not to enable the WantedPages feature of the create page dialog.
$wgCosmosFetchWantedPagesFromCache Boolean false Whether or not to fetch the wanted pages shown within the create page dialog from cache. If enabled you will need to run php updateSpecialPages.php --only=WantedPages in order to update the wanted pages. It is recommended to set this to true on large wikis.
$wgCosmosWantedPagesMaxTitlesCount Integer 6 Set to the max number of wanted pages to display in the create page dialog, if wanted pages are enabled.
$wgCosmosWantedPagesFetchedNamespaces Array [ NS_MAIN ] Set to an array of namespaces to fetch wanted pages from, if wanted pages are enabled for the create page dialog.
Associative arrays
Option Default value Documentation
$wgCosmosEnabledRailModules
 'recentchanges' => false,
 'interface' => [
       'cosmos-custom-rail-module' => 'normal',
       'cosmos-custom-sticky-rail-module' => 'sticky'
 ]
Sets which rail modules will be enabled on Cosmos, and whether they are 'sticky' or 'normal'. 'interface' can be an array of any size with a list of interface messages for Cosmos to recognize as a new custom right rail. For any rail module, it can be mapped to either 'normal' or 'sticky', 'normal' will make them stay in a fixed position on the page, and 'sticky' makes them stick to the page as you scroll down. Setting it to false will disable the specific rail module entirely. If interface messages, set in the config are set to '-', don't exist, or are completely empty, it will treat them as disabled and won't appear in the rail at all. If no modules are appearing in rail, then the article area will expand to cover the rail area. If you don't have JavaScript enabled in your browser, then it is recommended to only have one sticky rail module enabled at the same time, otherwise they will overlap on top of each other. Also see other configs for rail.

Extension configuration settings

SocialProfile

These configuration settings require SocialProfile to be installed in order to use them.

Option Type Default value Requires Documentation
$wgCosmosSocialProfileAllowBio Boolean true Allows users to add a bio to display on their user pages, through Special:MyPage/bio.
$wgCosmosSocialProfileFollowBioRedirects Boolean false $wgCosmosSocialProfileAllowBio set to true Whether or not to follow redirects from Special:MyPage/bio and display the redirect target as bio instead. (experimental)
$wgCosmosSocialProfileModernTabs Boolean true Enables a modern version of the tabs on SocialProfile profile pages.
$wgCosmosSocialProfileRoundAvatar Boolean true Makes the avatar round on SocialProfile profile pages.
$wgCosmosSocialProfileShowEditCount Boolean true Show's the edit count and registration date for the user on SocialProfile profile pages, underneath their username.
$wgCosmosSocialProfileShowGroupTags Boolean true $wgCosmosNumberofGroupTags set and more than zero; $wgCosmosProfileTagGroups set with at least one usergroup in the array Enables usergroup tags to appear next to user's username on SocialProfile profile pages.
$wgCosmosSocialProfileTagGroups Array [ 'bureaucrat', 'bot', 'sysop', 'interface-admin' ] $wgCosmosSocialProfileNumberofGroupTags set and more then zero; $wgCosmosSocialProfileShowGroupTags set to true Array of usergroups to show on SocialProfile pages if the user has them.
$wgCosmosSocialProfileNumberofGroupTags Integer 2 $wgCosmosSocialProfileTagGroups set with at least one usergroup in the array; $wgCosmosSocialProfileShowGroupTags set to true Set the max number of group tags to show on a user's SocialProfile page if they have them.
$wgCosmosUseSocialProfileAvatar Boolean true Use SocialProfile avatar as avatar next to username in top banner (the banner with the personal tool drop-down). If user doesn't have an avatar and this is set, will use the default SocialProfile avatar.

PortableInfobox

These configuration settings require PortableInfobox to be installed in order to use them.

Option Type Default value Requires Documentation
$wgCosmosEnablePortableInfoboxEuropaTheme Boolean true $wgCosmosButtonBackgroundColor set; Enables the Europa theme from Fandom's portable infobox extension on the ported extension.

Usage

Interface

MediaWiki:Cosmos-tagline
Modifies the sitename text in the wiki header. Defaults to the value of MediaWiki:Sitename.
MediaWiki:Cosmos-navigation
Modifies the site navigation for this skin; defaults to MediaWiki:Sidebar, although it is recommended to copy MediaWiki:Sidebar to MediaWiki:Cosmos-navigation and follow the Cosmos navigation format for the best results. This navigation can be up to 3 levels deep, and allows a few variables to be used:
  • {$NEWVIDEOS_CONDITIONAL} (alternatively, {$NEWVIDEOS}) will display a link to Special:NewVideos only when the Video extension is enabled.
  • {$WANTEDPAGES_CONDITIONAL} (alternatively, {$WANTEDPAGES}) will display a link to Special:WantedPages only when the Video extension is not enabled.
  • {$WANTEDPAGES_FORCE} will display a link to Special:WantedPages regardless of if the Video extension is enabled or not.

The navigation should be in the format of:


*#|Community
**mainpage|mainpage-description
**recentchanges-url|recentchanges
**portal-url|portal
*link|Tab title/level one
**Level 2 tab title
***Level 3 content 1

*cosmos-explore
**recentchanges-url|recentchanges
**randompage-url|randompage
**Special:NewFiles|cosmos-newfiles
{$NEWVIDEOS_CONDITIONAL}
{$WANTEDPAGES_CONDITIONAL}

and, defaults to:


{{int:Sidebar}}
*cosmos-explore
**recentchanges-url|recentchanges
**randompage-url|randompage
**Special:NewFiles|cosmos-newfiles
{$NEWVIDEOS_CONDITIONAL}
{$WANTEDPAGES_CONDITIONAL}

Parser functions

Cosmos provides a couple parser functions:

  • {{#ADDITIONALBODYCLASS}}
    • Description: Allows to add additional body class to particular pages to allow for further per-page customisation with CSS. Available as of version 6.2.0.
    • Usage: {{#ADDITIONALBODYCLASS:class-name}}
  • __NORAIL__
    • Description: provides a magic word to hide the rail on particular pages. Available as of version 6.0.0.
    • Usage: Put __NORAIL__ at the top of the page you want to hide the rail on.

Notes

  • On large wikis, it is recommended to set either $wgCosmosEnableWantedPages = false; or $wgCosmosFetchWantedPagesFromCache = true; (both available since version 6.2.0), otherwise it can have significant performance impact.
  • As of version 6.2.0, MediaWiki:Cosmos-navigation is cached to provide performance improvements and not fetch this on every page load. This cache is reset when any interface message is updated.
  • As of version 5.0.0 Cosmos has a special page, Special:ThemeDesigner, that allows some theme-related Cosmos configs be modified on-wiki. It also comes with the themdesigner right, which is given to sysops by default and is required in order to enter Special:ThemeDesigner. This is a highly experimental feature.
  • As of version 4.0.0, Cosmos supports MediaWiki 1.36.
  • Cosmos uses the Special:Statistics article count, therefore setting $wgArticleCountMethod = 'any'; and afterwards running maintenance/UpdateArticleCount.php will make that counter use all content pages.
    • Counter will not display at all if user does not have the read userright.
  • An "Admin Dashboard" icon will appear if the AdminLinks extension is enabled and you have the needed right (adminlinks).
  • Links to Special:AddVideo will appear if the Video extension is enabled and you have the needed right (addvideo).
  • Cosmos uses cookies for the sitenotice by default. If the DismissableSiteNotice extension is enabled, then Cosmos will convert to that extension instead.
  • Cosmos supports Echo notifications. If the Echo extension is enabled and the user is logged in then Cosmos will display notification icons next to the personal tools menu.
  • Cosmos has a create article method to easily create articles through a popup.
    • Will not appear if user does not have both the edit and createpage rights.
  • Cosmos supports the mobile responsiveness preference provided by MediaWiki core.
  • Cosmos is tested and works with VisualEditor .
  • There are body classes for the main page, whether a user is logged in or not, and whether $wgCosmosContentBackgroundColor is set to a light or dark theme (theme-dark or theme-light classes).

Planned features

  • All the formerly planned features have now been implemented. If you wish to request a feature, please do so on the talk page of this skin.