Page MenuHomePhabricator

Add support for multiple skins
Open, LowPublic

Description

Currently, the mainline Dashboard app is themed with Wiki Education Foundation branding and visual identity. The community version running at educationdashboard.wmflabs.org is a fork where I did some simple hacks to change the color definitions and logo file.

However, it'd be much more practical to find a way to include both a general theme and a Wiki Ed theme in the mainline repo and select the theme as part of the configuration for an individual instance.

I'm not sure how to get started with that, especially since the css files are compiled and checked in to the repo.

Event Timeline

Ragesoss raised the priority of this task from to Needs Triage.
Ragesoss updated the task description. (Show Details)
Ragesoss subscribed.
awight renamed this task from Add support for a general Wikimedia theme to Add support for a multiple themes.Dec 8 2015, 3:57 AM

@Ragesoss
One alternative to having compiled CSS in the master branch would be to only commit build outputs to a "deployment" branch. This is what we do in WMF Fundraising, and I've grown to like it.

Regardless of how "binary" deployment happens, I really like the idea you bring up of supporting multiple skins. I've changed the task to focus on that goal, please feel free to revert me though.

awight renamed this task from Add support for a multiple themes to Add support for multiple skins.Dec 8 2015, 4:02 AM

@awight: we've already moved compiled CSS and Javascripts out of git. Compiling and uploading them is now part of the Capistrano deploy process. (How we got there: we needed to fingerprint our javascripts to make sure clients weren't getting bugs because they still had cached javascripts. Adding a deleting the huge compiled javascript on each commit got old real quick.) At this point, the deploy process usually happens via Travis, also, so that we know the build environment for the assets is consistent.

@awight: there's currently a CSS refactor going on, so it should be pretty easier to set up a skin system after that, via stylus variables. (I think.)