← In development
09 / Declarative UI layer

Chaos

Chaos is a declarative UI extension hosted by Nyx. A component keeps its state, events, control flow, and lifecycle in ordinary Nyx while Chaos owns the element-tree grammar, slots, source mapping, and intermediate representation needed to render it.

Technology
Nyx / UI architecture
Status
Prototype in progress
The challenge

Declarative UI should not become a second programming language.

UI authoring has to stay expressive without turning the host language, styling layer, and renderer into one inseparable framework. It also needs reactive state, reusable components, hot reload, and useful diagnostics across generated and interpreted boundaries.

The approach

Let Nyx own behavior and Chaos own structure.

Chaos owns only structure. It lowers element expressions into a backend-independent IR, then a runtime reconciles that tree through registered capabilities. The Iris prototype has already validated parsing, cross-file components, reactive slots, real Nyx evaluation, and state-preserving reload paths.

Inside the project

What it does.

  1. 01

    Nyx components with JSX-style element expressions

  2. 02

    Free-function and class-based component models

  3. 03

    Reactive local state through signals and slots

  4. 04

    Backend-independent intermediate representation

  5. 05

    Cross-file composition and state-preserving hot-reload experiments

Design principles

How decisions
get made.

Nyx owns behavior

Chaos extends Nyx rather than inventing a parallel language for events, state, and control flow.

Backends are capabilities

Penumbra, Umbra, or another renderer can implement the same component boundary.

Structure stays separate

Element trees describe what exists; Cosmos remains the sole styling surface.

See the work

Chaos

Follow the prototype
Next projectCosmos