Inside Darcula L&F: An Interview with Konstantin Bulenkov

Konstantin BulenkovIn 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)!

Android Studio (based on IntelliJ IDEA CE) Announcement at Google I/O 2013

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:

Before: Combo boxes, search fields and bordersAfter: Combo boxes, search fields and borders

Buttons:

Buttons: beforeButtons: after

Progress Bars:

Progress bars: beforeProgress bars: after

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

color-issues-

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.

Icons

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.
This entry was posted in Behind-the-scenes, Interviews and tagged , , , , . Bookmark the permalink.

23 Responses to Inside Darcula L&F: An Interview with Konstantin Bulenkov

  1. Emitter says:

    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.

    Good work, I used it from day one when it was available.

    • Robert says:

      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’ll do an announce when Darcula is ready for publishing”

  2. Alejandro Hdez. Angeles says:

    Just to congratulate you for such an excellent L&F which i use in a daily basis and which became my favorite one. Thnx.

  3. Marc Stock says:

    Yeah, now that a lot of the kinks are worked out, Darcula is awesome. Thanks a lot for putting the effort into building a dark and comprehensive L&F.

  4. Bassel Hamadeh says:

    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

  5. Agent Smith says:

    I used it from day one. Thank you for saving my eyes from the glaring white background – now if you could only develop a L&F that turns off the fluorescent lights in our office.

  6. Sachin Maheshwari says:

    This L&F is one of the best thing I like in IJ. Just want to let you know that you guys are awesome. The completeness that you guys provide in almost every feature is commendable.

  7. WanFactory says:

    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.

  8. Will Jordan says:

    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.

    • Konstantin Bulenkov says:

      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.

  9. Pingback: Better readability with PhpStorm’s improved syntax coloring | JetBrains PhpStorm Blog

  10. Dragos says:

    Hi Konstantin,

    Have you considered rewriting the Intellij Idea GUI in JavaFX ? I want to know which is your position towards JavaFx. Is this the future ?

    • Konstantin Bulenkov says:

      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.

  11. Tarun Elankath says:

    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.

  12. Great post! We will be linking to this great content on
    our site. Keep up the great writing.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>