---
title: "Öffentliche API — zenit Zig UI Doku"
description: "Erkennen Sie auf einen Blick, ob eine Fähigkeit auf der obersten Ebene von ui oder in einem Unter-Namespace liegt."
url: https://zenit.z.express/de/docs/reference/public-api
language: de
alternate_en: https://zenit.z.express/docs/reference/public-api.md
alternate_zh: https://zenit.z.express/zh/docs/reference/public-api.md
alternate_es: https://zenit.z.express/es/docs/reference/public-api.md
alternate_ja: https://zenit.z.express/ja/docs/reference/public-api.md
alternate_ko: https://zenit.z.express/ko/docs/reference/public-api.md
alternate_fr: https://zenit.z.express/fr/docs/reference/public-api.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# Öffentliche API

Erkennen Sie auf einen Blick, ob eine Fähigkeit auf der obersten Ebene von ui oder in einem Unter-Namespace liegt.

`src/ui/ui.zig` ist die gesamte öffentliche API: Apps verwenden nur `ui.*` und `ui.<group>.*`, und jede Änderung, die einen dieser Namen bricht, gilt als API-Bruch.

`imports.zig`

```zig
const ui = @import("ui");
const zenit_app = @import("zenit_app");

// Tier 1: straight off ui
const title = try ui.text(cx, "Hello", .{});

// Tier 2: through the group
const theme = &ui.theme.dark;
const Router = ui.fx.Router;
```

## Tier 1 · `ui.X`

Die Top-Level-Namen, die jede App braucht, nach Zweck gruppiert. Die ersten fünf Gruppen decken die meisten UI-Dateien ab; die letzte ist für eigenes Zeichnen und Framework-Hosts.

Runtime  
Kontext, Knoten und Lebensdauer`Cx · Node · Scope · Style · BoxStyle · HandlerRef`

Builders  
Knoten-Konstruktoren`box · hstack · vstack · text · textFmt · image · imageTint · svg · svgTint · icon · iconTint · spacer · clickable · grid · animateNode`

Styled  
Theme-sichere Builder und Styling`boxStyled · hstackStyled · vstackStyled · textStyled · iconStyled · iconTintStyled · recipe · ConditionalStyle · arb · ThemeTokens · ColorScheme`

Layout  
Layout-Werttypen`Sizing · Size · Point · Padding · Margin · Border · Outline · Direction · FlexWrap · AlignItems · JustifyContent · ComputedRect · GridStyle`

Paint  
Farbe und Zeicheneffekte`Color · BlendMode · CornerRadius · CornerRadii · Shadow · InsetShadow · Gradient · GradientStop · MultiGradient · GradientDirection · GlassParams · GlassSurface`

Text  
Text-Props und Layout-Ergebnis`TextProps · TextStyle · TextWrap · TextAlign · TextLayout · LineInfo · textAlignLineOffset · TextInputClient · TextInputSelection`

Media & cursor  
Bilder, Icons und Cursor`ImageProps · IconProps · SvgAsset · CursorShape · CursorRegion · CursorToken · CustomCursorDesc`

Reactive  
Reaktive Grundlagen (vollständig in ui.reactive)`Signal · Memo · createEffect · createMemo`

Control flow  
Bedingungen und Listen (auch ui.control\_flow)`Show · For · Match`

A11y  
Barrierefreiheits-Eigenschaften`A11yRole · A11yProps · A11yOrientation · A11ySortDirection · A11yRect · A11yValueRange`

Components  
Kontrollierte / unkontrollierte Props`ControlledProp`

Advanced  
Eigenes Zeichnen, Layout-Callbacks und aufgeteilte Tasks`DisplayItem · DrawContext · BulkQuad · AfterLayoutFn · AfterLayoutResult · max_after_layout_rounds · PointerDownFocus · Task · WorkKey · frame`

## Tier 2 · `ui.<group>.X`

Nach Themen gruppiert. Greifen Sie darauf zurück, wenn Sie mehr als die Grundlagen brauchen.

| Namespace | Inhalt |
| --- | --- |
| `ui.widgets` | Die Komponentenbibliothek: Button, Input, Modal, Tabs, VirtualList, Calendar, Notifier, FormOf… |
| `ui.fx` | Animation (Tween, Spring, Timeline), Physik, Transition / SnapshotTransition, Router |
| `ui.events` | Vollständiges Event und EventResult plus Payloads für Tastatur, Maus, Scrollen, Drag und IME (ImePreeditEvent / ImeCommitEvent) |
| `ui.hooks` | useHover, useFocusRing, useHoverHighlight, useAnimatedBackground, onMount / onCleanup |
| `ui.reactive` | Das vollständige reaktive System: Scope, Context, StoreOf, SignalOwner, eqlValue |
| `ui.control_flow` | Show / For / Match und ihre Optionstypen |
| `ui.focus` | FocusManager, FocusScopeConfig, Tab-Reihenfolge |
| `ui.actions` | Action, KeyBinding, CommandBinding, ActionDispatcher |
| `ui.theme` | ThemeTokens, ColorTokens und die eingebauten light / dark / high\_contrast |
| `ui.icons` | Der vollständige Icon-Katalog des gewählten Providers (get, all) |
| `ui.system_icons` | Providerneutrale semantische Icon-Rollen |
| `ui.assets` | Der SVG-Asset-Typ und die Legacy-Icons in common |
| `ui.interaction` | Interaktionsprimitive wie RangeHoverRegistry und drag |
| `ui.select_headless` | Headless-Zustandsautomat für Select (step, commitSelection) |
| `ui.gesture` | Gestenerkennung und -arbitrierung (Recognizer, GestureArena) |
| `ui.hit / ui.path` | Hit-Testing (HitQuery, HitBehavior…) und Pfadgeometrie (PathCommand, Transform2D…) |
| `ui.platform_services` | Zwischenablage und Dateidialoge, mit cx.system\_sdk als Argument |
| `ui.text_shaping` | Hooks für Schriftauflösung und -messung (setShapeFontResolver…) |
| `ui.console` | Logging pro Cx: Console, ScopedConsole, Level, Config, Snapshot |
| `ui.devtools` | overlay (Inspektor im Fenster), mountPanel (eigenständiges Panel), trace, source\_link |

Props und Ergebnistypen der Komponenten finden Sie auf der [Komponenten-Website](https://zenit.z.express/de/components); die Icon-Liste steht in der [Icon Gallery](https://zenit.z.express/de/docs/guide/icons). `ui.a11y` dient nur der Anbindung der Plattform-Runtime und ist nicht für App-Autoren gedacht — die Barrierefreiheit einer Komponente steckt in den `A11yProps` eines Knotens.

## zenit\_app

`zenit_app.App` ist der Runtime-Helper für ein Fenster — Plattform-, GPU- und Schrift-Setup plus Event-Loop; `zenit_app.MultiWindowApp` verwaltet mehrere unabhängige native Fenster (höchstens 16; darüber hinaus erhalten Sie `error.TooManyWindows`). Das Modul exportiert außerdem `WindowConfig`, `MultiWindowConfig`, `FontConfig` und `ResourcePath`. Fortgeschrittene Hosts können tiefer ansetzen, gewöhnliche Apps sollten aber hier beginnen.

## Grenze

> WARNING
> 
> **Interne APIs haben keine Kompatibilitätszusage.** Importieren Sie nie direkt aus `core/`, `reactive/`, `i18n/` oder anderen Quellpfaden. Ein neuer Top-Level-Namespace muss im Allowlist-Test in `ui.zig` registriert werden; entwerfen Sie eine stabile öffentliche Schnittstelle, bevor Sie eine neue Fähigkeit freigeben.
