Add authoritative `syntax:` block to both YAML specs mapping keyword, type, function, string, constant, operator, variable, comment, and punctuation to their semantic palette colors. Align nvim and Zed templates to this canonical mapping (keyword=purple, type=amber, number/bool/constant=cyan, operator=white). Fix nvim Special/SpecialChar/ Tag (were cyan; now purple/amber/blue respectively). Add plugin color variables to zsh template: ZSH_AUTOSUGGEST uses dim grey for ghost text; HISTORY_SUBSTRING_SEARCH uses cyan for found and bright-red for not-found, matching the semantic palette signal system. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Apex Theme System
"State over Decoration."
Apex is a semantic theme system designed for high-performance focus and clinical clarity. It moves away from purely aesthetic color choices, treating color as a functional tool to communicate system state, urgency, and user intent.
The system consists of two primary canvases:
- Apex Neon: A high-contrast dark theme for low-light focus.
- Apex Aeon: A clinical, high-clarity light theme for daylight precision.
Supported Platforms
The factory currently generates native themes for:
- Neovim (Lua)
- Zed (JSON extension)
- Alacritty (TOML)
- Kitty (Conf)
- WezTerm (TOML)
- Ghostty (Theme)
- Zsh (Theme with Radar/AAR)
- Gemini CLI (JSON)
- GTK4 / Libadwaita (CSS)
- Hyprland (Conf)
- Fuzzel (INI)
- Waybar (CSS variables)
- Zathura (Config)
- Btop (Theme)
- SwayNC (CSS)
The Apex DNA
Apex is built on a unified semantic discipline where every color has a specific role:
- Red is the Predator: Reserved for active intent, the cursor, current location, and critical errors. It signals "Live Fire."
- Cyan is Informational: Used for technical data, links, and neutral highlights.
- Purple is Sacred: Reserved for root access, special modes, or exceptional system states.
- Contrast is King: Non-negotiable rules for readability (e.g., Black text on Red backgrounds).
Development & Building
This project uses a custom build engine written in Python with Jinja2 templates.
Prerequisites
- uv (Recommended for dependency management)
- Python 3.12+
Build
To regenerate all theme files from the source DNA (src/*.yaml):
uv run build.py
Artifacts are output to the dist/ directory, organized by application.
Releases
Per-app releases are automated via scripts/release.sh. The script only bumps
app versions when relevant files changed since the last <app>-vX.Y.Z tag,
then rebuilds, creates per-app tarballs, and publishes Gitea releases.
Example:
./scripts/release.sh 1.0.2 --notes-dir release-notes
Notes:
- Use
release-notes/<app>.mdorrelease-notes/common.mdfor release notes. - Requires a working
tealogin and push access to the repo.
Project Structure
src/: Source YAML definitions containing the "DNA" of the themes.templates/: Jinja2 templates for each supported application.dist/: Compiled theme files ready for deployment.GEMINI.md: AI Context & Source of Truth.apex-neon.md/apex-aeon.md: Detailed specifications.
Authors
- S0wlz (Owlibou)