---
title: "API publique — Docs zenit Zig UI"
description: "Voyez d’un coup d’œil si une fonctionnalité se trouve au niveau supérieur de ui ou dans un sous-namespace."
url: https://zenit.z.express/fr/docs/reference/public-api
language: fr
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_de: https://zenit.z.express/de/docs/reference/public-api.md
project: zenit v0.1.0-alpha (Zig 0.15.2, macOS)
source: https://github.com/version-next/zenit
---

# API publique

Voyez d’un coup d’œil si une fonctionnalité se trouve au niveau supérieur de ui ou dans un sous-namespace.

`src/ui/ui.zig` constitue toute l’API publique : les apps n’utilisent que `ui.*` et `ui.<group>.*`, et casser un nom de l’un ou de l’autre compte comme une rupture d’API.

`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`

Les noms de premier niveau qu’utilise toute app, regroupés par usage. Les cinq premiers groupes couvrent la plupart des fichiers d’UI ; le dernier sert au dessin personnalisé et aux hôtes du framework.

Runtime  
Contexte, nœuds et durée de vie`Cx · Node · Scope · Style · BoxStyle · HandlerRef`

Builders  
Constructeurs de nœuds`box · hstack · vstack · text · textFmt · image · imageTint · svg · svgTint · icon · iconTint · spacer · clickable · grid · animateNode`

Styled  
Builders compatibles avec le thème et styles`boxStyled · hstackStyled · vstackStyled · textStyled · iconStyled · iconTintStyled · recipe · ConditionalStyle · arb · ThemeTokens · ColorScheme`

Layout  
Types de valeur de layout`Sizing · Size · Point · Padding · Margin · Border · Outline · Direction · FlexWrap · AlignItems · JustifyContent · ComputedRect · GridStyle`

Paint  
Couleur et effets de peinture`Color · BlendMode · CornerRadius · CornerRadii · Shadow · InsetShadow · Gradient · GradientStop · MultiGradient · GradientDirection · GlassParams · GlassSurface`

Text  
Props de texte et résultat de mise en page`TextProps · TextStyle · TextWrap · TextAlign · TextLayout · LineInfo · textAlignLineOffset · TextInputClient · TextInputSelection`

Media & cursor  
Images, icônes et curseurs`ImageProps · IconProps · SvgAsset · CursorShape · CursorRegion · CursorToken · CustomCursorDesc`

Reactive  
L’essentiel réactif (tout dans ui.reactive)`Signal · Memo · createEffect · createMemo`

Control flow  
Conditions et listes (aussi ui.control\_flow)`Show · For · Match`

A11y  
Propriétés d’accessibilité`A11yRole · A11yProps · A11yOrientation · A11ySortDirection · A11yRect · A11yValueRange`

Components  
Props contrôlées / non contrôlées`ControlledProp`

Advanced  
Dessin personnalisé, callbacks de layout et tâches découpées`DisplayItem · DrawContext · BulkQuad · AfterLayoutFn · AfterLayoutResult · max_after_layout_rounds · PointerDownFocus · Task · WorkKey · frame`

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

Regroupés par domaine. Utilisez-les quand vous avez besoin de plus que l’essentiel.

| Namespace | Contenu |
| --- | --- |
| `ui.widgets` | La bibliothèque de composants : Button, Input, Modal, Tabs, VirtualList, Calendar, Notifier, FormOf… |
| `ui.fx` | Animation (Tween, Spring, Timeline), physique, Transition / SnapshotTransition, Router |
| `ui.events` | Event et EventResult complets, plus les payloads clavier, souris, défilement, glisser et IME (ImePreeditEvent / ImeCommitEvent) |
| `ui.hooks` | useHover, useFocusRing, useHoverHighlight, useAnimatedBackground, onMount / onCleanup |
| `ui.reactive` | Le système réactif complet : Scope, Context, StoreOf, SignalOwner, eqlValue |
| `ui.control_flow` | Show / For / Match et leurs types d’options |
| `ui.focus` | FocusManager, FocusScopeConfig, ordre de tabulation |
| `ui.actions` | Action, KeyBinding, CommandBinding, ActionDispatcher |
| `ui.theme` | ThemeTokens, ColorTokens et les thèmes intégrés light / dark / high\_contrast |
| `ui.icons` | Le catalogue d’icônes complet du provider choisi (get, all) |
| `ui.system_icons` | Rôles d’icônes sémantiques indépendants du provider |
| `ui.assets` | Le type SVG Asset et les icônes héritées de common |
| `ui.interaction` | Primitives d’interaction comme RangeHoverRegistry et drag |
| `ui.select_headless` | Machine à états headless de Select (step, commitSelection) |
| `ui.gesture` | Reconnaissance et arbitrage des gestes (Recognizer, GestureArena) |
| `ui.hit / ui.path` | Hit testing (HitQuery, HitBehavior…) et géométrie des tracés (PathCommand, Transform2D…) |
| `ui.platform_services` | Presse-papiers et dialogues de fichiers, prenant cx.system\_sdk |
| `ui.text_shaping` | Hooks de résolution et de mesure des polices (setShapeFontResolver…) |
| `ui.console` | Journalisation par Cx : Console, ScopedConsole, Level, Config, Snapshot |
| `ui.devtools` | overlay (inspecteur dans la fenêtre), mountPanel (panneau autonome), trace, source\_link |

Les props et types de résultat des composants se trouvent sur le [site des composants](https://zenit.z.express/fr/components) ; la liste des icônes est dans l’[Icon Gallery](https://zenit.z.express/fr/docs/guide/icons). `ui.a11y` ne sert qu’au câblage du runtime de la plateforme et ne s’adresse pas aux auteurs d’apps — l’accessibilité d’un composant se définit dans les `A11yProps` d’un nœud.

## zenit\_app

`zenit_app.App` est le helper de runtime mono-fenêtre — initialisation de la plateforme, du GPU et des polices, plus la boucle d’événements ; `zenit_app.MultiWindowApp` gère plusieurs fenêtres natives indépendantes (16 au maximum ; au-delà, vous obtenez `error.TooManyWindows`). Le module exporte aussi `WindowConfig`, `MultiWindowConfig`, `FontConfig` et `ResourcePath`. Les hôtes avancés peuvent descendre plus bas, mais les apps ordinaires devraient commencer ici.

## Frontière

> WARNING
> 
> **Les API internes n’offrent aucune garantie de compatibilité.** N’importez jamais directement depuis `core/`, `reactive/`, `i18n/` ou d’autres chemins de sources. Un nouveau namespace de premier niveau doit être enregistré dans le test d’allowlist de `ui.zig` ; concevez une surface publique stable avant d’exposer une nouvelle fonctionnalité.
