User guide / Themes

Theme colour reference

Development reference · View source

“Default” is what an omitted field becomes in a custom theme: a fixed colour, or another role’s colour.

  • The fixed defaults are tuned for dark backgrounds. A light custom theme should set selection, change_*, diff_*, and jump_label_* itself, as well as the base colours.
  • Setting warning, info, change_*, or diff_* to null uses a fallback instead of the fixed default: warning borrows change_modified and info borrows change_added (then terminal yellow and green); change_* use the terminal’s green, magenta, and red; diff_* leave lines unfilled, so only the gutter marks show the comparison.

Base colours

RoleColoursDefault
backgroundGround of the active pane#181818
foregroundOrdinary text#d8d8d8
mutedDimmed interface text#585858
accentPane and popup borders, headings#7cafc2
commandCommand names in the command paletteaccent
directoryDirectory entries in explorers (files use foreground)accent
whitespaceThe ·, →, and ¬ markersA dim step off background; muted if background is reset

Mode carets

Each colours the primary caret and the status line’s mode label in its mode.

RoleModeDefault
cursor_normalNormalaccent
cursor_insertInserterror
cursor_replaceReplaceSaturated neon green, darker on light grounds; neon magenta if another mode colour is green
cursor_selectSelectwarning
cursor_commandCommandinfo
cursor_secondarySecondary carets in a multi-selectionforeground
  • The primary caret keeps its mode colour in a multi-selection, or the pending replacement colour.
  • If the terminal draws cursor_secondary the same as a primary caret, Runyte picks another available colour.

Selections and matches

RoleColoursDefault
selectionSecondary ranges in a multi-selection#383838
selection_primaryThe primary range and ordinary Select-mode rangesselection
fuzzy_match_secondaryIndividual characters of a scattered fuzzy matchselection
fuzzy_match_primaryA contiguous fuzzy matchselection_primary

The fuzzy-match defaults make Space s matches use the same two colours as selections.

Git and comparisons

RoleColoursDefault
change_addedGit gutter mark; added lines in a diff buffer; count columns in the changed-file list#8ddb8c
change_modifiedGit gutter mark#d2a8ff
change_removedGit gutter mark; removed lines in a diff buffer; count columns in the changed-file list#ff7b72
diff_addedLine background, side-by-side comparison#185435
diff_removedLine background, side-by-side comparison#642830
diff_changedLine background, side-by-side comparison#51316f
  • change_* are strong mark colours. diff_* are background tints, dark enough on dark themes and light enough on light themes to keep text readable.
  • Every built-in theme uses high-contrast green, purple, and red for these, so a meaning keeps its hue everywhere.

Destination types

These colour the TYPE column of the Navigator, the buffer list, and the terminal list.

RoleTypeDefault
destination_file[file]foreground
destination_explorer[explorer]directory
destination_generatedGenerated pages such as [config] or [help]muted
destination_scratch[scratch]jump_label_primary
destination_terminal[terminal]change_added

The STATE column reuses other roles:

StateRole
[+]change_modified
[STALE], bellwarning
[RO], exitedmuted
unreadinfo

Notification colours

RoleColoursDefault
errorError headings and counts#ab4642
warningWarning headings and counts#dc9656
infoInformation headings and unread counts#a1b56c

Jump labels

These colour the gw (goto-word) labels.

RoleColoursDefault
jump_label_immediateOne-key labels for nearby targets. After the first key of a two-key label, the matching second keys move to their target cells in this colour.error
jump_label_primaryFirst character of a two-key label#5fd7e7
jump_label_secondarySecond character of a two-key label#4ab7c6
jump_text_mutedOrdinary text in the active pane while labels are shown, and every pane while a command prompt is openmuted
  • Built-in themes use one neon-cyan hue for both two-key characters. The second is darker on dark backgrounds and lighter on light ones.
  • The Zenbones light themes use a darker pair. The mid-gray seoulbones-dark and zenburned-dark use a brighter pair.
  • light and paper use lighter jump-only grays for jump_text_muted.
  • Dimming during command prompts covers : and the search, rename, and other text-entry prompts. Pending keys such as g and Space change nothing. Carets keep their mode colours, and the prompt and its completion list are never dimmed. Turn it off with editor.command_mode_dim: false.

The look of gw is inspired by smoka7/hop.nvim ; Runyte’s implementation is independent.

Accepted but unused

status_background and status_foreground are accepted for compatibility. The status line is drawn on background with foreground text.