- Attention channel moves from violet to pink (~340° OKLCH); red stays urgent-only, pink takes cursor/search/selection/active border - Purple = sacred is now its own spine entry, always form-coded (bold or fielded), never bare hue; ANSI color5 no longer collides with cursor hex - Reserved-hue rule rephrased: never *syntax tokens* (interaction state may render in-buffer); 16-color ANSI floor exempt - Aeon WCAG AA pass: punctuation/escape direction bug fixed, deep accent band lifted past 4.5:1 on Paper and Surface, bright bank deepened
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)
- Ghostty (Theme)
- Zsh (Theme with Radar/AAR)
- GTK4 / Libadwaita (CSS)
- Hyprland (Conf)
- Fuzzel (INI)
- Zathura (Config)
- Btop (Theme)
The Apex DNA
Apex is built on a unified semantic discipline where every color has a specific role:
- Red is Danger: Reserved for errors, destructive actions, and the active window border. It never enters a code buffer.
- Violet is Attention: The cursor, search matches, matched pairs, and selection — the "you are here" channel. It never enters a code buffer.
- Cyan is Informational: Used for links, technical data, info state, and function calls.
- Blue is Kinds: Types, structures, and structural accents — a real channel, distinct from cyan.
- Green is Values: Strings, numbers, constants, and success.
- Purple is Sacred: Reserved for root access, special modes, or exceptional system states.
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: Slim pointer to the canonical color specs.apex-neon.md/apex-aeon.md: Detailed specifications.
Authors
- S0wlz (Owlibou)