Community Central

Fandom Staff are on Twitch to give you a behind the scenes look at our work. Check out episode 2 of "The Downstream"

READ MORE

Community Central
Advertisement
Community Central

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

Advertisement