name = "Darcula" description = "After JetBrains' Darcula: warm orange keywords on charcoal. A dark theme." # The colours come from JetBrains' own published files, not from a screenshot: # the editor scheme in platform/platform-resources/src/DefaultColorSchemesManager.xml # and the chrome from platform/platform-resources/src/themes/darcula.theme.json. # # It is "after Darcula" rather than Darcula, the way `cobalt` is after the # Cobalt palette, because two values had to move for this project's readability # rules. Both departures are marked below, and there are only two. inherits = "turbo-dark" [colors] default = { fg = "#a9b7c6", bg = "#2b2b2b" } desktop = { fg = "#3c3f41", bg = "#232527" } shadow = { fg = "#1f2021", bg = "#232527" } # #3c3f41 and #bbbbbb are the IDE's own window background and foreground, and # #2f65ca its selection blue — all three straight out of darcula.theme.json. "menu.bar" = { fg = "#bbbbbb", bg = "#3c3f41" } "menu.item" = { fg = "#bbbbbb", bg = "#3c3f41" } "menu.selected" = { fg = "#ffffff", bg = "#2f65ca" } "menu.shortcut" = { fg = "#ffc66d", bg = "#3c3f41", bold = true } "menu.disabled" = { fg = "#777777", bg = "#3c3f41" } "window.frame.active" = { fg = "#bbbbbb", bg = "#2b2b2b" } "window.frame.inactive" = { fg = "#5e6265", bg = "#2b2b2b" } "window.title.active" = { fg = "#ffffff", bg = "#2b2b2b", bold = true } "window.title.inactive" = { fg = "#808080", bg = "#2b2b2b" } "window.body" = { fg = "#a9b7c6", bg = "#2b2b2b" } statusbar = { fg = "#bbbbbb", bg = "#3c3f41" } "statusbar.key" = { fg = "#ffc66d", bg = "#3c3f41", bold = true } "statusbar.hint" = { fg = "#949494", bg = "#3c3f41" } scrollbar = { fg = "#4d4d4d", bg = "#313335" } "scrollbar.thumb" = { fg = "#a9b7c6", bg = "#313335" } "dialog.frame" = { fg = "#bbbbbb", bg = "#3c3f41" } "dialog.body" = { fg = "#bbbbbb", bg = "#3c3f41" } "dialog.title" = { fg = "#ffffff", bg = "#3c3f41", bold = true } "dialog.label" = { fg = "#bbbbbb", bg = "#3c3f41" } button = { fg = "#bbbbbb", bg = "#4c5052" } "button.focused" = { fg = "#ffffff", bg = "#2f65ca", bold = true } "button.shortcut" = { fg = "#ffc66d", bg = "#4c5052", bold = true, underline = true } input = { fg = "#bbbbbb", bg = "#45494a" } "input.focused" = { fg = "#ffffff", bg = "#45494a" } "input.selection" = { fg = "#ffffff", bg = "#2f65ca" } list = { fg = "#bbbbbb", bg = "#3c3f41" } "list.selected" = { fg = "#ffffff", bg = "#2f65ca" } "list.unfocused" = { fg = "#bbbbbb", bg = "#0d293e" } checkbox = { fg = "#bbbbbb", bg = "#3c3f41" } "checkbox.focused" = { fg = "#ffffff", bg = "#2f65ca" } "editor.text" = { fg = "#a9b7c6", bg = "#2b2b2b" } "editor.selection" = { fg = "#a9b7c6", bg = "#214283" } "editor.linenumber" = { fg = "#606366", bg = "#2b2b2b" } # **Departure 1 of 2.** Darcula's own caret row is #323232, which is seven # channel values from the #2b2b2b page — no highlight at all, and below the # sixteen this project requires. This is the IDE's window background instead, # #3c3f41, so the lift still comes out of JetBrains' palette: twenty-two away. "editor.currentline" = { fg = "#a9b7c6", bg = "#3c3f41" } "editor.cursor" = { fg = "#2b2b2b", bg = "#bbbbbb" } "terminal.text" = { fg = "#bbbbbb", bg = "#2b2b2b" } "terminal.cursor" = { fg = "#2b2b2b", bg = "#bbbbbb" } "tree.text" = { fg = "#a9b7c6", bg = "#2b2b2b" } "tree.directory" = { fg = "#ffc66d", bg = "#2b2b2b", bold = true } "tree.selected" = { fg = "#ffffff", bg = "#2f65ca" } "tree.unfocused" = { fg = "#a9b7c6", bg = "#0d293e" } # Every one of these is a published DEFAULT_* attribute, mapped onto this # project's seventeen classes: # # identifier DEFAULT_IDENTIFIER keyword DEFAULT_KEYWORD # type DEFAULT_CLASS_REFERENCE builtin DEFAULT_INSTANCE_FIELD # constant DEFAULT_CONSTANT function DEFAULT_FUNCTION_DECLARATION # string DEFAULT_STRING number DEFAULT_NUMBER # punctuation DEFAULT_COMMA / _SEMICOLON attribute XML_ATTRIBUTE_NAME # tag XML_TAG_NAME link HYPERLINK_ATTRIBUTES # # Punctuation really is the keyword orange in Darcula — commas and semicolons # are #cc7832 there, which is one of the things that makes it recognisable. "syntax.identifier" = { fg = "#a9b7c6" } "syntax.keyword" = { fg = "#cc7832" } "syntax.type" = { fg = "#769aa5" } "syntax.builtin" = { fg = "#9876aa" } "syntax.constant" = { fg = "#9876aa", italic = true } "syntax.function" = { fg = "#ffc66d" } "syntax.string" = { fg = "#6a8759" } "syntax.char" = { fg = "#6a8759" } "syntax.number" = { fg = "#6897bb" } # **Departure 2 of 2.** JetBrains draws comments in #808080, which is 3.59:1 # against this page — below the 4.5:1 this project holds prose to. #949494 is # the smallest lift that clears it, at 4.67:1; #909090 comes to 4.44 and does # not. Everything else on this page is JetBrains' value, unchanged. "syntax.comment" = { fg = "#949494", italic = true } "syntax.operator" = { fg = "#a9b7c6" } "syntax.punctuation" = { fg = "#cc7832" } "syntax.heading" = { fg = "#ffc66d", bold = true, underline = true } "syntax.tag" = { fg = "#e8bf6a" } "syntax.attribute" = { fg = "#bababa" } "syntax.emphasis" = { fg = "#a9b7c6", bold = true } "syntax.link" = { fg = "#287bde", underline = true } "completion.frame" = { fg = "#bbbbbb", bg = "#3c3f41" } "completion.item" = { fg = "#bbbbbb", bg = "#3c3f41" } "completion.selected" = { fg = "#ffffff", bg = "#2f65ca", bold = true } "completion.detail" = { fg = "#949494", bg = "#3c3f41" } "diagnostic.error" = { fg = "#ff6b68", bold = true } "diagnostic.warning" = { fg = "#bbb529", bold = true } "diagnostic.info" = { fg = "#6897bb", italic = true }