# Anatomy of a Dark Theme: Vienna

> Anatomy of Vienna, a dark IDE theme: crimson velvet and mahogany for the frame, imperial gold keywords, pastry cream strings and candlelit members.

- URL: https://codigrate.com/blog/anatomy-of-the-vienna-theme
- Published: 2026-10-14
- Category: Inspiration
- Theme: [Vienna](https://codigrate.com/theme?product=vienna)
- Publisher: Codigrate (https://codigrate.com)

For generations, people who bought a standing place at the Vienna State Opera tied a scarf to the rail
in front of them. It held the spot while they went to the cloakroom, and nobody touched it. The house
still sells around 435 standing places for every performance, at roughly the price of a cinema ticket,
and today each one comes with a numbered position, so the scarf is no longer needed. The building they
stand in opened on 25 May 1869 with Don Giovanni, and its auditorium, rebuilt after the war, is still the
one people picture when they think of Vienna at night: red velvet, gold leaf on every balcony, and the small lamps of the
orchestra pit lighting the music on the stands.

Codigrate's Vienna theme is that auditorium a few minutes before the curtain. What follows takes it apart
color by color. It is the ninth city in this series after [Miami](https://codigrate.com/blog/anatomy-of-the-miami-theme),
[Istanbul](https://codigrate.com/blog/anatomy-of-the-istanbul-theme), [Paris](https://codigrate.com/blog/anatomy-of-the-paris-theme),
[Rio de Janeiro](https://codigrate.com/blog/anatomy-of-the-rio-de-janeiro-theme), [Tokyo](https://codigrate.com/blog/anatomy-of-the-tokyo-theme),
[Tallinn](https://codigrate.com/blog/anatomy-of-the-tallinn-theme), [Prague](https://codigrate.com/blog/anatomy-of-the-prague-theme) and
[Sydney](https://codigrate.com/blog/anatomy-of-the-sydney-theme), and the seventh premium theme after
[Ocean](https://codigrate.com/blog/anatomy-of-the-ocean-theme), [Salda](https://codigrate.com/blog/anatomy-of-the-salda-theme), Prague, Sydney,
[Reynisfjara](https://codigrate.com/blog/anatomy-of-the-reynisfjara-theme) and [Spring](https://codigrate.com/blog/anatomy-of-the-spring-theme).

## An Evening At The Opera

The theme's own description sets the scene: a Viennese evening at the opera, from velvet seats and
candlelit boxes to gilded balconies and the sheet music on the stands. The palette names follow the
evening from the seats to the café afterwards. Crimson Parlor, Opera Velvet and Mahogany Night are the
house. Muted Plum, Antique Rose and Vienna Rose are the upholstery and the light on it. Bronze Shadow,
Gilded Frame, Imperial Gold and Candlelight are the balconies. Porcelain is the program in your hand.
Pastry Cream, Marzipan and Black Coffee are what comes after the last act, and Palace Olive and Garden
Sage are the gardens of the palaces you walk past on the way home.

The interface takes its two accents from the boxes. Vienna Rose [#D7999F](https://codigrate.com/tools/color/D7999F) is the
accent for links and changed settings, a rose that only shows its color against the dark red around it,
and a dull brass [#AC956D](https://codigrate.com/tools/color/AC956D) is its second accent, the color the progress bar fills
with. In the code the gold does most of the work: imperial gold [#DCA826](https://codigrate.com/tools/color/DCA826) for the
keywords, pastry cream [#F4D8B3](https://codigrate.com/tools/color/F4D8B3) for the values and candlelight
[#EACF8C](https://codigrate.com/tools/color/EACF8C) for everything that belongs to an object.

## The Harmony: Red Turning Into Gold

On a wheel, Vienna is one warm arc. The frame starts it: every background, the interface text, the
caret and the gutter sit between 352 and 360 degrees, the red of the velvet. The syntax picks up where
the frame stops and walks around toward yellow. Local variables are a rose at 0 degrees, tags a coral at
16, parameters marzipan at 30, strings and numbers pastry cream at 34, attributes a pale gold at 39 and
the keywords, fields and methods imperial gold and candlelight at 43. That is an
[analogous harmony](https://codigrate.com/blog/introduction-to-color-harmony), neighbors on the wheel, and here it reads as
one material catching the light: crimson in the shadow, gold where the lamp hits.

The [warm](https://codigrate.com/blog/warm-and-cool-colors) arc is not the whole palette. Three notes step off it on purpose.
Static members and globals take two quiet palace greens near 80 degrees, garden sage and palace olive,
low in [saturation](https://codigrate.com/blog/saturation) so they sit back rather than shout. Annotations take a lavender
[#B8A6D6](https://codigrate.com/tools/color/B8A6D6) at 262, the one cool color in the code itself. And class names, function
names and constants are left a plain light grey [#E0E0E0](https://codigrate.com/tools/color/E0E0E0) with no hue at all, the
white of the sheet music between the golds.

The golds are saturated, most of them between 68 and 82 percent, but they are also light, between 70 and
83 percent lightness. That combination is why they glow without burning. Fully saturated gold at a
middle lightness would look like brass paint; lifted this far, it looks like gilt under warm light.

## Backgrounds, From The Stalls To The Ceiling

Vienna's backgrounds are four surfaces, and the further from the code, the redder and lighter they get:

- Input [#0B0909](https://codigrate.com/tools/color/0B0909), black coffee, for search fields and dialogs.
- Editor [#2C1D1D](https://codigrate.com/tools/color/2C1D1D), mahogany night, the page the code is written on.
- Window [#4B2226](https://codigrate.com/tools/color/4B2226), opera velvet, for the tool windows and panels.
- Surface [#6A2F34](https://codigrate.com/tools/color/6A2F34), crimson parlor, the outer frame the whole window sits in.

The editor is the darkest wood in the house, a brown red at about 14 percent lightness and 21 percent
saturation, calm enough to read on for hours. The panels and the frame almost double that saturation,
to about 38 percent, which is where the theme becomes red rather than brown. Sitting in the editor, you
look out at the velvet the way you look from the stalls up at the boxes. Below everything is the input,
nearly black, so a field waiting for you to type has an unmistakable shape in the red. Hovering a row
darkens it to [#351D20](https://codigrate.com/tools/color/351D20), and a selected row in the project tree lifts to a rose
velvet [#663337](https://codigrate.com/tools/color/663337) edged in [#B07479](https://codigrate.com/tools/color/B07479).

Gold appears wherever the window points at something. The active editor tab sits on bronze shadow
[#463921](https://codigrate.com/tools/color/463921) with an old gold underline [#AC9368](https://codigrate.com/tools/color/AC9368), search matches
in the interface glow gilded frame [#C0A371](https://codigrate.com/tools/color/C0A371), and selected text in the editor
turns a dark gilt [#615532](https://codigrate.com/tools/color/615532), the one background that leaves the red family
entirely. The text stays readable on it at about 6.2:1. Search results in the code turn to the garden: a
pale sage [#CAD8AF](https://codigrate.com/tools/color/CAD8AF) on a dark olive [#353C2A](https://codigrate.com/tools/color/353C2A) edged in
[#ABB890](https://codigrate.com/tools/color/ABB890). And the word under the caret is the coolest mark in the theme, a
Danube blue [#A3B2E4](https://codigrate.com/tools/color/A3B2E4) on [#292E43](https://codigrate.com/tools/color/292E43) where it is read and a
violet [#D2A3E4](https://codigrate.com/tools/color/D2A3E4) on [#322039](https://codigrate.com/tools/color/322039) where it is written to, so
it never blends into the golds around it.

## One Foreground, Several Voices

Code is written in a warm off white [#F1EAEA](https://codigrate.com/tools/color/F1EAEA) at about 13.6:1 against the
mahogany, close to the color of an old opera program rather than a bright screen white. The interface
around it uses porcelain [#E6D7D8](https://codigrate.com/tools/color/E6D7D8) at about 9.7:1 on the velvet panels, and one
level down an antique rose [#C0989C](https://codigrate.com/tools/color/C0989C) for hints and secondary labels at about
5.3:1.

Comments are where Vienna is most generous. They are a warm taupe [#B6A498](https://codigrate.com/tools/color/B6A498), the
color of the ruled lines on a sheet of music, at about 6.7:1, well above the 4.5:1 the
[readability post](https://codigrate.com/blog/introduction-to-readability) suggests for body text. On a background this dark
a comment can be that strong without competing with the code, because the code around it is brighter
and warmer still. Line comments and doc comments are set in italics, the tags inside doc comments are
bold in the same taupe, and block comments stay upright, so a commented out chunk of code reads as code
put aside rather than as prose.

The gutter is the edge of the stage. It sits on a slightly lighter wood [#352222](https://codigrate.com/tools/color/352222),
line numbers are a dusty rose [#B38489](https://codigrate.com/tools/color/B38489) at about 5.1:1, and the number on the
current line warms to [#DFA5AC](https://codigrate.com/tools/color/DFA5AC). The caret is a rose [#BC8488](https://codigrate.com/tools/color/BC8488)
over a muted plum current row [#543738](https://codigrate.com/tools/color/543738). Indent guides are drawn in deep velvet
[#532B2E](https://codigrate.com/tools/color/532B2E) and the guide of the block you are in lifts to
[#783D41](https://codigrate.com/tools/color/783D41), and a matched brace is marked in bold on a worn brass
[#937A5A](https://codigrate.com/tools/color/937A5A).

## Syntax: Gold Leaf, Cream And Rose

Open a file and the house lights come up:

- Keywords in imperial gold [#DCA826](https://codigrate.com/tools/color/DCA826), the gold leaf on the balconies, the
  strongest color in a file and the first thing you see.
- Strings, numbers and escapes in pastry cream [#F4D8B3](https://codigrate.com/tools/color/F4D8B3), pale enough that values
  read as part of the page.
- Instance fields and methods in candlelight [#EACF8C](https://codigrate.com/tools/color/EACF8C), and JavaScript member
  functions in a brighter honey [#EDCB77](https://codigrate.com/tools/color/EDCB77).
- Parameters in marzipan [#ECC39A](https://codigrate.com/tools/color/ECC39A), and local variables in a dusty rose
  [#CE8F8F](https://codigrate.com/tools/color/CE8F8F), the velvet of the seats carried into the code.
- Static fields and methods in garden sage [#B6C39C](https://codigrate.com/tools/color/B6C39C), set in italics, and global
  variables in palace olive [#98A67D](https://codigrate.com/tools/color/98A67D).
- Annotations in lavender [#B8A6D6](https://codigrate.com/tools/color/B8A6D6), the one cool note.
- HTML and XML tags in a coral [#E8997C](https://codigrate.com/tools/color/E8997C), and attributes in a pale gold
  [#F3CD86](https://codigrate.com/tools/color/F3CD86).
- Class names, function names, constants and inline hints in a plain light grey
  [#E0E0E0](https://codigrate.com/tools/color/E0E0E0).

With the names left grey, a Vienna file reads like a score. The light grey names and the warm white text
are the notes, the gold marks the structure the way bar lines and dynamics do, and the rose and
marzipan pick out the parts that change from call to call, the variables and the arguments passed in.

## The Final Product

Here is Vienna put back together. The crimson frame holds a JetBrains IDE and Sublime Text, Slack and
Ghostty carry the same velvet around the chat and the shell, and in Rhino the viewports go dark
mahogany with gold marking the active tab.

<!--SHOTS-START-->
<div class="post-shots">
<figure><img src="https://codigrate.com/assets/themes/cities/vienna-theme/jetbrains-screenshot-1.webp" alt="Vienna theme in a JetBrains IDE" width="1200" height="787" loading="lazy"><figcaption>JetBrains</figcaption></figure>
<figure><img src="https://codigrate.com/assets/themes/cities/vienna-theme/sublime-screenshot-1.webp" alt="Vienna theme in Sublime Text" width="1200" height="787" loading="lazy"><figcaption>Sublime Text</figcaption></figure>
<figure><img src="https://codigrate.com/assets/themes/cities/vienna-theme/slack-screenshot-1.webp" alt="Vienna theme in Slack" width="1200" height="779" loading="lazy"><figcaption>Slack</figcaption></figure>
<figure><img src="https://codigrate.com/assets/themes/cities/vienna-theme/ghostty-screenshot-1.webp" alt="Vienna theme in Ghostty" width="1200" height="779" loading="lazy"><figcaption>Ghostty</figcaption></figure>
<figure><img src="https://codigrate.com/assets/themes/cities/vienna-theme/rhino-screenshot-1.webp" alt="Vienna theme in Rhino" width="1200" height="787" loading="lazy"><figcaption>Rhino</figcaption></figure>
</div>
<!--SHOTS-END-->

## Reading It Back

Taken apart, Vienna is a single material seen in two lights. The backgrounds are the velvet and the
wood of the house, redder and lighter the further they are from the code, with one nearly black slot for
whatever you are about to type. The syntax is the gilt on the balconies, one warm arc from rose to gold,
and the few colors that leave it are there to be found: the garden greens of static members and search
results, a lavender for annotations, and the blue and violet on the word under the caret.

It is a theme for late work in a dim room, warm without being sleepy and rich without getting in the
way. Vienna is a premium theme: a paid plugin for JetBrains IDEs on the JetBrains Marketplace and part
of the All In One bundle, a one time purchase for Xcode, Zed, Sublime Text, Ghostty, iTerm2, macOS
Terminal, Slack and Rhino from the Codigrate store, and a LINE theme in the LINE theme shop, all from its
[theme page](https://codigrate.com/theme?product=vienna).

## Frequently Asked Questions

### What is the Vienna theme?

Vienna is one of Codigrate's premium dark city themes, built around an evening at the opera: velvet seats, candlelit boxes, gilded balconies and the sheet music on the stands. The frame of the editor is the auditorium, crimson and opera velvet reds, and the code is written on a dark mahogany. The syntax is the gold of the house: imperial gold keywords, pastry cream strings and numbers, candlelight fields and methods and marzipan parameters, with a few palace garden greens and one lavender for annotations.

### Why are the search fields in Vienna darker than the editor?

Because they are the one place you type something new. The editor sits on mahogany #2C1D1D, the panels on opera velvet #4B2226 and the outer frame on crimson #6A2F34, so the backgrounds get redder and lighter the further they are from the code. Search fields and dialog inputs drop below all of them to a black coffee #0B0909, almost black. A field you are about to type into reads as an open slot in the red, and it is impossible to mistake for a panel or a label.

### How are the syntax colors chosen in Vienna?

Almost all of them sit on one warm stretch of the color wheel, from the rose of local variables at 0 degrees through coral tags at 16, marzipan parameters at 30 and pastry cream strings at 34, to the golds of keywords, fields and attributes between 39 and 43. That is an analogous harmony, the reds of the frame turning slowly into gold. Two palace garden greens near 80 degrees take static members and globals, a lavender at 262 marks annotations, and plain light grey is kept for class, function and constant names.

### Where can I get the Vienna theme?

Vienna is a premium theme. On JetBrains IDEs it is a paid plugin on the JetBrains Marketplace and is also part of the All In One bundle. For Xcode, Zed, Sublime Text, Ghostty, iTerm2, macOS Terminal, Slack and Rhino it is a one time purchase from the Codigrate store, delivered as a download, and the LINE version is sold in the LINE theme shop. All of them are linked from the Vienna theme page.
