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.
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.
Contexte, nœuds et durée de vie
Cx · Node · Scope · Style · BoxStyle · HandlerRefConstructeurs de nœuds
box · hstack · vstack · text · textFmt · image · imageTint · svg · svgTint · icon · iconTint · spacer · clickable · grid · animateNodeBuilders compatibles avec le thème et styles
boxStyled · hstackStyled · vstackStyled · textStyled · iconStyled · iconTintStyled · recipe · ConditionalStyle · arb · ThemeTokens · ColorSchemeTypes de valeur de layout
Sizing · Size · Point · Padding · Margin · Border · Outline · Direction · FlexWrap · AlignItems · JustifyContent · ComputedRect · GridStyleCouleur et effets de peinture
Color · BlendMode · CornerRadius · CornerRadii · Shadow · InsetShadow · Gradient · GradientStop · MultiGradient · GradientDirection · GlassParams · GlassSurfaceProps de texte et résultat de mise en page
TextProps · TextStyle · TextWrap · TextAlign · TextLayout · LineInfo · textAlignLineOffset · TextInputClient · TextInputSelectionImages, icônes et curseurs
ImageProps · IconProps · SvgAsset · CursorShape · CursorRegion · CursorToken · CustomCursorDescL’essentiel réactif (tout dans ui.reactive)
Signal · Memo · createEffect · createMemoConditions et listes (aussi ui.control_flow)
Show · For · MatchPropriétés d’accessibilité
A11yRole · A11yProps · A11yOrientation · A11ySortDirection · A11yRect · A11yValueRangeProps contrôlées / non contrôlées
ControlledPropDessin personnalisé, callbacks de layout et tâches découpées
DisplayItem · DrawContext · BulkQuad · AfterLayoutFn · AfterLayoutResult · max_after_layout_rounds · PointerDownFocus · Task · WorkKey · frameTier 2 · ui.<group>.X
Regroupés par domaine. Utilisez-les quand vous avez besoin de plus que l’essentiel.
ui.widgetsLa bibliothèque de composants : Button, Input, Modal, Tabs, VirtualList, Calendar, Notifier, FormOf…ui.fxAnimation (Tween, Spring, Timeline), physique, Transition / SnapshotTransition, Routerui.eventsEvent et EventResult complets, plus les payloads clavier, souris, défilement, glisser et IME (ImePreeditEvent / ImeCommitEvent)ui.hooksuseHover, useFocusRing, useHoverHighlight, useAnimatedBackground, onMount / onCleanupui.reactiveLe système réactif complet : Scope, Context, StoreOf, SignalOwner, eqlValueui.control_flowShow / For / Match et leurs types d’optionsui.focusFocusManager, FocusScopeConfig, ordre de tabulationui.actionsAction, KeyBinding, CommandBinding, ActionDispatcherui.themeThemeTokens, ColorTokens et les thèmes intégrés light / dark / high_contrastui.iconsLe catalogue d’icônes complet du provider choisi (get, all)ui.system_iconsRôles d’icônes sémantiques indépendants du providerui.assetsLe type SVG Asset et les icônes héritées de commonui.interactionPrimitives d’interaction comme RangeHoverRegistry et dragui.select_headlessMachine à états headless de Select (step, commitSelection)ui.gestureReconnaissance et arbitrage des gestes (Recognizer, GestureArena)ui.hit / ui.pathHit testing (HitQuery, HitBehavior…) et géométrie des tracés (PathCommand, Transform2D…)ui.platform_servicesPresse-papiers et dialogues de fichiers, prenant cx.system_sdkui.text_shapingHooks de résolution et de mesure des polices (setShapeFontResolver…)ui.consoleJournalisation par Cx : Console, ScopedConsole, Level, Config, Snapshotui.devtoolsoverlay (inspecteur dans la fenêtre), mountPanel (panneau autonome), trace, source_linkLes props et types de résultat des composants se trouvent sur le site des composants ; la liste des icônes est dans l’Icon Gallery. 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.