Conventional controls live in the separately published gpui_components
package. GPUI.UI provides controlled Elixir components rendered by the
:gpui_component gpui_native host with gpui-component. Components build
ordinary %GPUI.Element{} data; the native display owns GPUI entities, focus,
and transient interaction state.
Choose a guide by the task you are working on:
- Templates and elements explains HEEx-style templates, primitive tags, component aliases, stable identities, and schema-backed validation.
- Forms and controls covers inputs, choices, grouped controls, tabs, accordions, sliders, splits, progress, and focus.
- Collections and data views covers variable and uniform virtualization, source-backed lists, tables, trees, and code viewers.
- Text and editing covers selectable rich text.
- Editable text surfaces covers persistent buffers, revisioned transactions, submission, geometry, and text annotations.
- Layout, styling, and presentation covers Tailwind-compatible classes, layers, motion, bounds, and themes.
- Presentation primitives covers bounded edge fades, frost fallbacks, and rectangle-and-line custom paint.
- Resources and display actions covers display-local file selection, clipboard writes, image decoding, and raster resources.
- Windows and lifecycle covers declarative window constraints and lifecycle callbacks.
- Commands and keyboard shortcuts and Overlays and menus document those focused interaction systems.
Every native component requires a stable, non-empty string id. Controlled
values remain application-owned; displays retain only transient interaction
state and emit events requesting authoritative Elixir updates.