Expand description
§tatara-ui — Nord-themed CLI UX for the tatara toolchain
Three layers, every one content-addressable:
- Palette (
palette) — canonical Nord values + semanticRolevocabulary mapped viaRoleMap::default(). - Sigils (
sigil) — typed Unicode glyphs (❄ ✓ ✗ ⟡ → ● ◇ ⚡ ⚙ …) each bound to a defaultRole. - Events (
event) —UiEventis a typed enum that serializes to tatara-lisp Sexps. A whole run is anEventStream; BLAKE3 of the stream JSON is the run-identity hash thattatara replay <hash>uses.
Plus the cache-aware fun:
- Themes are derivations:
(deftheme nord-arctic …)parses via#[derive(TataraDomain)];ThemeSpec::id()is a BLAKE3 of the spec. - Every artifact line shows
⚡ cachedor⚙ built 5.3snext to a◇ blake3:cxx3i50short hash, so cache hits tell a visual story. - Summary banner at the end shows the content-root hash +
{built, cached, failed, total}counts.
(deftheme nord-arctic
:description "the canonical tatara look"
:semantic (:primary "#88C0D0"
:success "#A3BE8C"
:warn "#EBCB8B"
:error "#BF616A"))Re-exports§
pub use event::ArtifactState;pub use event::Cell;pub use event::EventStream;pub use event::LogLevel;pub use event::ShortHash;pub use event::UiEvent;pub use palette::Rgb;pub use palette::Role;pub use palette::RoleMap;pub use palette::NORD;pub use render::should_color;pub use render::Renderer;pub use sigil::Sigil;pub use theme::SemanticOverrides;pub use theme::ThemeId;pub use theme::ThemeRegistry;pub use theme::ThemeSpec;
Modules§
- event
UiEvent— every runtime event that the renderer may paint.- palette
- Nord palette — canonical hex values from https://www.nordtheme.com, matched to pleme-io’s starship + irodori conventions.
- render
- ANSI renderer — turns an
EventStreaminto colored text with Nord styling. - sigil
- Sigils — typed Unicode glyphs that carry a default semantic role.
- theme
ThemeSpec— the Lisp-authorable, content-addressable theme.