To get updates on new site content, like us on Facebook or follow us on Twitter.

Difference between revisions of "Sysadmin:Jefreshed Skin: A Customization of Refreshed"

From JFA Wiki
(The Solution)
(The Problem)
Line 5: Line 5:
 
== The Problem ==
 
== The Problem ==
  
Using the special page ''MediaWiki:Common.css'' presents a very inefficient workflow when making changes in dev and moving those changes to production. And using an external CSS file does not solve the problem of flashing described below.
+
Using the special page ''MediaWiki:Common.css'' presents a very inefficient workflow, especially when making changes in dev and moving those changes to production. And using an external CSS file does not solve the problem of flashing described below.
  
 
Making changes to the skin using ''MediaWiki:Common.css'' and ''/jfa/code/jfa.css'' was having side effects because of protected user pages flashing blue, the original dominant color of ''Refreshed''. After moving the CSS from ''Common.css'' to ''/jfa/code/jfa.css'', it still had to be in ''Common.css'' to avoid flashing blue because of the timing of browser rendering. It was either that or set ''$wgAllowSiteCSSOnRestrictedPages'' to true, compromising security. Even then, there was still some flashing. The flashing is caused by the skin CSS being used to render the page before the overriding  CSS kicked in.
 
Making changes to the skin using ''MediaWiki:Common.css'' and ''/jfa/code/jfa.css'' was having side effects because of protected user pages flashing blue, the original dominant color of ''Refreshed''. After moving the CSS from ''Common.css'' to ''/jfa/code/jfa.css'', it still had to be in ''Common.css'' to avoid flashing blue because of the timing of browser rendering. It was either that or set ''$wgAllowSiteCSSOnRestrictedPages'' to true, compromising security. Even then, there was still some flashing. The flashing is caused by the skin CSS being used to render the page before the overriding  CSS kicked in.

Revision as of 08:28, 23 February 2019

Jefreshed Skin

This page describes the Jefreshed skin that we are using, the reasons for creating it, some implications of using it, and information on how to use it.

The Problem

Using the special page MediaWiki:Common.css presents a very inefficient workflow, especially when making changes in dev and moving those changes to production. And using an external CSS file does not solve the problem of flashing described below.

Making changes to the skin using MediaWiki:Common.css and /jfa/code/jfa.css was having side effects because of protected user pages flashing blue, the original dominant color of Refreshed. After moving the CSS from Common.css to /jfa/code/jfa.css, it still had to be in Common.css to avoid flashing blue because of the timing of browser rendering. It was either that or set $wgAllowSiteCSSOnRestrictedPages to true, compromising security. Even then, there was still some flashing. The flashing is caused by the skin CSS being used to render the page before the overriding CSS kicked in.

Also, having our mods are fully incorporated into the skin rather than overwriting parts of the skin will provide new opportunities for customization and more efficient rendering in the browser.

The Solution

A new skin named Jefreshed was created from the Refreshed skin.

  • The Refreshed skin was copied and global changes were made to identifiers and files were renamed as appropriate.
    • "Refreshed" became "Jefreshed."
    • "refreshed" became "jefreshed."

Implications for Updates

If Refreshed is changed in the future to be compatible with a new release of MediaWiki, we will need to do a diff comparing the old version of Refreshed with the new version of Refreshed, and incorporate any required or desired changes in Jefreshed. The Refreshed skin directory was renamed Refreshed-original so that if a new version is released and uploaded, it won't overwrite the original, making the diff mentioned above difficult or maybe impossible if no versions of the original can be found.

Jefreshed does not use the $wgLogo setting in LocalSettings.php, as a carryover from Refreshed.

Use the following special pages

For optimal display on Refreshed's mobile skin, you should consider either using downscaled images or SVG images so that the logo does not display as blurry on "retina" (high PPI) mobile device screens. See https://www.mediawiki.org/wiki/Skin:Refreshed#Logo/Wordmark

How CSS from Common.js was incorporated

The file jfacustom.css was created within the Jefreshed skin where the other CSS files reside:

skins/Jefreshed/jefreshed/styles/screen/jfacustom.css

Custom CSS was moved from the front-end page MediaWiki:Common.css into this file. The goal is to eventually integrate the CSS in jfacustom.css into the original skin files.

To get this file to load, it was included in skins.json to be loaded by the MediaWiki resource loader:

"jefreshed/styles/screen/jfacustom.css": 
      "media": "(max-width: 3001px)"

The max-width media query was specified so that jfacustom.css CSS would be loaded after all the other CSS files. That's just the way the loader works—no need to fight it. The max-width value is such the CSS will apply to all non-ridiculous screen sizes.