---
title: "공개 API — zenit Zig UI 문서"
description: "어떤 기능이 ui 최상위에 있는지 하위 네임스페이스에 있는지 한눈에 판단할 수 있습니다."
url: https://zenit.z.express/ko/docs/reference/public-api
language: ko
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_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 레퍼런스

어떤 기능이 ui 최상위에 있는지 하위 네임스페이스에 있는지 한눈에 판단할 수 있습니다.

`src/ui/ui.zig`가 공개 API의 전부입니다. 앱은 `ui.*`와 `ui.<group>.*`만 사용하며, 둘 중 어느 이름이라도 깨뜨리면 API break로 간주합니다.

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

모든 앱이 사용하는 최상위 이름을 용도별로 묶었습니다. 처음 다섯 그룹으로 대부분의 UI 파일을 다룰 수 있고, 마지막 그룹은 사용자 정의 그리기와 프레임워크 호스트용입니다.

Runtime  
컨텍스트, 노드, 수명`Cx · Node · Scope · Style · BoxStyle · HandlerRef`

Builders  
노드 생성자`box · hstack · vstack · text · textFmt · image · imageTint · svg · svgTint · icon · iconTint · spacer · clickable · grid · animateNode`

Styled  
테마 안전 빌더와 스타일링`boxStyled · hstackStyled · vstackStyled · textStyled · iconStyled · iconTintStyled · recipe · ConditionalStyle · arb · ThemeTokens · ColorScheme`

Layout  
레이아웃 값 타입`Sizing · Size · Point · Padding · Margin · Border · Outline · Direction · FlexWrap · AlignItems · JustifyContent · ComputedRect · GridStyle`

Paint  
색상과 페인트 효과`Color · BlendMode · CornerRadius · CornerRadii · Shadow · InsetShadow · Gradient · GradientStop · MultiGradient · GradientDirection · GlassParams · GlassSurface`

Text  
텍스트 속성과 레이아웃 결과`TextProps · TextStyle · TextWrap · TextAlign · TextLayout · LineInfo · textAlignLineOffset · TextInputClient · TextInputSelection`

Media & cursor  
이미지, 아이콘, 커서`ImageProps · IconProps · SvgAsset · CursorShape · CursorRegion · CursorToken · CustomCursorDesc`

Reactive  
리액티브 기본(전체는 ui.reactive)`Signal · Memo · createEffect · createMemo`

Control flow  
조건과 리스트(ui.control\_flow에도 있음)`Show · For · Match`

A11y  
접근성 속성`A11yRole · A11yProps · A11yOrientation · A11ySortDirection · A11yRect · A11yValueRange`

Components  
제어 / 비제어 prop`ControlledProp`

Advanced  
사용자 정의 그리기, 레이아웃 콜백, 분할 작업`DisplayItem · DrawContext · BulkQuad · AfterLayoutFn · AfterLayoutResult · max_after_layout_rounds · PointerDownFocus · Task · WorkKey · frame`

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

관심사별로 묶었습니다. 기본 이상이 필요할 때 사용하세요.

| 네임스페이스 | 내용 |
| --- | --- |
| `ui.widgets` | 전체 컴포넌트 라이브러리: Button, Input, Modal, Tabs, VirtualList, Calendar, Notifier, FormOf… |
| `ui.fx` | 애니메이션(Tween, Spring, Timeline), 물리, Transition / SnapshotTransition, Router |
| `ui.events` | 전체 Event와 EventResult, 그리고 키·마우스·스크롤·드래그·IME(ImePreeditEvent / ImeCommitEvent) payload |
| `ui.hooks` | useHover, useFocusRing, useHoverHighlight, useAnimatedBackground, onMount / onCleanup |
| `ui.reactive` | 전체 리액티브 시스템: Scope, Context, StoreOf, SignalOwner, eqlValue |
| `ui.control_flow` | Show / For / Match와 옵션 타입 |
| `ui.focus` | FocusManager, FocusScopeConfig, 탭 순서 |
| `ui.actions` | Action, KeyBinding, CommandBinding, ActionDispatcher |
| `ui.theme` | ThemeTokens, ColorTokens와 내장 light / dark / high\_contrast |
| `ui.icons` | 선택한 provider의 전체 아이콘 카탈로그(get, all) |
| `ui.system_icons` | provider와 무관한 시맨틱 아이콘 역할 |
| `ui.assets` | SVG Asset 타입과 레거시 common 아이콘 |
| `ui.interaction` | RangeHoverRegistry, drag 같은 인터랙션 프리미티브 |
| `ui.select_headless` | Select의 headless 상태 머신(step, commitSelection) |
| `ui.gesture` | 제스처 인식과 중재(Recognizer, GestureArena) |
| `ui.hit / ui.path` | 히트 테스트(HitQuery, HitBehavior…)와 경로 지오메트리(PathCommand, Transform2D…) |
| `ui.platform_services` | 클립보드와 파일 대화상자, cx.system\_sdk를 인자로 받음 |
| `ui.text_shaping` | 폰트 해석과 측정 훅(setShapeFontResolver…) |
| `ui.console` | Cx별 로깅: Console, ScopedConsole, Level, Config, Snapshot |
| `ui.devtools` | overlay(창 내 인스펙터), mountPanel(독립 패널), trace, source\_link |

컴포넌트의 props와 결과 타입은 [컴포넌트 사이트](https://zenit.z.express/ko/components)에, 아이콘 목록은 [Icon Gallery](https://zenit.z.express/ko/docs/guide/icons)에 있습니다. `ui.a11y`는 플랫폼 런타임 연결 전용이며 앱 작성자에게는 필요 없습니다. 컴포넌트의 접근성 정보는 노드의 `A11yProps`에 있습니다.

## zenit\_app

`zenit_app.App`은 단일 창 런타임 헬퍼로, 플랫폼·GPU·폰트 초기화와 이벤트 루프를 담당합니다. `zenit_app.MultiWindowApp`은 여러 개의 독립된 네이티브 창을 관리합니다(최대 16개, 넘으면 `error.TooManyWindows`를 반환). 같은 모듈은 `WindowConfig`, `MultiWindowConfig`, `FontConfig`, `ResourcePath`도 export합니다. 고급 호스트는 더 낮은 수준의 인터페이스를 쓸 수 있지만, 일반 앱은 여기서 시작해야 합니다.

## 경계

> WARNING
> 
> **내부 API는 호환성을 약속하지 않습니다.** `core/`, `reactive/`, `i18n/` 등의 소스 경로에서 직접 import하지 마세요. 새 최상위 네임스페이스는 `ui.zig`의 allowlist 테스트에 등록해야 합니다. 새 기능을 노출하기 전에 공개 네임스페이스에서 안정적인 인터페이스를 설계하세요.
