Movatterモバイル変換


[0]ホーム

URL:


Dev_theme

Nvim:help pages,generated fromsource using thetree-sitter-vimdoc parser.


Nvim colorscheme guidelines
Style guidelines for developing Nvim's default colorscheme.
License: CC-By 3.0https://creativecommons.org/licenses/by/3.0/

Design

Be "Neovim branded", i.e. have mostly "green-blue" feel plus one or two colors reserved for very occasional user attention.
Be oriented for'termguicolors' (true colors) while being extra minimal for'notermguicolors' (16 colors) as fallback.
Be accessible, i.e. have high enough contrast ratio (as defined inhttps://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef). This means to have value at least 7 forhl-Normal and 4.5 for some common cases (hl-Visual,Comment with set'cursorline', colored syntax,Diff*,hl-Search).
Be suitable for dark and light backgrounds via exchange of dark and light palettes.
Be usable, i.e. provide enough visual feedback for common objects.

Palettes

There are two separate palettes: dark and light. They all contain the same set of colors exported asNvimDark* andNvimLight* colors respectively.
The dark palette is used for background in the dark color scheme and for foreground in the light color scheme; and vice versa. This introduces recognizable visual system without too standing out.
Actual computation of palettes should be done in a perceptually uniform color space. Oklch is a good choice.
Each palette has the following colors (descriptions are for dark background; reverse for light one):
Four shades of colored "cold" greys for general UI.
Dark ones (from darkest to lightest) are reserved as background forhl-NormalFloat (considered as "black"),hl-Normal (background),hl-CursorLine,hl-Visual.
Light ones (also from darkest to lightest) are reserved forComment,hl-StatusLine/|hl-TabLine|,hl-Normal (foreground), and color considered as "white".
Six colors to provide enough terminal colors: red, yellow, green, cyan, blue, magenta. They should have (reasonably) similar lightness and chroma to make them visually coherent. Lightness should be as equal to the palette's basic grey (which is used forhl-Normal) as possible. They should have (reasonably) different hues to make them visually separable.
For 16 colors:
Greys are not used and are replaced with the foreground and background colors of the terminal emulator.
Non-grey colors fall back to terminal colors as ordered in ANSI codes (https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit), that is red (1, 9), green (2, 10), yellow (3, 11), blue (4, 12), magenta (5, 13), cyan (6, 14). To increase contrast, colors 1-6 are used for light background and 9-14 for dark background.

Highlight groups

Use:
Grey shades for general UI according to their design.
Bold text for keywords (Statement highlight group). This is an important choice to increase accessibility for people with color deficiencies, as it doesn't rely on actual color.
Green for strings,hl-DiffAdd (as background),hl-DiagnosticOk, and some minor text UI elements.
Cyan as main syntax color, i.e. for function usage (Function highlight group),hl-DiffText,hl-DiagnosticInfo, and some minor text UI elements.
Red to generally mean high user attention, i.e. errors; in particular forhl-ErrorMsg,hl-DiffDelete,hl-DiagnosticError.
Yellow very sparingly to mean mild user attention, i.e. warnings. That is,hl-DiagnosticWarn andhl-WarningMsg.
Blue very sparingly ashl-DiagnosticHint and some additional important syntax group (likeIdentifier).
Magenta very carefully (if at all).
In case of 16 colors:
Rely on the assumption "Background color can be used as background; other colors can be used as foreground". This means that in any foreground/background combination there should be background and one non-background color.
Use 0 (black) or 15 (bright white) as foreground for non-grey background, depending on whether normal background is light or dark.
Main
Commands index
Quick reference

Design
Palettes
Highlight groups

[8]ページ先頭

©2009-2025 Movatter.jp