Anatomy of a Dark Theme: Reynisfjara

The columns at the foot of Reynisfjall look carved, but nobody cut them. They are lava that cooled. A thick sheet of basalt shrinks as it loses its heat, and the shrinking pulls the rock apart into cracks that meet at about 120 degrees, the same way a puddle of mud splits into tiles as it dries. Seen from above the cracks make a field of mostly six sided polygons, and as the cooling front moves down through the rock it carries the pattern with it, so each tile grows into a long stone column. The black sand under them comes from the same lava, broken down by the North Atlantic, and the sea stacks of Reynisdrangar standing off the shore are basalt too. The local story says they are trolls who were dragging a ship to land and were caught by the dawn.

Codigrate's Reynisfjara theme is that beach at dusk, when the sand and the sky are nearly the same grey and the only warm thing in sight is the driftwood. What follows takes it apart color by color. It is the ninth nature theme in this series after Aurora Borealis, Everest, Sequoia, Autumn, Roraima, Sakura, Ocean and Salda, and the fifth premium theme after Ocean, Salda, Prague and Sydney. Ocean also lives by the sea, but under it, in teal and coral; Reynisfjara stays on the shore, where the water is grey.

A Beach At Dusk

The theme's own description sets the scene: the windswept shore of Reynisfjara, deep charcoal surfaces with cool steel blue tones and soft grey blue accents. The palette names walk down the beach. Sea Cave, Black Sand, Basalt Column, Dark Shore and Weathered Basalt are the stone. Gull Grey, Overcast, North Wave, Sea Foam and Sea Spray are the sky and the surf. Wet Sand, Bleached Sand, Driftwood, Pale Driftwood, Washed Timber and Beach Pebble are what the tide leaves behind. A Cold Horizon blue, a Moss Rock green, a Winter Sun gold and an Iron Red keep the small signals of the interface.

The interface leans on the two halves of the shore. A north wave blue grey #9FA9B9 is the accent for links and the marks that need to stand out, and a beach pebble #8E8276 is its second accent. In the code the same split runs through every line: washed timber #AC8563 and bleached sand #C3B9AD for the land, sea foam #AEB8C5 and cold horizon #99C0D3 for the water.

The Harmony: Driftwood Against The North Atlantic

On a wheel, Reynisfjara is a complementary pair, and the same pair as Prague. The cool colors gather between 200 and 217 degrees: every background, the interface text, the caret, the strings and the parameters. The warm colors sit straight across, between 28 and 46 degrees: the keywords at 28, the local variables at 29, the fields and methods at 33, the static members at 43 and the tags at 46.

What makes it a different theme is how little color there is on either side. Prague burns its lamps at full strength; Reynisfjara keeps every color in the code at or under about 40 percent saturation, and most of them between 12 and 32, so the beach reads grey at a glance and the warmth only shows up when you look for it. The roles are swapped too. In Prague the language is blue and the members are warm; here the keywords are the driftwood and the values are the sea.

Three colors step off the axis on purpose. Attributes are a moss green at 114, the grass that grows on the cliffs above the beach. Global variables are a lichen at 63, between the moss and the sand. Annotations are a rosy sand at 9, the color the wet sand takes for a few minutes when the low sun catches it. None of them is louder than the rest; they are there so the shore has a little life on it.

Backgrounds, Down To The Sand

Reynisfjara's backgrounds are four near blacks on one cool hue, near 213 degrees:

  • Input #060709, sea cave, the darkest well, where you type into search fields and dialogs.
  • Editor #151A20, black sand, the beach the code is written on.
  • Window #20262C, basalt column, for the tool windows and panels.
  • Surface #2A3138, dark shore, the outer frame the whole window sits in.

Here the steps run the other way from Prague. There, the higher the panel, the more blue it holds. Here, the higher the panel, the less: the editor sits at about 21 percent saturation, the windows at 16 and the frame at 14. So the code rests on the one surface with a trace of the sea in it, and the panels around it turn to plain stone, the way wet sand holds the color of the sky and the dry rock behind it does not. A selected row in the project tree stays in that stone, a cooler grey #333A45 edged in gull grey #7D848D.

The warm marks are where the window tells you something. The active editor tab sits on wet sand #3E3B37 with a driftwood underline #A7A197, and the progress bar runs in beach pebble #8E8276. Selected text in the editor turns a dusky rose #3E2E35, the one moment of sunset in the theme. Search matches go to twilight instead, a pale lilac #D4D4E1 on a deep violet #2C2C45 edged in #7F7FC1, so they never get confused with a selection. And the word under the caret glows like a fire on the beach: where it is read, a warm cream #FDE8CE on driftwood brown #534539, and where it is written to, a little more yellow, #FDF0CE on #534E39.

