# Widget Catalog
## Goal
This document maps the public `faststep` surface by responsibility instead of by source file.
## Foundation
- `UiSystem`: owns the display, root view, theme, i18n, and registration state
- `UiView`: root/custom view contract
- `ViewRegistration`: view metadata and child registration during `configure(...)`
- `ViewEvent`, `ViewRedraw`: explicit redraw and message output from views
- `Localized`, `I18n`: localization helpers
- `FsTheme`: semantic palette and shared widget metrics
## Runtime and OEM
- `DisplayPort`: display backend abstraction
- `UiCanvas`: draw target plus dimming support for overlays
- `UiRuntimeDriver`: timing, sleep, and touch polling abstraction
- `UiRuntimePresenter`: redraw batching and presentation policy abstraction
- `run_ui_system(...)`: framework-owned event loop
## Leaf Widgets
- `Button`: tappable control with built-in highlight state
- `ImageView`: image host with alignment, insets, border, and background support
- `TextView`: single-style text block
- `RichTextView`: multiline styled text block composed from `TextSpan`s
## Scrolling and Data
- `ScrollView`: inertial scrolling, overscroll recovery, and transient scroll indicator
- `ScrollViewState`: lower-level state object shared by scroll-based widgets
- `ListView`: scrollable list built on `ScrollView`
- `ListDataSource`: item count, identity, and height provider
- `ListDelegate`: row rendering plus highlight/select callbacks
- `ListRow`, `ListRowState`, `ListSelection`: row metadata passed through delegate callbacks
## Containers
- `SplitView`: two-pane proportional layout helper
- `StackView`: stack navigation container using a title callback
- `TabView`: higher-level tab container
- `TabBar`: low-level tab rendering and hit-testing
- `NavView`: stack header/body geometry and chrome rendering
- `StackNav`: lower-level stack state machine
## Alerts and Modals
- `AlertSpec`: alert content and actions
- `AlertView`: direct alert drawing widget
- `AlertHost`: framework-owned alert presentation host
- `ModalHost`: generic modal transition state machine
- `ModalLayer`: translated modal geometry for a presentation frame
## Compatibility
- `UiApp`: older compatibility app wrapper
- `ViewDelegate`, `ViewResponse`, `AppRedraw`: compatibility delegate surface for existing code
Use the compatibility layer only when maintaining older demos. New work should start from `UiSystem` and `UiView`.