Skip to content

Latest commit

 

History

History
56 lines (41 loc) · 2.22 KB

File metadata and controls

56 lines (41 loc) · 2.22 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Codebase Overview

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.

Architecture

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 :Achroma command for dynamic configuration
  • lua/lualine/themes/achroma.lua: Lualine statusline theme integration

Key Design Patterns

  1. Color Palette: Uses 13 shades of gray (black through gray12) plus optional "pop" colors for subtle accents
  2. Mode Support: Light/dark modes switch entire palette, not just background
  3. Variant System: "default" uses gray1 background, "black" uses pure black (#000000)
  4. Highlight Groups: Comprehensive coverage including Tree-sitter, LSP, and 40+ plugin integrations

Configuration Options

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)

Common Tasks

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:

  1. Reload the colorscheme: :colorscheme achroma
  2. Test commands: :Achroma dark, :Achroma light, :Achroma dark black transparent
  3. Verify highlight groups: :hi [GroupName]

Plugin Support

When adding support for new plugins:

  1. Add highlight definitions in lua/achroma/init.lua:699 following existing patterns
  2. Test with both light and dark modes
  3. Ensure WCAG AA compliance for contrast ratios
  4. Consider both default and pop color modes