Inside Darcula L&F: An Interview with Konstantin Bulenkov

In this interview we speak with Konstantin Bulenkov about Darcula, the new stylish dark look and feel that first appeared in the 2012 release of IntelliJ IDEA 12. Since that time, the popular look and feel has been rolled out to all products based on the IntelliJ Platform and will be in YouTrack 5.0. It is worth noting however, that ReSharper (7.0) and dotCover (2.1) officially introduced dark schemes prior to the release of Darcula.

Hello Konstantin and thank you for taking the time to speak with us. Can you please tell us a bit about yourself and your current role at JetBrains?

Hi Robert. I’m one of the people leading the development of IntelliJ IDEA and IntelliJ Platform. Within the product, everything users see and interact with is my responsibility. I spend most of my time creating and tuning Swing UI components, improving performance and making our IDEs clean and intuitive. Another major part of my work is communicating with our users and understanding their preferences. There are absolutely no perfect UIs and thousands of users with different points of view that must be taken into account.

Darcula first appeared in IntelliJ IDEA 12 alongside a new user interface. Were these separate efforts or part of a combined usability strategy for the IntelliJ Platform that would be incorporated into JetBrains’ other IDEs?

Darcula look and feel is a part of the IntelliJ Platform and as many other platform features, all our IDEs inherit it automatically. However, some work was required in every IDE to integrate Darcula properly. Mostly it’s about painting and customization of the Darcula color scheme for different languages.

What benefits does Darcula provide? Was a dark look and feel your first choice, or did you pursue other options? Where did you draw inspiration?

A dark interface seems more ‘natural’ for many developers. By natural I mean that a lot of software developers are used to text editors and *nix-based OS console look. I thought it would be great to do something to make them feel comfortable. As for inspiration… It usually comes at night, you know. When you’re coding at night, a dark screen is always better.

Also, Darcula looks great in code samples and demos on the big screen. Google I/O 2013 proved that with Android Studio (based on IntelliJ Platform)!

How did you go about testing Darcula and the new UI from concept to implementation?

At JetBrains we use all of our products on a regular basis, so it would be fair enough to say that we do eat our own dog food. We’ve got a sort of private forum where anyone from the team can request feedback about a new feature they’re working on. Thanks to the team, I got hundreds of messages which helped me figure out what to do! Our early access users were also important to the process and instrumental in providing useful feedback.

As for me personally, I just switched to Darcula when it became more or less stable and carefully fixed one bug after another that I found while working.

To illustrate what steps we passed through with Darcula, let me show some “before and after” pictures:

Combo boxes, search fields and borders:

Buttons:

Progress Bars:

Icons were one of the most difficult problems. Images that look nice in light themes are hardly visible with dark backgrounds.

To solve this problem we added the ability to load special images and icons when under Darcula. Special thanks goes to our graphical designer Julia Repina who made over 3,000 new icons (plus retina-ready ones) in just a couple of months before a major release to support Darcula.

Do you have details on the success of Darcula? How has it been received and what are your plans for the near future?

To answer this question I’d like to tell you a bit about the development process and culture in the IntelliJ team. Everything starts from an idea in someone’s head and ends up with implementation. Almost every feature is the result of one person’s work. There are hundreds of amazing features in IntelliJ IDEA and just about 30 developers. Darcula is one of these ideas. Originally it was an attempt to make a completely different user interface. Something we have never had before. Something that literally gives you a new look on everyday things.

When Darcula became stable and sexy, our marketing team decided to go further with their “The Darker Side of Productive Coding” tagline. That was amazing.

A lot of our employees came by after the release just to say “thank you.” Our feedback tracker was really quickly filled with good words about Darcula. We get positive feedback from Twitter and the developer community as well.

As for plans, I’m trying to replace the old IDEA 4.5 look and feel with a new light one based on Darcula. It will fix many issues with the User Interface on Linux. And who knows, maybe one day the dark UI will become the default one for our products

Can users create their own look and feel? Are there any resources to help them get started and do you have any advice?

Yes, for sure. Ask me how to do it! However, it’s not so easy. For example, there are about 20 existing look and feels available. Half of them are unstable, unsupported, or difficult to integrate with big projects such as IntelliJ IDEA. So, it seems it’s not a popular area for new ideas.

Resources about how to create your own look and feel can be found at official Oracle’s official website. There are not so many details, but this page is the best place to start.

Thank you for your time, it has been a pleasure. If you have questions that you would like to ask Konstantin, please use the comment section below.

Konstantin is IntelliJ Platform Front-end Team Lead at JetBrains. He is a Java Swing enthusiast and author of Darcula L&F. Follow Konstantin on his blog and on Twitter @bulenkov.

Although IntelliJ will not instantly benefit from it, I think it would be fantastic, if Darcula—or at least the main part of it—could be disentangled from the general IntelliJ source code. It would make a superb standalone look and feel for other open source applications. I had a quick look into the sources, and it seemed very difficult to “fork” Darcula without copying major parts of IntelliJ.

I have asked Konstantin to respond but here is what he wrote elsewhere,

“I’m working on making Darcula a stand alone LaF. The work is almost done and I’m ready to release Darcula v 1.0 alpha or something. This means that you will be able to run you apps like java -cp “darcula.jar:myapplication.jar” -Dswing.laf=Darcula MainClass And everything should work

I am developer and an IT student and I end up using IntelliJ IDEA instead of eclipse when I saw the new look and feel. And I managed to convince most of my friends and co-workers to make the switch. and they’re all happy. It just feels right. Thank you all

Thank you very much. I’ve been using darcula for about half a year and love it – brings back fond memories of coding in the basement during the 80′s. I’ve been hand rolling my own dark color schemes for years and always run into problems such as dark-text on dark-background because of a missed or unsupported color setting. Great name too.

I’m enjoying the new dark theme! I’m personally looking forward to seeing support for high-dpi (e.g. ‘retina-ready’) icon themes expanded to other platforms besides OSX. I do some coding on a Chromebook Pixel running Ubuntu, and would love to see the theme in all its high-res glory.

I’ve just solved the problem with HiDPI images on Oracle JVM (version 7). So, I guess it’s a good idea to have a dedicated library to work with HiDPI icons. Darcula laf library will definitely have it.

Hi Dragos. I think that JavaFX is a very promising project. I’d be so happy to use all advantages of WebKit engine to render user controls. However, we spent much time patching Swing and creating our own components to alive in the World of HighLoad. ProjectView is just an example. This is a tree (re-written JTree) that loads data and expands nodes asynchronously, has tons of optimisations to avoid calculations on EDT, etc.
JavaFX at the moment is not so extensible as we need. And it will take years to re-write everything to JavaFX. For now we have plans to use JavaFX partially for some small and independent components like small configuration dialogs, tooltips, etc.

Thank you Konstantin. Darcula is a terrific theme that gets one in the ‘mood’ for coding. I always have eclipse-using developers come over to my desk and say wow that looks cool. Intellij and its sisters (WebStorm, etc) is now my choice of IDE.