How to not write a skin
I absolutely love Vector. I think it’s a fantastic refresh of the classic Monobook skin and I wouldn’t mind seeing it as the default skin for MW one day. However, I think it was written very poorly.
The Mediawiki skin system sucks donkey balls. Once upon a time, we had a base skin class called Skin. New skins extended this class and customized the portions they need. Then along came Monobook and the absolute hell that is SkinTemplate. The skin system is now a hybrid: some older skins directly subclass Skin (which is technically correct) and anything more recent (Monobook, Modern, Vector) all subclass SkinTemplate. The problem with SkinTemplate is that it basically forked the skin system. We now have 2 ways to make skins–subclassing either Skin or SkinTemplate–neither of which are terribly intuitive for new users. When Modern was written, it basically made a copy of Monobook, changed a few things and called it a skin.
When the Usability Team set out to write a new skin this was the prime time to make this whole system make sense. Refactoring as much as possible out of the custom skins and unifying the UI across skins as much as possible would be awesome. Killing SkinTemplate with fire would be even better. Sadly, we got another skin built in the same crappy way using SkinTemplate. Even more work to whatever poor soul finally decides to tackle making a sane skin system.

Glad to see that you are enjoying Vector – thank you very much for the kind words.
When I first set out to design the Vector skin, I had about 2 weeks to do so, and it had to work without any JavaScript, in both left-to-right and right-to-left languages, and in a large number of browsers including Internet Explorer 5.5. After spending 2 days prototyping out a new skinning system, it became clear that I was not going to have enough time to do both the skin and skinning system re-factoring. So while I agree with you very much, unfortunately the work of re-factoring the skinning system of MediaWiki fell too far outside the scope of the grant that is funding my work.
But hey, it’s open source! Anyone can do this work! Any takers?
- Trevor Parscal
I would, but it’s sooooooo messy. Couldn’t pay me enough to fix Skin(Template)
That being said, you guys have done a great job with Vector given the constraints of our skinning system.