---
title: "API pública — Docs de zenit Zig UI"
description: "Distingue de un vistazo si una capacidad está en el nivel superior de ui o en un subnamespace."
url: https://zenit.z.express/es/docs/reference/public-api
language: es
alternate_en: https://zenit.z.express/docs/reference/public-api.md
alternate_zh: https://zenit.z.express/zh/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
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 pública

Distingue de un vistazo si una capacidad está en el nivel superior de ui o en un subnamespace.

`src/ui/ui.zig` es toda la API pública: las apps solo usan `ui.*` y `ui.<group>.*`, y romper cualquier nombre de ambos cuenta como una ruptura de 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`

Los nombres de nivel superior que usa cualquier app, agrupados por propósito. Los cinco primeros grupos cubren la mayoría de los archivos de UI; el último es para dibujo propio y hosts del framework.

Runtime  
Contexto, nodos y ciclo de vida`Cx · Node · Scope · Style · BoxStyle · HandlerRef`

Builders  
Constructores de nodos`box · hstack · vstack · text · textFmt · image · imageTint · svg · svgTint · icon · iconTint · spacer · clickable · grid · animateNode`

Styled  
Builders seguros con el tema y estilos`boxStyled · hstackStyled · vstackStyled · textStyled · iconStyled · iconTintStyled · recipe · ConditionalStyle · arb · ThemeTokens · ColorScheme`

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

Paint  
Color y efectos de pintado`Color · BlendMode · CornerRadius · CornerRadii · Shadow · InsetShadow · Gradient · GradientStop · MultiGradient · GradientDirection · GlassParams · GlassSurface`

Text  
Props de texto y resultado del layout`TextProps · TextStyle · TextWrap · TextAlign · TextLayout · LineInfo · textAlignLineOffset · TextInputClient · TextInputSelection`

Media & cursor  
Imágenes, iconos y cursores`ImageProps · IconProps · SvgAsset · CursorShape · CursorRegion · CursorToken · CustomCursorDesc`

Reactive  
Lo esencial reactivo (todo en ui.reactive)`Signal · Memo · createEffect · createMemo`

Control flow  
Condicionales y listas (también ui.control\_flow)`Show · For · Match`

A11y  
Propiedades de accesibilidad`A11yRole · A11yProps · A11yOrientation · A11ySortDirection · A11yRect · A11yValueRange`

Components  
Props controladas / no controladas`ControlledProp`

Advanced  
Dibujo propio, callbacks de layout y tareas fraccionadas`DisplayItem · DrawContext · BulkQuad · AfterLayoutFn · AfterLayoutResult · max_after_layout_rounds · PointerDownFocus · Task · WorkKey · frame`

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

Agrupados por área. Recurre a ellos cuando necesites más que lo básico.

| Namespace | Contenido |
| --- | --- |
| `ui.widgets` | La biblioteca de componentes: Button, Input, Modal, Tabs, VirtualList, Calendar, Notifier, FormOf… |
| `ui.fx` | Animación (Tween, Spring, Timeline), física, Transition / SnapshotTransition, Router |
| `ui.events` | Event y EventResult completos, más payloads de teclado, ratón, scroll, arrastre e IME (ImePreeditEvent / ImeCommitEvent) |
| `ui.hooks` | useHover, useFocusRing, useHoverHighlight, useAnimatedBackground, onMount / onCleanup |
| `ui.reactive` | El sistema reactivo completo: Scope, Context, StoreOf, SignalOwner, eqlValue |
| `ui.control_flow` | Show / For / Match y sus tipos de opciones |
| `ui.focus` | FocusManager, FocusScopeConfig, orden de tabulación |
| `ui.actions` | Action, KeyBinding, CommandBinding, ActionDispatcher |
| `ui.theme` | ThemeTokens, ColorTokens y los temas integrados light / dark / high\_contrast |
| `ui.icons` | El catálogo completo de iconos del provider elegido (get, all) |
| `ui.system_icons` | Roles de iconos semánticos independientes del provider |
| `ui.assets` | El tipo SVG Asset y los iconos heredados de common |
| `ui.interaction` | Primitivas de interacción como RangeHoverRegistry y drag |
| `ui.select_headless` | Máquina de estados headless de Select (step, commitSelection) |
| `ui.gesture` | Reconocimiento y arbitraje de gestos (Recognizer, GestureArena) |
| `ui.hit / ui.path` | Hit testing (HitQuery, HitBehavior…) y geometría de trazados (PathCommand, Transform2D…) |
| `ui.platform_services` | Portapapeles y diálogos de archivo, reciben cx.system\_sdk |
| `ui.text_shaping` | Hooks de resolución y medición de fuentes (setShapeFontResolver…) |
| `ui.console` | Logging por Cx: Console, ScopedConsole, Level, Config, Snapshot |
| `ui.devtools` | overlay (inspector en la ventana), mountPanel (panel independiente), trace, source\_link |

Las props y tipos de resultado de los componentes están en el [sitio de componentes](https://zenit.z.express/es/components); la lista de iconos está en la [Icon Gallery](https://zenit.z.express/es/docs/guide/icons). `ui.a11y` solo existe para el cableado del runtime de la plataforma y no es para autores de apps: la accesibilidad de un componente vive en los `A11yProps` de un nodo.

## zenit\_app

`zenit_app.App` es el helper de runtime de una sola ventana: inicialización de plataforma, GPU y fuentes más el bucle de eventos; `zenit_app.MultiWindowApp` gestiona varias ventanas nativas independientes (como máximo 16; más allá obtienes `error.TooManyWindows`). El módulo también exporta `WindowConfig`, `MultiWindowConfig`, `FontConfig` y `ResourcePath`. Los hosts avanzados pueden bajar de nivel, pero las apps normales deberían empezar aquí.

## Límites

> WARNING
> 
> **Las API internas no tienen promesa de compatibilidad.** Nunca importes directamente desde `core/`, `reactive/`, `i18n/` u otras rutas del código fuente. Un nuevo namespace de nivel superior debe registrarse en el test de allowlist de `ui.zig`; diseña una superficie pública estable antes de exponer una nueva capacidad.
