A UI library in Ziran
Useful interfaces.
Clear foundations.
Kryon supplies widgets, layout, interaction, styling, and rendering decisions as ordinary Ziran modules. Ziran owns the language and compiler. Applications import Kryon when they need a UI.
Open source · Checked modules · Explicit host effects
General-purpose source, checked .zir, native generation, and portable .zx belong to Ziran.
Importable .zi modules define UI behavior. Widget names have no special meaning to the compiler.
Declared capabilities let platform adapters provide input, fonts, images, rasterization, and windows.
Try the current path
A checked button example.
The example imports Kryon’s Button and tree modules, runs a press and release in a portable bundle, and asks a separate headless host to write four SVG frames. No display server is required.
See build steps →#import "button_props"
#import "button_widget"
...
button: ButtonProps
button.label = "Hello, Ziran"
clicks += Button(session, button)
if EndFrame(session) != FrameOk { return -1 }Excerpt from the tested source. Read the complete example ↗
Current state
Checked source.
Tested hosts.
make checks the maintained UI modules, writes .zir, generates C and Go, and compiles native outputs. make test exercises source, saved IR, and portable bundle behavior without a display.
Native hosts have Linux project tests, browser hosts run in private headless Chromium, and Android apps build as NativeActivity packages. Platform accessibility beyond the Linux AT-SPI bridge is still open.
Read the platform status →The language behind Kryon
Meet Ziran.
Write non-graphical programs with Ziran alone. Import Kryon only for UI. The language site has the current toolchain guide, source reference, API, and implementation status.
Explore Ziran ↗