2.0 KiB
2.0 KiB
Repository Guidelines
Project Structure & Module Organization
src/: YAML "DNA" sources for the two schemes (neon.yaml,aeon.yaml).templates/<app>/: Jinja2 templates (*.j2) and optionalmeta.yamlthat defines per-app output strategy.dist/: Generated theme outputs for each app; treat as build artifacts and do not edit by hand.build.py: Python build engine that renders templates intodist/.- Docs and specs:
README.md,GEMINI.md,apex-neon.md,apex-aeon.md. - Assets: palette PNGs at repo root.
Build, Test, and Development Commands
uv run build.pyregenerates all themes fromsrc/intodist/(requires Python 3.12+ and deps inpyproject.toml).- There is no dev server or watch mode; rerun the build after updating YAML or templates.
Coding Style & Naming Conventions
- Python code follows 4-space indentation and
snake_casefor functions/variables. - Template outputs follow the naming pattern
apex-<scheme>.<ext>for per-scheme builds. - Aggregated outputs (when
meta.yamlsetsstrategy: aggregated) keep the template base name (e.g.,apex.json,gtk.css). - Keep YAML keys consistent with existing
src/*.yamlsemantics; add new roles only if they are truly required.
Testing Guidelines
- No automated tests are currently defined.
- Validate changes by running
uv run build.pyand checking the generated files indist/for both Neon and Aeon outputs.
Commit & Pull Request Guidelines
- Commit messages follow Conventional Commits as seen in history:
feat:,docs:,chore:,refactor:. - Keep changes scoped to one intent; prefer small, reviewable commits.
- PRs should include a short summary, list of affected templates/apps, and the command used to build (
uv run build.py). - For visual/theme changes, include a brief before/after note or screenshots when possible.
Theme Rules & Source of Truth
GEMINI.mdis the authoritative source for color semantics and rules; updatesrc/*.yamlfirst, then templates if needed.- Avoid introducing ad-hoc colors that violate the semantic palette.