feat(k-ui): first slice: App trait + run loop, builders (column/row/text/button), flex layout, theme tokens (Whimsy Dark), tiny-skia + fontdue render (Noto Sans Latin subset), keyboard focus ring; tally demo; manifest memory key (pm spawns with it)

This commit is contained in:
2026-10-28 03:20:41 +01:00
parent c256f4ecf3
commit fe73b89525
27 changed files with 1428 additions and 6 deletions

25
crates/k-ui/src/lib.rs Normal file
View File

@@ -0,0 +1,25 @@
//! K-UI (see the vision's K-UI note): an app says what its UI is, as a
//! pure function of its state; K-UI lays it out, draws it in the theme,
//! and handles focus and keys. It runs inside the app and draws into the
//! app's window.
#![no_std]
#![forbid(unsafe_code)]
extern crate alloc;
pub mod element;
pub mod layout;
pub mod render;
pub mod run;
pub mod text;
pub mod theme;
pub mod ui;
pub use element::{Element, Size, button, column, row, text};
pub use run::run;
pub use theme::{ButtonVariant, Spacing, TextColour, TextStyle};
pub use ui::App;
#[cfg(test)]
mod tests;