Ports of the oxocarbon color scheme, a dark and light theme inspired by IBM Carbon, to Neovim, terminals and CLI tools. Every port is generated from one palette, so the colors match across tools.
| Dark | Light |
|---|---|
![]() |
![]() |
The Neovim colorscheme supports 68 plugins and has dark and light styles. With
lazy.nvim:
{ "whispcat/oxocarbon.theme", main = "oxocarbon", lazy = false, priority = 1000, opts = {} }See docs/neovim.md for other installation methods, configuration and the plugin list.
Each tool has a dark and a light theme in its directory under extras,
named oxocarbon_dark and oxocarbon_light with the tool's file extension. The
tool's own documentation explains where the file goes. Directories with a
README.md, such as Ghostty and
Zed, have setup steps.
All ports use these colors, under the base16-style slot names from oxocarbon.nvim.
blend is the background of floating windows and sidebars.
A few choices apply to every port:
- Syntax colors follow
davccavalcante/oxocarbon-theme-for-zed
(Variation III) rather than oxocarbon.nvim: purple keywords and constants, green
functions, blue strings, pink types, cyan variables and plain punctuation. The
roles live in
colors.syntax, so the Neovim groups and the ports agree. - Oxocarbon has no warm color.
yellow,orangeandwarningare a peach#e8a27ein dark and Carbon orange#ba4e00in light. - Terminal (ANSI) colors are semantic: red is
base10, green isbase13, blue isbase11. oxocarbon.nvim's own mapping puts a blue in the red slot. - The light style is IBM Carbon at the steps that read on white: purple 70
keywords, green 60 functions, cyan 60 strings, magenta 60 types, teal 60
variables, gray 60 comments and
#161616text.
./scripts/test # run the test suite
./scripts/build # regenerate extras/
./scripts/docs # regenerate the generated tables in README.md and docs/neovim.mdThe palettes are in lua/oxocarbon/colors/. Each port in extras/ has a generator
in lua/oxocarbon/extra/<tool>.lua, listed in lua/oxocarbon/extra/init.lua, and
./scripts/build writes its output for both styles. CI fails when extras/ is out
of date, so commit the regenerated files along with any palette or generator
change.
The tests check that every generator renders both styles without unresolved placeholders or undefined colors.
The Neovim colorscheme lives at the repository root (lua/, colors/) because
plugin managers load it from there. If you open this repo with lazy.nvim, it loads
.lazy.lua, which reloads the theme on save and shows color swatches inline.
- oxocarbon.nvim by shaunsingh and the nyoom-engineering team: the color scheme (MIT).
- tokyonight.nvim by folke: the plugin architecture and extra generators (Apache-2.0).
- Oxocarbon Theme for Zed by David C Cavalcante: the syntax color assignments, the light palette and the Zed theme layout (CC-BY-4.0).
See NOTICE.































