Theming in Visual Studio just got a lot easier

Mads Kristensen

Mads

Sometimes the default themes for Visual Studio just aren’t enough. Lucky for us, we’ve just redesigned the process of creating and importing custom themes.

One of the only ways to import themes was to download the older Color Theme Editor extension. If you were brave enough to create your own theme, you had to edit elements one by one from an unorganized list of 3,000+ vaguely named color tokens.

This summer, a group of interns has developed a newly released Color Theme Designer extension, and we’re hoping that making custom themes just got a whole lot simpler for beginner and advanced designers alike.

A new theming experience

Finding and using a new theme is now as easy as downloading any other extension. Just check out the new Themes category in the Visual Studio Marketplace to download themes that other users have published.

For theme designers, the new Color Theme Designer comes with a more familiar startup workflow and a simplified design.

We’re introducing ‘Quick start,’ a feature that lets you create a custom theme in minutes by picking three base colors. For more specific customizations, the redesigned ‘Common elements’ and ‘All elements’ tabs allow you to edit all color tokens individually. The new ‘Preview’ mode lets you see edits real-time before fully saving and applying your theme. Your final product will be a Visual Studio extension that puts your theme alongside the default themes under Tools -> Options.

Let’s create a theme!

1. Set up your theme project

If you’re ready to get started making your first theme (or theme pack!), download the Color Theme Designer and create a new ‘VSTheme Project’ in Visual Studio.

The new project will contain an empty .vstheme file. Opening the file will prompt you to pick a base theme.

The base theme you select will fill the theme file with color tokens that you can later customize.

2. Start customizing

Only got 15 minutes?

In ‘Quick start,’ you select three colors which will generate a full palette of shades that set the majority of colors in the theme. A miniature preview displays how the colors will generally appear in Visual Studio.

Want to dive in deeper?:

‘Common elements’ has roughly 100 of the most commonly edited color tokens organized under five main categories. Next to each row of tokens, a snippet preview will update as you change the colors.

‘All elements’ shows every editable color token in a list that can be grouped by category or color value. Right-clicking tokens gives you the option to modify the hue, saturation, and lightness of the selection. If you can’t find a token that you are looking for, try filtering by a hex value or key words in the token name.

If you’d like to add additional theme files to your project, right-click to Add -> New Item -> VSTheme File.

Try clicking ‘Preview’ while customizing your theme to see your edits applied temporarily to the entire IDE!

3. Install your theme

When you’re finished customizing your theme, click ‘Apply’ if you’d like to start using it immediately. Your theme will appear under Tools -> Options -> General in the Color Themes dropdown alongside the default Visual Studio themes. To remove your theme, go to the Manage Extensions dialog and simply uninstall it like any other extension.

Otherwise, build your theme project and locate. the .vsix file in the project’s output directory (‘bin’ folder) to install the theme extension. Use the .vsix file to share your theme with friends or publish it to the Visual Studio Marketplace!

In closing

What do you think of the new Color Theme Designer? Are there any features you would like to see included in the future? Please let us know your thoughts in the comments below.

We hope you feel inspired to download the new extension and begin making your own color themes, but if not, check out the Visual Studio marketplace to download themes that other users have made!

 

This blog post was written by:

Prasiddhi Jain
University of North Carolina
Anna Owens
North Carolina State University
James Fuller
North Carolina A&T
Prasiddhi Jain
Mads Kristensen
Mads Kristensen

Senior Program Manager, Visual Studio Extensibility

Follow Mads   

22 Comments
Avatar
Parth Doshi 2019-08-01 22:30:43
I've been waiting for something like this! Can't wait to test this out. 
Avatar
Icke Dieter 2019-08-02 00:28:30
Will the extension be open sourced?
Avatar
Varorbc 朱 2019-08-02 00:32:03
Is it possible to update an existing black theme to be consistent with the black theme in Visual Studio Code?https://github.com/microsoft/vscode/blob/master/extensions/theme-defaults/themes/dark_defaults.json
Avatar
Daniel Smith 2019-08-02 01:27:23
This is absolutely fantastic Mads!  What a well thought out and user friendly way to visually create themes.  It's difficult to please everyone when it comes to UI customisation, so being able to produce our own themes is a perfect way to keep everyone happy :-)
Avatar
Mike Walter 2019-08-02 07:54:50
I created a a simple theme, applied it and then restarted visual studio.   Many of my c++ items' colors turned to Default on Default (black on black).  Once I set the theme back to Blue, the colors were correct.
Avatar
Joe Woodbury 2019-08-02 14:45:21
I recently used the older tool to get the theme of VS 2019 to match the blue theme of VS 2017. It angers me because with little effort, Microsoft could have added the VS 2017 blue theme to VS 2019 and I wouldn't have to use any of these tools.
Avatar
Graham Harris 2019-08-03 07:39:34
Can you bring back the custom tab colouring based on what project the tab belongs to?
Avatar
Alexander Gayko 2019-08-03 15:37:33
Hey, now that creating color themes is easy, I built an extension to switch color themes depending on a file in source control: https://marketplace.visualstudio.com/items?itemName=AlexanderGayko.AutoThemeSwitcher Feedback is very welcome :-)
Avatar
Alexander Gayko 2019-08-03 19:13:27
Now that Color themes are easy to create, I built an extension that automatically changes the color theme depending on a (version controlled) file: https://marketplace.visualstudio.com/items?itemName=AlexanderGayko.AutoThemeSwitcher It's open source. Input welcome.
Avatar
Cynthia Z E MacLeod 2019-08-05 02:48:09
Will this work with SSMS 18.x? It would be great to be able to design a proper dark theme (or steal the VS2017/2019 one) and apply it.
Avatar
shbouwhuis@gmail.com 2019-08-07 01:25:12
Thanks for releasing this! Hopefully more themes will be released because of this tool.
Avatar
Keith Patrick 2019-08-07 08:14:03
This is a suprememly useful power tool(PowerTool?), and one I'll definitely use, since the theming support has always been a choice between two extremes.  If I'd make any suggestion, it would be to add an easter egg theme - Hot Dog Stand - mainly because I try to add that somewhere in every themed UI I make (along with IBM Terminal and C-64, but the latter would be a nightmare to code in)
Avatar
Florian Dietrich 2019-08-07 23:25:46
Is it possible to apply a new created Theme and keep my current Font Settings and Colors?
Danilo Novaković
Danilo Novaković 2019-08-08 04:57:04
I don't know who these interns are but i would like to thank them for making this! Great job guys!
Avatar
Develop Ment 2019-08-08 09:07:10
So I've created a theme using Quick Start, how do I modify it? It seems to create "MyTheme(1)", "MyTheme(2)", etc.
Avatar
Craig Shea 2019-08-08 11:18:36
It would be nice to be able to preview the theme before actually applying it. In the past, applying a theme sometimes had--how should I put it nicely, undesirable side effects--when deciding to switch back to my previous theme. It would be really nice if the preview could work similarly to VS Code. That's a great UX at this point.
Avatar
Jan Đonny Záruba 2019-08-08 13:25:35
I can't wait to get extension that will allow me to easily replace the Icon set and use the old colorfull icons rather than the new ever changing ugly monochome ones.
Avatar
flatcaphat@protonmail.ch 2019-08-12 00:50:21
Its a great start on providing the same level of customisability that visual studio code has.
Avatar
Zehev Spitz 2019-08-12 05:15:09
How can I use Visual Studio themes in a custom visualizer?