# Luma Luma is a C++23 embedded touch UI library. It provides the reusable application shell, view routing, layout primitives, touch input handling, focus state, themes, text rendering conventions, frame timing, and controls used by Product Vamp. Luma uses Modulus for shared build tooling, Boost.JSON, and raylib integration. Product-specific screens and workflows belong in consuming applications. Private implementations separate application lifecycle and dispatch from the raylib resource/drawing backend. Basic, text, and layout controls have separate implementations, with shared private geometry helpers. GPU resource creation and destruction remain on the UI thread, including deferred texture cleanup and retired controls. ## Build Code style is managed by Modulus: run `./modulus.py format` or `./modulus.py format --check`. The generated Neovim integration uses the same pinned container formatter for C++ and Python, including existing format-on-save toggles. Configure first to prepare tooling; customize `tooling.editor.clang_format` and `tooling.format.exclude` in `modulus.json`, not generated editor files. See the shared Modulus README for the compact layout and no-alias policy. Configure, build, and test the default target: ```sh python3 modulus.py configure python3 modulus.py build python3 modulus.py test ``` Release verification: ```sh python3 modulus.py configure --target x86_64_gcc12_release python3 modulus.py build --target x86_64_gcc12_release python3 modulus.py test --target x86_64_gcc12_release ``` Create packages: ```sh python3 modulus.py package --all ``` Configure/build/test can read public packages anonymously from the khodo Conan registry. Publishing requires credentials only on the upload step: ```sh CONAN_USER= \ CONAN_TOKEN= \ LUMA_CONAN_UPLOAD=1 \ MODULUS_ALLOW_PACKAGE_REPLACE=1 \ python3 modulus.py package --all --replace ``` ## License Luma is released under the MIT License.