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.