Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Modified VS 2012 Theme - Cool Blue

0.00/5 (No votes)
6 Sep 2012 3  
Modifed theme color settings for Visual Studio 2012.

Introduction

Due to Microsoft's flagrant disregard for the thousands of developers who have voiced their utter dislike for the new theme colors used in Visual Studio 2012, it was necessary to create a custom theme in order to even consider using the new IDE. Included in this article are an outline of the key changes made to the VS 2012 UI, the tools used, and a little background on why this was necessary. I've included some files & links to make it easy for everyone to do for themselves what Microsoft should have done in the first place: Create a clean, colorful, user-friendly interface.

Background

Microsoft blatantly ignored the number one complaint amongst developers who tested the Beta & Release Candidate versions of Visual Studio 2012: The horrific choice of colors used in its 'Light' and 'Dark' color themes, as well as the switch to monotone icons. Even a cursory review of the thousands of comments reveals the new theme colors & icons result in a significant decline in developer productivity and desire to use the new UI. Some comments even indicate that the dismal colors may lead to thoughts of suicide. Although Microsoft did add back a miniscule amount of color in a few areas of the final product, the software giant clearly disregarded the majority of developers who flat out hate what its design team did to Visual Studio.

Obviously, it is a very unfortunate decision on the part of Microsoft and the Visual Studio design team not to listen to those of us who tried our best to voice our dislike for the new UI. I have already read numerous posts by developers who are either considering adopting a new IDE, or are simply not upgrading to VS 2012 until Microsoft fixes the problem.

I personally considered not purchasing VS 2012. However, there are a few compelling additions to the .NET Framework 4.5 I would like to take advantage of. As such, I took it upon myself to come up with a cleaner and more user-friendly color theme.

The New 'Cool Blue' Theme

As a fan of both the VS 2010 color scheme, as well as the Microsoft Office 2010 Blue theme, I decided to base my VS 2012 Cool Blue theme on those. Below is a screen shot that captures most of the key color elements.

Obviously, we all have differing ideas on what works best for us. It doesn't matter to me if you want to use this theme as-is or modify it to suit your own tastes. In fact, I’d love to see more user-designed themes pop up; I know we can do a better job than Microsoft! I will note that this was just a quick-and-dirty run through of re-coloring the UI. I tried to make things pop, ease eyestrain, create some much-needed differentiation between the different areas of the UI, etc... And of course, hopefully keep a few of my peers from slitting their wrists.

Screen Shot

Change Notes, Links, and Files

The first key change I made was to tweak the Registry entry to eliminate the ALL CAPS menus. WHAT was Microsoft thinking when they did that?! Here's a link to Richard Banks' article that covers this easy fix.

To modify the UI colors, I used Brian Chavez's Visual Studio 2012 Theme Editor. As he notes, this is a very basic, though functional, program. I began with the 'Light' theme, and modified it to get what I wanted.

One of the key problems I ran into was trying to figure out what properties (Theme Records) affected what parts of the UI. To help with this, I dumped all of the values to an Excel spreadsheet. I've included this spreadsheet, which shows the original color values of the 'Light' theme and notes my changes.

To make things easier, I did sort each of the theme Categories alphabetically. To get the Theme Records listing to match, just add a simple sorter to the ThemeReader class:

private class ColorRecordSorter : IComparer<ColorRecord>
{
    public int Compare(ColorRecord x, ColorRecord y)
    {
      
        return (x.Name.CompareTo(y.Name));
    }
}

Then, within the UnpackColorCategory method, add this line before returning the Category:

category.ColorRecords.Sort(new ColorRecordSorter());

I've included the modified Registry Editor (.reg) file and the Excel spreadsheet with my notes in the attached .ZIP file.

Good luck and happy coding!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here