docs/overview

Le manuel zenit

Créez en Zig des interfaces de bureau macOS réellement natives. zenit réunit fenêtres, rendu GPU, texte, méthodes de saisie et accessibilité dans un modèle d'UI clair ; ce manuel vous mène de votre première fenêtre à une application de production maintenable.

0.15.2Version de Zig
MetalBackend GPU actuel
2 tiersAPI publique : ui.X et 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);
}
Vous développez avec Claude Code ou un autre agent ? Installez d’abord la zenit UI dev Skill.

Elle regroupe ce manuel, la table de choix des composants et les pièges de projets réels en instructions que votre agent charge à la demande, pour que le code qu’il écrit suive les conventions de zenit.

Parcours d'apprentissage

Parcourez-le une fois, dans l'ordre (environ 45 minutes), et vous aurez tout le modèle mental pour créer des applications zenit en autonomie.

L'architecture que vous utilisez

Les applications ne dépendent que de la couche publique stable ; zenit gère la plateforme et le rendu.

LAYERS
zenit.attach(dep, exe) ajoute exactement deux imports de module à votre exécutable (ui et zenit_app), puis compile les ponts natifs et lie les frameworks système. Les modules internes ne figurent pas du tout dans votre graphe de build : ce n’est pas « évitez », c’est « impossible ».

Plus qu'un ensemble d'API

Ces trois capacités traversent le runtime, la pile texte et l'outillage. Chacune est appuyée par une démo exécutable et des preuves en fenêtre réelle.

Trois principes

Suivez-les et votre code restera clair pendant que zenit évolue encore rapidement.

01
N'importer que depuis la couche publique

Utilisez ui.*, ui.<group>.* et zenit_app.App. N’allez jamais piocher dans les répertoires internes.

02
Laisser les données piloter l'UI

L'état persistant vit dans des Signals ou un état lié ; dérivez avec Memo, gérez les effets de bord avec Effect.

03
Tokens d'abord

Couleurs, typographie, espacements et rayons viennent du thème ; si vous devez sortir de l’échelle, dites-le avec ui.arb.

zenit · Double licenceGratuit pour les projets open source sous GPL-3.0-only ; les produits propriétaires ou commerciaux nécessitent une licence commerciale.Contacter l’auteur : zongyi.xzy#gmail.com (remplacez # par @)zenit 4c50245 2026-10-01