This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
achroma.nvim is a minimalist grayscale Neovim colorscheme with no color distractions. It's implemented in Lua and supports both light and dark modes, transparent backgrounds, and a pure black variant for OLED displays.
The theme follows standard Neovim colorscheme conventions:
- colors/achroma.lua: Entry point when colorscheme is loaded via
:colorscheme achroma - lua/achroma/init.lua: Main theme implementation containing all highlight group definitions
- plugin/achroma.lua: Provides the
:Achromacommand for dynamic configuration - lua/lualine/themes/achroma.lua: Lualine statusline theme integration
- Color Palette: Uses 13 shades of gray (black through gray12) plus optional "pop" colors for subtle accents
- Mode Support: Light/dark modes switch entire palette, not just background
- Variant System: "default" uses gray1 background, "black" uses pure black (#000000)
- Highlight Groups: Comprehensive coverage including Tree-sitter, LSP, and 40+ plugin integrations
The theme can be configured via:
require('achroma').setup(opts)- Programmatic configuration:Achroma [args]- Command-line configuration- Options:
- mode (dark/light)
- variant (default/black)
- transparent (boolean)
- pop (boolean)
- inverse_popup (boolean)
- auto_dark_light (boolean)
- adaptive_contrast (boolean)
- git_gutter_colors (boolean)
- highlight_scope (boolean)
There are no build, test, or lint commands for this colorscheme. Development consists of modifying the Lua files directly and testing within Neovim.
To test changes:
- Reload the colorscheme:
:colorscheme achroma - Test commands:
:Achroma dark,:Achroma light,:Achroma dark black transparent - Verify highlight groups:
:hi [GroupName]
When adding support for new plugins:
- Add highlight definitions in lua/achroma/init.lua:699 following existing patterns
- Test with both light and dark modes
- Ensure WCAG AA compliance for contrast ratios
- Consider both default and pop color modes