pub enum Builtin {
Show 25 variants
Container,
Label,
Button,
Toggle,
Slider,
TextField,
TextArea,
Picker,
Divider,
Scroll,
Image,
Progress,
Canvas,
Nav,
NavPage,
NavMenu,
List,
ListCell,
Tree,
Cover,
Inspector,
InspectorPane,
Split,
SplitPane,
ListItem,
}Expand description
Variants§
Container
A dumb native panel (the column/row/stack backing).
Label
Button
Toggle
Slider
TextField
TextArea
A native multi-line text editor (docs/textarea.md). Built-in since 2026-07 (previously
the satellite day-piece-textarea).
Picker
A native option picker with menu/segmented/inline stylings (docs/picker.md). Built-in
since 2026-07 (previously the satellite day-piece-picker).
Divider
Scroll
Image
Progress
Progress indicator: determinate bar (fraction) or indeterminate spinner.
Canvas
Navigation host (docs/navigation.md): stack on mobile, split panes on desktop.
One destination’s native container inside a NAV host.
Native navigation item list (docs/navigation.md): NSOutlineView source list / GtkListBox navigation-sidebar / QListWidget / UITableView rows with chevrons.
List
Native recycling list (docs/list.md): NSTableView / UITableView / RecyclerView / GtkListView / QListView. Owns scrolling + cell reuse; Day binds row content on demand.
ListCell
A recycled row’s content anchor inside a LIST; Day adopts the native cell as its handle.
Adopted, never realized: Toolkit::adopt wraps the native cell, so backends’ realize
never sees this kind.
Tree
Native hierarchical tree (docs/tree.md): NSOutlineView / sidebar collection list /
GtkListView+TreeListModel / WinUI TreeView / ArkTS TreeView. Rows nest, disclose, and
drag-to-reparent; Day binds row content on demand through Toolkit::attach_tree.
Row cells are adopted (the same LIST_CELL anchor path as List).
Cover
A fullscreen cover (docs/cover.md): a modal surface presented over the whole window,
edge-to-edge, driven by CoverPatch::{Present,Dismiss}. The handle is the cover’s
content container; its frame is native-owned while presented (the backend sizes it to
the safe area and reports it via Event::FrameChanged).
Inspector
Content beside a trailing inspector pane (docs/inspector.md): the native split whose
second pane is a show/hidable properties panel. Exactly two INSPECTOR_PANE children:
the content, then the panel (InspectorPaneProps::panel). Only realized where
Cap::Inspector answers Native; everywhere else the inspector piece composes the
pane from plain containers and this kind never reaches the backend.
InspectorPane
One pane’s container inside an INSPECTOR host: the NAV_PAGE of the inspector split.
Its frame is native-owned (the splitter/dock sizes it), reported via
Event::FrameChanged on this node; Day lays the pane’s content out inside it.
Split
Two panes with a divider the user drags (docs/split.md): the toolkit’s own splitter,
side by side or stacked (SplitProps::axis), the first pane’s share bound to the app
(SplitProps::fraction, reported back as Event::ValueChanged). Exactly two
SPLIT_PANE children, first then second. Only realized where Cap::Split answers
Native; everywhere else the split piece composes the panes and draws the divider
itself, and this kind never reaches the backend.
SplitPane
One pane’s container inside a SPLIT host: native-owned frame (the splitter sizes it),
reported via Event::FrameChanged on this node, like an INSPECTOR_PANE.
ListItem
A list row’s standard content (docs/list.md “List items”): a leading icon, a title, an
optional subtitle and trailing detail, and a check mark, drawn the way the platform
draws its own list rows: a UIListContentView with the cell’s default content
configuration, a Material list item, an NSTableCellView’s image and text, a GTK row
box. Only realized where Cap::ListItem answers Native; everywhere else the
list_item piece composes the same content and this kind never reaches the backend.