docs/overview

Das zenit-Handbuch

Bauen Sie in Zig wirklich native macOS-Desktop-UIs. zenit vereint Fenster, GPU-Rendering, Text, Eingabemethoden und Barrierefreiheit in einem klaren UI-Modell; dieses Handbuch führt Sie vom ersten Fenster bis zur wartbaren Produktions-App.

In 5 Minuten starten
$zig build run
0.15.2Zig-Version
MetalAktuelles GPU-Backend
2 tiersÖffentliche API: ui.X und ui.<group>.X
src/main.zig
const std = @import("std");
const ui = @import("ui");
const App = @import("zenit_app").App;

fn mountUi(cx: *ui.Cx, _: *ui.Scope) anyerror!*ui.Node {
    return ui.text(cx, "Hello, zenit!", .{
        .font_size = cx.tokens.font_size.xxxl,
        .color = cx.tokens.color.fg_primary,
    });
}

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();

    const app = try App.init(gpa.allocator(), .{
        .window = .{ .title = "Hello" },
    });
    defer app.deinit();
    try app.runWith(mountUi);
}
Sie entwickeln mit Claude Code oder einem anderen Agenten? Installieren Sie zuerst den zenit UI dev Skill.

Er bündelt dieses Handbuch, die Entscheidungstabelle für Komponenten und Fallstricke aus echten Projekten zu Anweisungen, die Ihr Agent bei Bedarf lädt – so folgt der Code, den er schreibt, den zenit-Konventionen.

Lernpfad

Arbeiten Sie ihn einmal der Reihe nach durch – etwa 45 Minuten – und Sie haben das komplette mentale Modell, um zenit-Apps selbstständig zu bauen.

Die Architektur, die Sie nutzen

Apps hängen nur von der stabilen öffentlichen Schicht ab; Plattform und Rendering übernimmt zenit.

LAYERS
zenit.attach(dep, exe) fügt Ihrem Executable genau zwei Modul-Importe hinzu – ui und zenit_app –, kompiliert dann die nativen Bridges und linkt die System-Frameworks. Interne Module sind gar nicht in Ihrem Build-Graphen: nicht „bitte nicht“, sondern „geht nicht“.

Mehr als eine Sammlung von APIs

Diese drei ziehen sich durch Runtime, Text-Stack und Tooling – jeweils belegt durch eine lauffähige Demo und Nachweise im echten Fenster.

Drei Prinzipien

Halten Sie sich daran, bleibt Ihr Code klar, während sich zenit noch schnell weiterentwickelt.

01
Nur aus der öffentlichen Schicht importieren

Verwenden Sie ui.*, ui.<group>.* und zenit_app.App – greifen Sie nie in interne Verzeichnisse.

02
Daten bestimmen die UI

Persistenter Zustand liegt in Signals oder gebundenem Zustand; Abgeleitetes mit Memo, Seiteneffekte mit Effect.

03
Tokens zuerst

Farben, Schrift, Abstände und Radien kommen aus dem Theme; wenn Sie die Skala verlassen müssen, machen Sie das mit ui.arb explizit.

zenit · DoppellizenzKostenlos für Open-Source-Projekte unter GPL-3.0-only; Closed-Source- oder kommerzielle Produkte benötigen eine kommerzielle Lizenz.Kontakt zum Autor: zongyi.xzy#gmail.com (# durch @ ersetzen)zenit 5f9add5+wip 2026-09-30