84 lines
2.6 KiB
Markdown
84 lines
2.6 KiB
Markdown
# 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](https://github.com/astral-sh/uv) (Recommended for dependency management)
|
|
- Python 3.12+
|
|
|
|
### Build
|
|
To regenerate all theme files from the source DNA (`src/*.yaml`):
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
./scripts/release.sh 1.0.2 --notes-dir release-notes
|
|
```
|
|
|
|
Notes:
|
|
- Use `release-notes/<app>.md` or `release-notes/common.md` for release notes.
|
|
- Requires a working `tea` login 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)**
|