colorloom-0.1.4 is not a library.
ColorLoom
A powerful Rust CLI tool for generating consistent color themes across multiple editors and terminals from a single TOML configuration file.
Overview
ColorLoom is the theme generation engine behind Subliminal Nightfall. It reads a centralized theme.toml configuration and generates native theme files for:
- Zed - Full theme JSON with opaque, hazy, and cloudy variants
- VS Code / Cursor - Color theme JSON with comprehensive UI coverage
- Neovim - Lua colorscheme with highlight groups
- Ghostty - Terminal palette configuration
- Website - JSON palette for web showcase
Features
- Single Source of Truth: Define colors once in
theme.toml, generate everywhere - Variant Support: Automatically generates base, hazy (75% opacity), and cloudy (90% opacity) theme variants
- Blur Effects: Full support for Zed's
background.appearance: "blurred"with proper transparency - Comprehensive Coverage: Generates 100+ color settings per target for complete UI theming
- Type-Safe: Written in Rust with full serde serialization
Installation
# From crates.io (when published)
# From source
Usage
# Generate all themes (default command)
# Validate configuration
# List targets and variants
# Use custom config file
Configuration
ColorLoom reads from theme.toml in the current directory:
= "1"
[]
= "Subliminal Nightfall"
= "Michael Hamrah"
= "A dark color scheme with purple-black backgrounds"
= "MIT"
# ANSI terminal colors with base/bright/dim variants
[]
= "#bf616a"
= "#e2848d"
= "#85434a"
[]
= "#a9cfa4"
= "#ccf2c7"
= "#769072"
# ... more ANSI colors
# Syntax highlighting colors
[]
= "#9ccfd8"
= "#6699cc"
= "#c4a7e7"
= "#7f7f7f"
# UI colors
[]
= "#191724"
= "#1f1d2e"
= "#26233a"
= "#e0def4"
= "#a0a0a0"
= "#7f7f7f"
= "#484e5b"
= "#5fb3b3"
= "#2e3239bf"
# Border colors
[]
= "#484e5b"
= "#363b45"
= "#6699cc"
= "#5fb3b3"
# Theme variants
[[]]
= "base"
= 1.0
[[]]
= "hazy"
= 0.75
= 20
[[]]
= "cloudy"
= 0.90
= 12
# Target configurations
[[]]
= "zed"
= true
= "zed/themes"
= "subliminal-nightfall.json"
[[]]
= "cursor"
= true
= "cursor/themes"
= { = "subliminal-nightfall-color-theme.json", = "subliminal-nightfall-color-theme-hazy.json", = "subliminal-nightfall-color-theme-cloudy.json" }
[[]]
= "neovim"
= true
= "neovim/colors"
= { = "subliminal-nightfall.lua", = "subliminal-nightfall-hazy.lua", = "subliminal-nightfall-cloudy.lua" }
[[]]
= "ghostty"
= true
= "ghostty"
= { = "subliminal-nightfall", = "subliminal-nightfall-hazy", = "subliminal-nightfall-cloudy" }
[[]]
= "website"
= true
= "website/src/data"
= "palette.json"
Transparency & Blur
ColorLoom automatically handles transparency for blur-enabled variants:
| Variant | Alpha | Editor BG | Surface BG | Tabs | Appearance |
|---|---|---|---|---|---|
| Base | 100% | #191724FF |
#1f1d2eFF |
50% | opaque |
| Hazy | 75% | #19172400 |
#1f1d2eBF |
22% | blurred |
| Cloudy | 90% | #19172400 |
#1f1d2eE6 |
27% | blurred |
For blurred variants:
- Editor and gutter backgrounds are fully transparent (
00) to show blur - Surfaces and panels use variant alpha for layering
- Tabs and toolbars use reduced opacity for subtle differentiation
Supported Targets
Zed
Generates a single JSON file containing all variants with:
background.appearance: "blurred"for transparent variants- Complete syntax highlighting
- Panel, tab bar, status bar, terminal colors
- Git decoration colors
- Player colors for collaboration
VS Code / Cursor
Generates separate JSON files per variant with:
- 100+ workbench colors
- Token colors for syntax
- Semantic highlighting support
- Git and diff colors
Neovim
Generates Lua colorscheme files with:
- Highlight group definitions
- Terminal colors
- TreeSitter support ready
Ghostty
Generates palette files with:
- 16-color ANSI palette
- Background/foreground
- Selection colors
- Cursor colors
Development
# Build
# Run tests
# Check formatting
# Lint
Architecture
colorloom/
├── src/
│ ├── main.rs # CLI entry point
│ ├── config.rs # TOML configuration types
│ └── targets.rs # Theme generators per target
├── Cargo.toml
└── README.md
License
MIT License - see the main repository for details.
Links
- Documentation: subliminal-nightfall.hamrah.com/colorloom
- Main Repository: github.com/mhamrah/subliminal-nightfall
- Theme Website: subliminal-nightfall.hamrah.com
- crates.io: crates.io/crates/colorloom