The FandomDesktop conversion guide is intended as a quick reference for converting older wikis from Oasis and Hydra skins to the current FandomDesktop skin.
- Note: Admin Dashboard was enabled for Gamepedia wikis on FandomDesktop and can be accessed at Special:AdminDashboard.
New custom CSS / JS files
- MediaWiki:Fandomdesktop.css
- MediaWiki:Fandomdesktop.js
Neither MediaWiki:Wikia.css nor MediaWiki:Wikia.js will load on FandomDesktop. All custom coding needs to be moved to these new style sheets.
Feature changes
Tabber
.tabber class for the tabber container will remain.
All other class names are removed and replaced with Fandom Design System classes: wds-tabs__tab for tabs and wds-tabs__content for tabs content.
Base layout
Migrating from GP wiki
- the whole page container (with navigation) #pageWrapper can be now accessed by .resizable-container class, but navigation is now on the top of the page
- there is now the main page wrapper with .page class which contains the content container and the right rail (if right rail is present, this element also contains .has-right-rail class)
- there is now the main content container with .page__main class which contains page header, content, and the page footer
- article content #content or .mw-body can be now accessed by #content id or .page-content class
- page header can be accessed by .page-header class
- page footer can be accessed by .page-footer class
- right rail can be accessed by #WikiaRailWrapper id or .WikiaRail class
Migrating from Fandom wiki
- the whole page container (with navigation) .WikiaPage can be now accessed by .resizable-container class
- main page wrapper (with right rail) .WikiaPageContentWrapper can be now accessed by .page class (if right rail is present, this element also contains .has-right-rail class). It contains the content container and the right rail
- main content container #WikiaMainContentContainer or .WikiaMainContentContainer can be now accessed by .page__main class. It contains page header, content, and the page footer
- article content #content or .WikiaArticle can be now accessed by #content id or .page-content class
- page header (accessed by #PageHeader or .page-header ) can be now accessed by .page-header class
- page footer can be accessed by .page-footer class
- right rail (accessed by #WikiaRailWrapper or .WikiaRail ) can now be accessed .right-rail-wrapper class
Portable infobox
Visual changes
- border around infobox container is added by default
Default background for titles (.pi-title) and headers (.pi-header) is set to accent color (--theme-accent-color) and font color is calculated dynamically and set to --theme-accent-label-color. For some customizations this may cause the label to be illegible.
Recommended solution:
.portable-infobox {
--pi-secondary-background--label: #CUSTOM_HEADER_FONT_COLOR;
}
Changed markup for tabs
- HTML markup for panel and image collection tabs has changed completely, which means that no customizations for the tabs is supported.
Old markup for image-colection (simplified):
<div class="pi-image-collection">
<ul class="pi-image-collection-tabs">
<li class="pi-tab-link pi-item-spacing current">
<span class="pi-tab-label">
CAPTION
</span>
</li>
</ul>
<div class="pi-image-collection-tab-content current">
<figure class="pi-item pi-image">
<a class="image image-thumbnail">
IMAGE OR VIDEO
</a>
</figure>
</div>
</div>
New markup for image-collection (simplified):
<div class="pi-image-collection wds-tabber">
<div class="wds-tabs__wrapper">
<ul class="wds-tabs">
<li class="wds-tabs__tab wds-is-current">
<span class="wds-tabs__tab-label">
CAPTION
</span>
</li>
</ul>
</div>
<div class="wds-tab__content wds-is-current">
<figure class="pi-item pi-image">
<a class="image image-thumbnail">
IMAGE OR VIDEO
</a>
</figure>
</div>
</div>
Old markup for panels (simplified):
<section class="pi-item pi-panel pi-border-color">
HEADER
<div class="pi-panel-scroll-wrapper">
<ul class="pi-section-navigation">
<li class="pi-section-tab pi-section-active">
<div class="pi-section-label">
LABEL
</div>
</li>
</ul>
</div>
<div class="pi-section-contents">
<div class="pi-section-content pi-section-active">
CONTENT
</div>
</div>
</section>
New markup for panels (simplified):
<section class="pi-item pi-panel pi-border-color wds-tabber">
HEADER
<div class="wds-tabs__wrapper">
<ul class="wds-tabs">
<li class="wds-tabs__tab wds-is-current">
<div class="wds-tabs__tab-label">
LABEL
</div>
</li>
</ul>
</div>
<div class="wds-tab__content wds-is-current">
CONTENT
</div>
</section>
CSS variables available for Portable Infobox customization
.portable-infobox {
--pi-background: /* MAIN BACKGROUND COLOR */
--pi-secondary-background: /* TITLE AND HEADERS BACKGROUND COLOR */
--pi-secondary-background--label: /* TITLE AND HEADERS FONT COLOR */
--pi-border-color: /* BORDER COLOR */
}
Example:
.portable-infobox {
--pi-background: rgba(var(--theme-sticky-nav-dynamic-color-1--rgb), 0.05);
--pi-secondary-background: var(--theme-sticky-nav-background-color);
--pi-secondary-background--label: var(--theme-sticky-nav-text-color);
--pi-border-color: var(--theme-border-color);
}
Community background image
The theme designer provides some extended possibilities for customizing the appearance of the community background image. However, if you’re willing to port your existing CSS/JS customizations of the background there’s a new class name: .fandom-community-header__background.
Features that changed in comparison to Oasis
Galleries
Galleries on FandomDesktop are based on the MediaWiki native gallery solution.
There are two major changes in gallery syntax:
- To determine gallery style you'll need to use mode instead of type property. In order to ensure backward compatibility with all the galleries created on Oasis, type property is still supported. However, it is encouraged to create new galleries using the new mode property.
- Support for certain gallery properties has been discontinued. See below for full list:
<gallery> element attributes
Traditional | ||
type | Temporarily supported | Should be replaced with the equivalent "mode" attribute. |
widths | Supported | |
columns | Not supported | Can be replaced with equivalent "perrow" attribute. |
perrow | Supported | |
position | Not supported | |
spacing | Not supported | |
orientation | Not supported | |
captionposition | Not supported | captionposition="within" could be replaced with similar-looking mode="packed-overlay" |
captionalign | Not supported | |
captiontextcolor | Not supported | |
bordersize | Not supported | |
bordercolor | Not supported | |
hideaddbutton | Not supported | |
caption | Supported | |
Slideshow | ||
widths | Supported | |
crop | Not supported | |
showrecentuploads | Not supported | |
position | Not supported | |
Slider | ||
orientation | Supported |
Additional notes:
- Fandom gallery images are "frameless" by default, whereas MW gallery images are displayed in a thick frame. In order to preserve the same looks of a gallery, it has to be either handled by custom styling or mode="nolines" has to be added to all galleries as part of the migration.
Features that changed in comparison to Hydra/HydraDark
Galleries
New gallery mode - slider
Gamepedia communities will now have a new slider gallery mode available.
Usage:
<gallery mode="slider">
Image.jpg
Image2.jpg
...
</gallery>
Slider gallery accepts one additional attribute named orientation, which accepts values bottom (default) or right and determines the position of the slider navigation.
Theming variables
In the FandomDesktop skin, users have access to new variables representing theme colors. These variables will be accessible in CSS.
Example hex value: #ffffff
Example Red, Green, Blue color values: 0,0,0
Variable name | Description |
--theme-accent-color
|
Accent color taken from ThemeDesigner, presented as hex value |
--theme-accent-color--hover
|
Accent color taken from ThemeDesigner, darkened or lightened by 20%, depending on theme, presented as hex value |
--theme-accent-color--rgb
|
Accent color taken from ThemeDesigner, presented as group of Red, Green, Blue values |
--theme-accent-dynamic-color-1
|
dynamic-1 color for accent. See Dynamic Colors section for more info. |
--theme-accent-dynamic-color-1--rgb
|
dynamic-1 color rgb components for accent. See Dynamic Colors section for more info. |
--theme-accent-dynamic-color-2
|
dynamic-2 color for accent. See Dynamic Colors section for more info. |
--theme-accent-dynamic-color-2--rgb
|
dynamic-2 color rgb components for accent. See Dynamic Colors section for more info. |
--theme-accent-label-color
|
Accessible text color to use with --theme-accent-color background, presented as hex value |
--theme-alert-color
|
Alert color (red-ish), adjusted for proper contrast comparing with page background, presented as hex value |
--theme-alert-color--hover
|
Alert color (red-ish) adjusted for proper contrast comparing with page background, darkened or lightened by 20%, depending on theme, presented as hex value |
--theme-alert-color--rgb
|
Alert color (red-ish), adjusted for proper contrast comparing with page background, presented as group of Red, Green, Blue values |
--theme-alert-label
|
Accessible text color to use with --theme-alert-color background, presented as hex value |
--theme-body-background-color
|
Body background color taken from ThemeDesigner, presented as hex value |
--theme-body-background-image
|
URL to background image, taken from ThemeDesigner, presented as string |
--theme-body-dynamic-color-1
|
dynamic-1 color for body background. See Dynamic Colors section for more info. |
--theme-body-dynamic-color-1--rgb
|
dynamic-1 color rgb components for body background. See Dynamic Colors section for more info. |
--theme-body-dynamic-color-2
|
dynamic-2 color for body background. See Dynamic Colors section for more info. |
--theme-body-dynamic-color-2--rgb
|
dynamic-2 color rgb components for body background. See Dynamic Colors section for more info. |
--theme-body-text-color
|
Accessible text color to use with --body-background-color background, presented as hex value |
--theme-body-text-color--hover
|
Accessible text color to use with --body-background-color background, darkened or lightened by 20%, depending on theme, presented as hex value |
--theme-border-color
|
Accessible border color calculated based on --theme-page-background-color, presented as hex value |
--theme-border-color--rgb
|
Accessible border color calculated based on --theme-page-background-color, presented as group of Red, Green, Blue values |
--theme-link-color
|
Link color taken from ThemeDesigner, presented as hex value |
--theme-link-color--hover
|
Link color taken from ThemeDesigner, darkened or lightened by 20%, depending on theme, presented as hex value |
--theme-link-color--rgb
|
Link color taken from ThemeDesigner, presented as group of Red, Green, Blue values |
--theme-link-dynamic-color-1
|
dynamic-1 color for links. See Dynamic Colors section for more info. |
--theme-link-dynamic-color-1--rgb
|
dynamic-1 color rgb components for links. See Dynamic Colors section for more info. |
--theme-link-dynamic-color-2
|
dynamic-2 color for links. See Dynamic Colors section for more info. |
--theme-link-dynamic-color-2--rgb
|
dynamic-2 color rgb components for links. See Dynamic Colors section for more info. |
--theme-link-label-color
|
Accessible text color to use with --theme-link-color background, presented as hex value |
--theme-message-color
|
Message color (blue-ish), adjusted for proper contrast comparing with page background, presented as hex value |
--theme-message-label
|
Accessible text color to use with --theme-message-color background, presented as hex value |
--theme-page-accent-mix-color
|
Mix of a page background color and accent color in the 50-50 ratio |
--theme-page-background-color
|
Page (article) background color taken from ThemeDesigner, presented as hex value |
--theme-page-background-color--rgb
|
Page (article) background color taken from ThemeDesigner, presented as group of Red, Green, Blue values |
--theme-page-background-color--secondary
|
Secondary color calculated based on --theme-page-background-color, slightly mixed with white or black color, depending on theme, presented as hex value |
--theme-page-dynamic-color-1
|
dynamic-1 color for page (article) background. See Dynamic Colors section for more info. |
--theme-page-dynamic-color-1--rgb
|
dynamic-1 color rgb components for page (article) background. See Dynamic Colors section for more info. |
--theme-page-dynamic-color-2
|
dynamic-2 color for page (article) background. See Dynamic Colors section for more info. |
--theme-page-dynamic-color-2--rgb
|
dynamic-2 color rgb components for page (article) background. See Dynamic Colors section for more info. |
--theme-page-text-color
|
Text color for a page. Alias for --theme-page-dynamic-color-2. |
--theme-page-text-color--hover
|
Hover state of a page text color |
--theme-page-text-color--rgb
|
RGB components of page text color |
--theme-page-text-mix-color
|
Mix of a page background color and page dynamic-2 color in the 50-50 ratio |
--theme-sticky-nav-background-color
|
Sticky nav background color. This color can be set inside the Theme Designer. |
--theme-sticky-nav-dynamic-color-1
|
dynamic-1 color for sticky nav background. See Dynamic Colors section for more info. |
--theme-sticky-nav-dynamic-color-1--rgb
|
dynamic-1 color rgb components for sticky nav background. See Dynamic Colors section for more info. |
--theme-sticky-nav-dynamic-color-2
|
dynamic-2 color for sticky nav background. See Dynamic Colors section for more info. |
--theme-sticky-nav-dynamic-color-2--rgb
|
dynamic-2 color rgb components for sticky nav background. See Dynamic Colors section for more info. |
--theme-sticky-nav-text-color
|
Text color for sticky nav. Alias for --theme-sticky-nav-dynamic-color-1 |
--theme-sticky-nav-text-color--hover
|
Hover state of a sticky nav text color |
--theme-success-color
|
Success color (green-ish), adjusted for proper contrast comparing with page background, presented as hex value |
--theme-success-color--rgb
|
Success color (green-ish), adjusted for proper contrast comparing with page background, presented as group of Red, Green, Blue values |
--theme-success-label
|
Accessible text color to use with --theme-success-color background, presented as hex value |
--theme-warning-color
|
Warning color (yellow-ish), adjusted for proper contrast comparing with page background, presented as hex value |
--theme-warning-label
|
Accessible text color to use with --theme-warning-color background, presented as hex value |
Dynamic Colors
Dynamic colors are established on the basis of their background. They are calculated to reach the best contrast ratio possible.
dynamic-color-1
is fandom-black (#0E191A) for light backgrounds and white (#FFFFFF) for dark backgrounds.dynamic-color-2
is dark grey (#3A3A3A) for light backgrounds and light grey (#E6E6E6) for dark backgrounds.
Variable aliases
Variable name | Alias for |
--theme-accent-label-color
|
--theme-accent-dynamic-color-1
|
--theme-body-text-color
|
--theme-body-dynamic-color-1
|
--theme-link-label-color
|
--theme-link-dynamic-color-1
|
--theme-page-text-color
|
--theme-page-dynamic-color-2
|
--theme-sticky-nav-text-color
|
--theme-sticky-nav-dynamic-color-1
|
Theme-specific selectors
You can also specify each theme for the instances where you need different behaviour based purely on the theme choice.
.theme-fandomdesktop-light
is for elements that are themed for the light theme..theme-fandomdesktop-dark
is for elements that are themed for the dark theme.
Further help and feedback
- Browse and search other help pages at Help:Contents
- Check Fandom Community Central for sources of further help and support
- Check Contacting Fandom for how to report any errors or unclear steps in this article