One Foreground, Several Voices

Code is written in a near white #E0E1E3 at about 13:1 against the editor, and class names, function names and constants stay a plain light grey #E0E0E0 at the same strength. The interface around it uses sea foam #AEB6C0, and one level down an overcast #8B95A2 for hints and secondary labels, both on the same cool hue as the sand.

Comments are a stone grey with the faintest trace of mauve, #8C838C, set in italics, at about 4.8:1. It is the one color in the theme that belongs to neither side of the beach, which is exactly what a note should do: it stays readable, as the readability post asks, and steps out of the way of the code.

The gutter is the evening sky. Line numbers are a dusk blue #7894B0 at about 5.5:1, the number on the current line brightens to a pale sky #B9DAFA, and the caret is a cool silver #BDCADE over a slightly lighter current row #303A43.

Syntax: Timber, Foam And Moss

Open a file and the beach fills in:

  • Keywords in washed timber #AC8563, the warmest and most common colored words in any file, like the driftwood scattered along the tide line.
  • Strings, numbers and escapes in sea foam #AEB8C5, a pale grey blue.
  • Parameters in cold horizon #99C0D3, the most saturated color in the code, the strip of light over the sea.
  • Instance fields and methods in bleached sand #C3B9AD, and JavaScript member functions in a lighter sand #D1CCC4.
  • Static fields and methods in an italic beach pebble #98907B, duller and heavier than the sand around it.
  • Local variables in pale driftwood #C5A98F, a lighter cousin of the keywords.
  • HTML and XML tags in a driftwood grey #B1AC9B, and attributes in moss #91AC8E.
  • Global variables in lichen #BBBD95, and annotations in a rosy sand #C6AFAB.

With the names left a plain grey, a Reynisfjara file reads as a walk along the tide line. Most of what you see is sand and timber, the structure and the things that belong to objects, and the sea shows up only where a value comes in from outside: a string, a number, a parameter.

The Final Product

Here is Reynisfjara put back together. The black sand fills a JetBrains IDE and Sublime Text, Slack and Ghostty keep the same basalt dark around the chat and the shell, and in Rhino the viewports turn the grey of the beach at dusk, with driftwood marking the active tab.

Reynisfjara theme in a JetBrains IDE
JetBrains
Reynisfjara theme in Sublime Text
Sublime Text
Reynisfjara theme in Slack
Slack
Reynisfjara theme in Ghostty
Ghostty
Reynisfjara theme in Rhino
Rhino

Explore Our Themes

Reading It Back

Taken apart, Reynisfjara is a beach in two halves held almost still. The backgrounds, the gutter and the interface are one cool grey, a trace of the sea in the editor and plain stone around it. The code splits between the driftwood and the surf, but at so low a saturation that the page reads as one quiet grey until you look closer. The few brighter marks are the ones that tell you something: the dusky rose of a selection, the violet of a search match and the warm glow on the word under the caret.

It is a theme for long, quiet sessions, the kind of evening light that is easy on the eyes and never asks for attention. Reynisfjara 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 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.

Frequently Asked Questions

What is the Reynisfjara theme?

Reynisfjara is one of Codigrate's premium dark nature themes, built around the black sand beach on the south coast of Iceland at dusk: basalt columns, sea stacks standing in the surf and driftwood on wet sand. The frame of the editor is the sand and the stone, four dark greys on one cool hue. The code is split between the shore and the sea: the keywords, members and local variables in driftwood and timber browns, the values and parameters in sea foam and a cold horizon blue.

Why are the colors in Reynisfjara so muted?

Because the beach is. Reynisfjara is black sand under a grey sky, and almost nothing on it is a strong color. The theme keeps that: no color in the code goes above about 40 percent saturation, and most stay between 12 and 32. The difference between one kind of token and another is carried by the side of the color wheel it sits on, warm sand or cold sea, and by lightness, rather than by brightness. That makes it one of the calmest themes in the series for long sessions.

How are the syntax colors chosen in Reynisfjara?

They sit on two sides of the wheel, like Prague's, but with the roles swapped. The warm side, between 28 and 46 degrees, is the driftwood: washed timber keywords, bleached sand fields and methods, pale driftwood local variables, a driftwood grey for tags and an italic pebble for static members. The cool side, near 200 to 214 degrees, is the sea: sea foam strings and numbers, and a cold horizon blue for parameters, the most saturated color in the code. Moss for attributes, lichen for globals and a rosy sand for annotations sit just off that line.

Where can I get the Reynisfjara theme?

Reynisfjara 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 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 Reynisfjara theme page.

Codigrate

Codigrate