Skip to main content

Module widget

Module widget 

Modules§

acknowledgement
A passing acknowledgement: “Link copied”, said once in a small pill near the bottom of the surface, then gone.
action_proposal
ActionProposal: one model call’s answer, shown before it is written.
activity_timeline
ActivityTimeline — the history pane, grouped.
aim
One reading of pointer intent for the whole system: is the pointer passing over something, or aiming at it?
arrange
The layout primitives: Stack, Row, Grid, Split, Page, Layers. The layout primitives (tilolang layout design): Stack, Row, Grid, Split, Page, Layers, with Scroll and Spacer.
arrival_failure
The one face for something that did not arrive.
arriving_rows
Rows that arrive one by one: the same placeholder steps as ArrivingView, kept per row.
arriving_view
ArrivingView: what shows of a read (crate::arriving) while its answer is on the way, and the answer once it is there.
attached
What a view gives the element it stands in to do, besides drawing it: a context menu, a toolbar shown on hover and focus, and a swipe. Each is a described component that attaches (crate::component::Semantics::attaches): it draws nothing where the view puts it, and belongs to the view it stands in. A list item holds those of its row (super::ListItemProps::attached), so the list runs them for each row: the menu on a right-click, the Menu key or a long press, the toolbar while the row is hovered or holds focus, the swipe under the finger.
autocomplete
Autocomplete — a text field with a suggestion list that floats below it — and the Suggestion rows that list shows.
avatar
Avatar: a person’s (or an account’s) picture, or their initials when no picture exists.
badge
Badge widget — the non-interactive member of the chip family: a small pill typically anchored over another element (avatar, icon, row). Three contents:
banner
Banner — an inline, semantic alert strip. Unlike a super::toast::Toast (transient, auto-expiring) a banner is a persistent in-flow message the person resolves or dismisses: “You’re offline — changes will sync when you reconnect”, “This file has unsaved changes”, “You’re in a private window”.
binding
Where a control’s value lives.
block_editor
BlockEditor: a stack of RichTextLine-backed blocks (paragraph, heading, lists, code, divider) with split-on-Enter, merge-on-Backspace, arrow-key navigation and markdown-shortcut promotion (# -> H1, etc). No demotion once a block is a heading, and promotion only fires on an empty paragraph, matching the slash-menu convention.
board
Board: cards in lanes, moved between them by dragging (a kanban board, a pipeline, a hand of tasks by status).
breadcrumb
Breadcrumb widget — a horizontal path indicator with clickable ancestor segments and a chevron icon between them.
candlestick_chart
Interactive OHLC/candlestick charts with an optional volume panel.
canvas_navigation_hint
Shared, modality-aware help overlay for pan/orbit + zoom canvases.
capability
Capabilities: behaviour a widget takes part in beyond pixels and input.
capture_button
The capture button: the shutter, over a camera’s picture or on the desktop’s capture bar.
capture_studio
The capture tool: one see-through bar to take a screenshot, record, or float a live picture in picture of a selection, a window, the screen or the strip.
card
Card and CardGrid: objects in content.
cartesian_plot
Highly configurable interactive Cartesian plots.
category_chart
Category-aware grouped, stacked, normalized and waterfall charts.
change_mark
ChangeMark: what someone else changed that the person has not seen yet (task-legibility §3), as one pill in the changer’s colour: their face, and the task run it was part of. Activating it shows what they did.
chart
Time-series charts — Chart (a full line/area plot with grid lines, axis ticks and a legend) and Sparkline (a compact, chromeless variant for inline trend cells).
chart_navigation
Shared layout, pointer, touch and keyboard semantics for chart widgets.
chip
Chips and badges: one family of pill-shaped marks.
chord_chart
Interactive weighted chord diagram.
chrome_body
The body of the system’s chrome — a bar or a dock — as a described component.
code_editor
The shared multi-line code-editing widget: a retained Widget that puts real code editing — caret, selection (shift/drag, word-wise), clipboard, undo/redo, IME, and a multiline a11y node — on the same TextInput core every other text field uses. On top of that it adds a gutter with line numbers and a current-line highlight, syntax highlighting through a pluggable Highlighter (the widget owns rendering/caret/selection, the app owns the language tokenizer, and every colour comes from the OS Theme), and soft-tab / indent handling.
color_picker
Event-driven: each press latches a DragTarget so a drag continues to track the cursor even after it leaves the widget rect (see wants_pointer_capture). All visuals pull colours from theme tokens — no literal palette values live in this file.
color_swatch
Colour swatches: one named swatch type, one painter, one picker.
completion
What a completion drawer offers and in which order: the sources a field completes from (ui.Completion(trigger: "@", from: …)), and the rows a typed token shows from them.
context_menu
ContextMenu primitive — a right-click / long-press invoked list of actions with optional separators. Standalone owners draw it in their overlay pass. open_anchored opts into measured, viewport-bounded geometry; legacy open_at callers retain their point placement and fixed rows.
context_menu_area
A context menu over any element: right-click it, or press the Menu key or Shift+F10 while focus is inside it, and the shared ContextMenu opens with the commands its owner offers there and then.
controls
Action-bound controls: the capability a widget provides when it owns an ActionEmitter (a button, a checkbox, a custom painted control), and the walks the host uses to reach every control in a retained tree.
conversation
conversation: what a conversation is made of, once for every app that has one.
cursor
Which pointer shape a laid-out surface shows at a point: one rule for every host (the native App, the harness the browser page drives, the installed shell’s chrome), so a window edge, a text field or a link reads the same everywhere.
data_table
DataTable primitive — sortable, resizable, virtualized tabular view. Sort is non-destructive: rows stay in insertion order and an index view carries the display order, so DataTable::sort_by_with re-applies the remembered comparator whenever local rows change, while DataTable::from_model delegates order and paging to TableModel. Its sparse viewport keeps memory proportional to what is shown.
date_field
DateField: a day, shown as one fact and picked in a popover.
date_indexed_scrollbar
A chronological index for large, virtualised collections.
date_picker
DatePicker widget — month-grid calendar picker.
decorator
Extending a widget without re-implementing it: the Decorator trait.
display_arrangement
Logical screen topology canvas shared by local and native peer displays. Drag-to-arrange canvas for the Displays pane.
distribution_chart
Box and violin plots calculated directly from raw samples.
docked
Content above a bar docked at the foot of its column, as a described component.
document_effects
Optional outside consequences of an actually applied document action.
drag
Reusable drag-to-reorder interaction model — the single source of truth for live-reflow list reordering (weather’s saved cities today; notes, playlists, contacts next).
drag_bus
What is being dragged, across widgets in one window.
drag_run
DragRun: a run of items — a dock’s icons, a toolbar’s tiles, a row of cards — in which an item can be picked up and moved to another place, and a resource from elsewhere (an app, a file, a search result) can be dropped in.
drag_run_component
DragRun as a described component: a run of items a person reorders by dragging one.
drawing
Drawing — shapes drawn with the design system (docs/designs/app-language/components.md §4.1, the custom-widget ladder’s second step).
drop_zone
DropZone: where files can be dropped (an import target, an image to flash, a book to add).
edge_resize
Resizing windows from their edges: which edge an edge drag changes, and how.
emoji_picker
The emoji picker every app opens: to react to something, to put an emoji in what it writes.
empty_state
EmptyState — the centered “there’s nothing here yet” placeholder almost every list-shaped app hand-rolled (Inbox with no mail, a feed with no articles): one theme-driven widget for an optional large Icon in tertiary ink (or an illustration the app paints in the same slot), a title in the Title role, an optional one-sentence message in secondary ink s3 under it, and an optional primary action s4 under the text.
enum_field
EnumField: a value among an enum’s cases, shown as one fact and picked in its menu.
file_open
FileOpenSurface: how an app that opens files invites one, and opens a file dropped anywhere on its window.
file_picker
File-picker dialog widget: the system file chooser, which the shell shows for the FileChooser portal and for an app’s path request, and any “open / save file from app menu” flow. It draws and hit-tests itself; the host positions it as a modal sheet and drains FilePicker::take_outcome.
file_table
The file list: a folder’s entries as the toolkit’s DataTable, with a Name, a Size and a Modified column. It is the one list of files on the desktop: the file manager’s folder view and the system file chooser both show it, so a folder reads, sorts, selects and scrolls the same wherever a person meets it.
find_bar
Find in a document: the FindBar and the Findable capability.
floating_list
FloatingList — the one floating option list: a Panel of rows that scrolls, arms a row for the pointer and the keys, and places itself beside its anchor.
floating_surface
The one body of every floating Panel: popovers, menus, modal sheets and toasts.
function_plane
FunctionPlane — the world ↔ screen mapping and grid of a pannable, zoomable function plot (a grapher’s y = f(x) canvas).
funnel_chart
gauge
Gauges: ProgressRing (a countdown or progress ring with a centred readout) and BarGauge (a labelled horizontal bar).
heatmap
Interactive matrix heatmaps with labelled axes and theme-aware ramps.
histogram
Histogram construction from raw samples.
history
History data types shared by activity_timeline and history_scrubber.
history_face
How an app presents its own changes in the shared History view.
history_group
Turning a flood of individual changes into a small number of things a person can name, collapse and restore to. History surfaces show groups, expanding to individual changes on demand.
icon
IconWidget — a leaf that paints one themed vector glyph from the shared crate::icons::Icon set, at one of the theme’s three icon sizes (IconSize).
image_viewer
Interactive image viewer with pan + zoom semantics, unlike the static crate::widget::Image widget: scroll-wheel zoom, click-drag pan, and a deterministic “fit to viewport” reset. Interaction state (zoom, pan, drag origin) lives on the widget directly; CRDT reflection is out of scope.
input_hint
Compact, shared key/controller/gesture legends.
keyboard_map
A physical keyboard map. Geometry and XKB legends are provided by the device’s native compiler; focused pressed keys are private paint state.
link_popover
LinkPopover — search popover for [[Page Title]] inline page links: a FilterMenu over caller-provided pages, matched by title.
list_row
ListRow: one row of a content list (a message, a contact, a request, a file, a device), as a retained widget and as the ListRowFace immediate painter with identical geometry.
map
Map: children laid out at points on a surface that pans and zooms, as a described component.
markdown_input
Markdown typed as formatting.
marks
Inline marks model used by RichTextLine.
media_card
MediaCard and MediaGrid: albums, videos, books, photos, apps.
media_transport
MediaTransport: what is playing and the controls that steer it, as one band of real controls — art and song, like and lyrics, shuffle, previous, play/pause, next and repeat over the scrubber, the queue and the volume.
mention_picker
The @ picker every rich-text field offers: typing @ and a few letters lists the workspace’s people and agents under the caret, narrowed as the name is typed, and picking one puts a mention of them in the text — one marked run naming their participant id (Mark::Mention), not prose that happens to start with @.
modal_dialog
The one modal: a sheet over a scrim that covers the whole window.
modal_prompt
Shared content body for a text-entry ModalDialog: PromptBody drops in as the content C while the dialog owns the backdrop, title, footer and Esc, and the body renders an optional caption, an optional field label and a TextInput with selection, clipboard and accessibility. The host reads the result with PromptBody::value.
name_field
A one-line, in-place text field for naming something.
native_view
Retained host for a platform/native child view.
now_playing
What plays, painted the one way every player surface paints it: Music’s transport and its Now Playing page, the shell’s Quick Settings card, the lock screen and the desk.
page_preview
Compact, theme-aware page preview for print queues, scan flows, file inspectors, and document pickers. It communicates page shape and progress without pretending to rasterize content that is not available.
page_sidebar
PageSidebar — a shared, reorderable page/slide preview rail: the PDF reader’s page rail and the presentation editor’s slide rail both drive this one widget. It owns the list geometry, scroll, drag-to-reorder (via DragController), a right-click menu, and an optional “add” affordance, emitting PageSidebarEvents the host applies to its model.
paint_damage
Damage certified by the actual retained draw, rather than consumed edit flags.
panic_scope
Which window’s application code is running, for a panic hook to name.
permission_prompt
Inline permission prompt — the bar that pops in at the top of the active strip when a sandboxed app requests a capability.
person_field
PersonField: a form’s person, shown as their avatar and name and picked from a list.
picture
The stock pictures a super::PictureChoice shows: what a visual setting looks like, drawn by the toolkit from the live theme, so an app names the picture a value stands for and never paints one itself.
picture_choice
PictureChoice: a choice among pictures, for a setting whose meaning is visual (a text size, a pointer size, a colour filter). Each option is a tile showing its Picture over its name; the chosen tile carries the selected edge.
pie_chart
Interactive pie and donut charts.
plot
The one widget shell every chart kind shares: layout, title, hover, keyboard and touch inspection, activation, the legend toggles and the accessibility tree. A chart kind only supplies its marks — geometry, hit testing and painting — through PlotMarks; its builder name is an alias of Plot over those marks (Heatmap is Plot<HeatmapMarks>).
polar_area_chart
Interactive polar-area (rose / radial bar) chart.
popover
Popover: the one anchored floating Panel.
primitives
The design system’s primitives (docs/design-language.md, “Primitives”): the only way to build these things. Each owns its padding, radius, colour and motion; callers pass content, never geometry or colour.
program_step
ProgramStepView: one step of an agent’s task as everyone who follows it sees it (docs/designs/app-language/agent-ux.md, “Working shows work”): the tilolang program the agent ran, read-only and coloured in a raised well; what it answered, line by line, with the resource each line names as a reference chip that opens it; what it changed, as rows that undo; and what it proposes, as cards the person confirms or declines.
progress_bar
ProgressBar — determinate / indeterminate horizontal progress indicator.
property_list
PropertyList: labelled values (a contact’s details, a file’s metadata, a certificate’s fields), as a retained widget and as the PropertyListFace immediate painter with identical geometry.
qr
QR-code widget.
quick_tile
QuickTile — a Quick Settings control. Its glyph, name and state line sit on a tile filled with the on colour while the control is on, and a press anywhere on it switches the control. The name takes one line and the state line up to two, broken after a word and elided only past that. A tile whose control has a section of its own (the networks under Wi-Fi) gives it a chevron half, set apart by a hairline, that turns as the section opens.
radar_chart
Interactive radar/spider charts with independently scaled axes.
range_chart
Interactive timeline, Gantt, and numeric range bars.
reaction_strip
The reaction strip: one pill per emoji people reacted with, its count beside it, and a trailing button to add one.
remount
Changing a widget’s own children in the retained layout tree, in place.
resizable_split
ResizableSplit — a two-pane container with a draggable divider — and the divider itself, SplitHandle, for hosts that paint their panes.
resource_actions
Toolkit-owned host for a small app’s typed resource/action surface.
rich_doc
Between tilo-doc’s paragraphs and the block editor’s blocks, both ways.
rich_text_line
A single editable line of text wrapping a local-mode TextInput, the leaf cell of a block editor. The inner TextInput handles cursor placement, selection, IME, copy/paste; RichTextLine adds:
sankey
Automatic-layout interactive Sankey flow diagrams.
screenshot_markup
Exact-pixel screenshot annotation surface shared by applications and shell.
scrollbar
Shared scrollbar interaction model — the single source of truth for thumb geometry, thumb dragging, and track paging used by every scroll-capable widget in the toolkit (Scrollable, DataTable, DocumentViewport).
search_field
SearchField — the in-content filter: a field with a leading magnifier, an editable TextInput, a trailing clear button and a reserved slot for the match count.
search_results
SearchResultsView — the shared results overlay for Tilo global search.
secret_prompt
The one password prompt: every secret Tilo asks for — a Wi-Fi passphrase, a polkit password, a VPN login, an unlock, a SIM PIN — is asked by this component, drawn the same by the shell and by apps.
selection_handles
Selection handles for a canvas: the frame around what is selected, its resize handles at the corners and (once the frame is big enough on screen, or always with SelectionHandles::with_edges) at the middle of each edge, and its rotation handle above (unless SelectionHandles::without_rotation: a crop, a text box, a clip), drawn in your colour and hit-tested at a constant size on screen whatever the zoom.
send_to
The send-to box: where a context menu’s sentence goes.
shortcut_recorder
A compact, visual keyboard-shortcut editor.
signal_meter
SignalMeter: how strong a radio signal is (a Wi-Fi network, a mobile network), as four bars of rising height.
skeleton
Skeleton: the shape of content that is still loading.
slash_menu
SlashMenu — the popover / opens inside a BlockEditor block: a FilterMenu over every block kind the editor makes, plus the commands its host answers (a picture, a link to another page, a page inside this one). Filtering matches keywords as well as labels, so /h2 finds “Heading 2”; each row shows the Markdown that makes the same block.
spinner
Spinner — a circular indeterminate-progress indicator.
stat_tile
StatTile: one number and what it measures, on the content ground.
stepper
Stepper: where a person is in a short sequence of steps (a setup wizard, writing an image, an import).
sunburst
Interactive hierarchical sunburst charts.
table
tabs
text_completion
Inline completion in a text field: :shortcode offers the catalogue’s emoji and @name offers the workspace’s people and agents, in the one list beside the caret.
time_field
TimeField: the time of day a day is due at, picked under the day.
time_picker
TimePicker — three side-by-side vertical spinners for HH : MM : SS.
timeline_density
How much a time grid (a calendar’s week, a schedule) shows of each item, decided from the width of one day column and the theme’s type, so every app that lays out days in columns follows one rule.
toast
Transient notices and the notification card.
toggle_group
ToggleGroup — the segmented control: a strip of segments of which one is chosen (or, before the person has chosen, none). Clicking a segment chooses it and fires on_change with the new index.
toolbar
The toolbar: a measured strip of commands with a shared ContextMenu for overflow, so every command stays reachable however narrow the window. The extent cache is the sole source for intrinsic sizing, fitting and placement.
tooltip
Tooltip primitive — a small label revealed after a short hover delay.
top_edge_reveal
Pointer intent for chrome that hides along a window’s top edge until the person reaches for it: the decorations of a maximized window (its title, Full screen, Restore and close) and, in a Tilo app that puts its header there, the app’s header row with them as one bar.
transport
TransportFace: the previous, play/pause and next controls of a media player, for a painted host that owns its hit-testing (a music bar, a video’s controls).
treemap
Interactive balanced treemaps for hierarchical-area data.
undo_button
The toolkit’s Undo / Redo control.
video_player
VideoPlayer — a reusable video surface with a full playback-controls overlay.
view_tabs
Switching what a window’s content shows: ViewTabs.
virtual_list
Sparse, variable-height list with retained row delegates.
webview
WebView — a leaf widget that displays the live output of a crate::webview::WebViewEngine and forwards pointer, scroll and keyboard input into it.
window_controls
The window’s own controls at the trailing end of its bar: maximize or restore, and close.
window_frame
A window standing on a desktop, as a described component: what a shell draws for a place on a floating desk (shell.md §4, frame_classic) and for a strip of places (strips_view), which is the same thing.
window_header
The window’s header row, as a capability: the one place window-level controls stand.
window_preview
WindowPreview: where a window’s live picture shows in a view, as WindowWell names where the window itself goes.
window_search
Search in a window, in place.
window_well
WindowWell: where a place’s window goes (docs/designs/app-language/shell.md §8).

Structs§

Absent
A placeholder that takes no room: no layout box, no gap, no paint.
ActionDirectoryResourcePage
One bounded page from a widget-owned remote root catalogue. next_cursor is meaningful only while exhausted is false and is never interpreted by a different widget or document revision.
ActionEmitter
A reusable action-intent queue for controls, including custom widgets. Widgets call emit from any interaction path. Mounted shared controls install independent host custody; custom producers should use new_in with their actual owner domain. The private take path remains only as explicitly unqualified migration compatibility.
ActionProposal
One model call’s answer, shown before it is written.
ActionProposalView
A proposal on screen: its title, the model’s note, the change as a diff (or a value’s before and after), which model answered and where it ran, exactly what is sent, and Accept and Reject.
Actions
Standard actions in declaration/focus order: secondaries, then primary. Unspecified buttons use measured content sizing; explicit sizes remain manual. Each wrapped line aligns to the trailing edge.
ActivityCardFace
An activity’s card, ready to paint: what it says, what its own controls are called out loud, and what the person is doing to it.
ActivityEntryProps
One change of a document: what it did, who did it and when.
ActivityTimeline
Scrolling, filterable, groupable activity pane. See module-level docs.
ActivityTimelineProps
The history of a document, grouped: runs of typing fold into one band that opens to its changes, each day’s changes sit under the day’s heading, and a change’s menu offers reverting it.
AppCommand
A command palette entry contributed by an app. Invoked with a mutable CRDT handle and the app’s root ObjId so the command can mutate state directly (matching quick-ui’s direct-mutation event model).
ArrivalFace
The placeholder steps of a read, painted in a rect: the immediate-mode counterpart of ArrivingView, for a painter that draws its own rows.
ArrivingRows
The arrival timing of a widget’s pending rows, by row key.
ArrivingView
A read’s view. See the module docs; build one with Arriving::view.
AttachmentFace
The line under an inline preview, and the badge that says it opens.
AttachmentSummary
Everything the ladder needs to know about one attachment.
Attachments
What a view gave the element it stands in: its menu, its hover toolbar and its swipe.
AuthoredExtent
A breakpoint or pane width authored at 1× for a painted app’s crate::widget::SidebarDrawer, resolved against the theme once when the tree is built. NavShell reads its widths from the metrics and applies the same rule to them.
Autocomplete
AutocompleteProps
A field that suggests completions under it as it is typed into: a search over a site’s catalogue, a mention, a command. The suggestions are what the view gives it; a chosen one fills the field and is reported.
Avatar
A person’s avatar as a retained widget. See the module docs.
AvatarFace
Immediate-mode avatar: the same picture, initials, colour and shape as Avatar, painted into a rect the caller laid out.
AvatarProps
Who someone is, at a glance: their picture, or their initials on their own colour. A thing or a group shows a glyph on a neutral square.
AxisTick
Badge
BadgeFace
An immediate-mode badge for hosts that own their row geometry (shell overlays, painted lists): the Badge look without a layout node.
BadgeProps
A small pill on another element: how many new things there are, a dot for something new, a short status (“Owner”, “Beta”), or the mark of unsaved changes. It is never pressed.
Banner
An inline semantic alert with a title, an optional message, up to two actions and an optional dismiss control.
BannerContent
What an immediate-mode Banner::paint shows: severity, leading icon, title, optional message, up to two actions and whether it offers a dismiss control.
BannerHit
Where Banner::paint put the banner and its controls, for the caller’s hit-testing.
BannerNotice
What a state-bound banner shows (Banner::from_state).
BannerProps
A message that stays in the page until it is resolved or dismissed: “You’re offline”, “This file changed on disk”, “Storage is almost full”. Its kind decides its glyph and colour; it carries a title, a message under it, up to two actions inside its box, and a dismiss button. It opens and closes in place, what follows moving with its edge.
BarChip
A bar chip as a retained widget: the BarChipFace’s content with its own press.
BarChipFace
One bar chip’s content and state, borrowed. Built by the caller each frame; Self::paint draws it and hands back where its parts landed.
BarChipLayout
Where a BarChipFace painted its parts.
BarChipProps
One bar control that stands for people: their faces, a label and a press. A chip with faces opens who is here, an invite opens the host’s own invite flow; a press reaches the view’s press event, which is the same action the palette, scripts and agents invoke.
BarControlFace
A bar control’s content and state, borrowed.
BarFade
The idle fade of an overlay scroll bar: fully visible for a moment after scrolling, then fading out, unless something holds it (the pointer near the bar, a drag, keyboard focus, reduced motion, an always-visible bar). One timer for Scrollable and painted super::ScrollRegions, so every bar in the system appears and fades alike.
BarGauge
Labelled horizontal bar gauge — a rounded track with a left-anchored fill, a top-left label and a right-aligned value readout.
BarGaugeProps
A labelled level as a bar: a disk’s use, a quota, a battery. Its label stands over the track’s start and its readout over its end; the fill turns warning, then danger, as it fills, unless the share has no status.
Block
BlockContent
What one block shows, as the owning model says.
BlockEditor
BlockEditorProps
A document: its paragraphs with their formatting, and each reference in it as the reader’s own inline view of what it refers to (a person with their name, a channel, a task with its number), resolved under their permissions. Bound to a document’s field it edits it, each edit written back as the value now reads and a change from elsewhere shown when the person is not typing there; given a value it shows that, read-only, and activating a reference opens it.
Board
BoardCardProps
One card of a lane: a summary of the resource it stands for, which a press opens. The card is its body: a row given as its body is shown as a card — the row paints the surface, wraps its title and stands its facts under it — so what the card says is written once, and the row is what assistive technology reads as the lane’s item. The card itself is the container around it, with no role of its own.
BoardDrop
Where a dragged card was dropped.
BoardLaneProps
One lane of a board: a heading and its cards, in order.
BoardProps
Cards in lanes, side by side: a kanban board, a pipeline, tasks by status. Dragging a card to another place in its lane or into another lane is reported by the card or lane it lands at; each card also opens, and offers its commands on its context menu, so nothing needs a drag.
BottomSheet
A sheet up from a narrow window’s foot. See the module docs.
Breadcrumb
segment_rects and visible_origin mirror the truncated cached_visible list (not the original segments) so the click hit-test matches what’s on screen.
BreadcrumbProps
Where a page is, as the path to it: each place it is in, a chevron between them, the page itself last. Pressing a place goes there. Where the path does not fit, its middle gives way first, the first place and the page itself staying.
BreadcrumbSegmentProps
One place of a path: what it is called, and going there.
Button
ButtonFace
An immediate-mode button: the Button look for a canvas host that owns its own hit-testing. Built fluently: ButtonFace::new(rect, "Save").role(ButtonRole::Primary).hovered(hit).
ButtonProps
A button: pressing it does one thing. Its role says what kind of thing, which decides its whole look: the window’s one primary action, a destructive one, or an ordinary one.
CachedPaint
A face painted at logical coordinates and appended, translated, on later frames while the widget keeps its size: a widget that only moves (a scrolled row, a reflowed toolbar) costs no shaping or encoding.
Candle
CandlestickStyle
CanvasNavigationHint
A quiet bottom-centred overlay that teaches canvas navigation without stealing focus or pointer input.
CanvasView
How a row’s windows stand on a canvas, and how much of it shows.
CaptureButtonFace
Immediate-mode capture button.
CaptureIntent
CapturePreview
CaptureStudio
CaptureTarget
A live window the capture tool can take, whether or not it is on this output now. virtual_rect is its place in Tilo’s continuous desktop; visible_rect is the part of it on this output.
Card
A retained card. See the module docs.
CardFace
Immediate-mode card: the surface, leading stripe, title and focus ring of a Card, for a caller that paints its own body into CardFace::body_rect.
CardGrid
Reflows its cards into equal, aligned columns by width. Each row is as tall as its tallest card; cards share the row’s height so their footers line up, and a row of short cards stays short.
CardGridCardProps
One card of a grid: a summary of the resource it stands for, which a press opens.
CardGridProps
Cards in equal, aligned columns: the apps of a store, the devices of a network, the paragraphs of a review. Each card is a resource, and pressing one opens it.
CardProps
A summary of one thing on a surface of its own: a dashboard’s tile, a resource’s preview. Pressing it opens what it stands for.
CartesianAnimationStyle
CartesianAnnotation
Presentation for an analytical annotation. Annotations deliberately use data coordinates, so they remain correct through resize, zoom, and pan.
CartesianBrushSelection
CartesianGesturePolicy
CartesianRenderingStyle
CartesianStyle
CartesianTooltipStyle
Category
CategoryChartStyle
CategorySeries
CategoryValue
ChangeMark
A change mark as a widget: the faces and the label, kept where they stand while what they say changes, and the catch-up a window’s mark opens.
ChangeMarkProps
What someone else changed of a resource that the person looking has not seen yet: who, in which task run, and whether they made, changed or removed it. The host fills all but of from the resource’s versions; activating it shows what they did.
Chart
Full time-series line/area chart with grid, axis ticks and a legend.
ChartItem
One valued item: a funnel stage, a polar wedge, a treemap tile.
ChartLabels
The text a Chart paints around its plot. Any of them may be empty.
ChartLink
A weighted link from one ChartNode to another, by node id.
ChartNode
A node of a flow or relationship graph (sankey, chord).
ChartStyle
Grid, header and series styling for a Chart.
ChartTouchTracker
Tracks one finger and distinguishes a tap from a scroll/drag. Charts may inspect continuously while only activating on a stationary release.
CheckColumn
What every row of a suggestion list shares: whether any row shows a state, so they all keep the check column.
CheckMotion
The motion of one checkbox or radio: the retained Checkbox keeps one, and so does any host painting CheckboxFaces (CheckboxFace::pose), one per box.
CheckPose
How a checkbox or radio is drawn this frame.
Checkbox
CheckboxFace
Stateless checkbox presentation for hand-laid-out canvases.
CheckboxProps
A box that is marked or not, bound to what it edits (whether to be told of a reply, which rows a bulk action takes). A labelled box is one target, its label included.
ChildMeasurement
Allocated size and overflowing content are separate measurements.
Chip
ChipColors
The resolved colours of one pill.
ChipFace
An immediate-mode chip for a canvas that lays out its own rows (a rail, a curve, a toolbar): the Chip widget’s look with no layout node.
ChipProps
A compact pill for a tag, a filter or a token: what a note is tagged with, a recipient, an applied filter. Pressing it opens or applies what it names; a chip that can be taken away has a trailing remove button; a filter chip shows whether it is on.
ChordStyle
ChromeBody
ChromeProps built: a padded container whose ground the theme paints.
ChromeProps
A bar or a dock’s body: the theme’s bar finish behind what the body holds.
CodeEditor
Wraps the multiline TextInput core and enables its gutter + syntax-highlight path, so all caret/selection/clipboard/undo/IME/a11y behaviour is the one shared implementation.
CodeEditorProps
Code to read or write, with line numbers and its language’s colouring. What is typed edits the text it is bound to, each edit spliced in, never written over.
ColorPicker
ColorPickerProps
A colour, picked from a saturation and value field, a hue strip, the red, green and blue sliders, or a hex field; a palette of quick picks sits under them when given.
ColorSwatch
One colour a person can pick.
ColorSwatchFace
An immediate-mode swatch: paint, hit-test, tooltip and accessibility from one declaration.
ColorSwatchPicker
A grid of ColorSwatches as a widget.
ColorSwatchPickerProps
A grid of swatches, one chosen (a palette of accents): the chosen cell carries the ring. Each swatch is a colour by its hex text, shown in the theme’s own samples.
Column
Columns
See the module docs.
Composed
A widget’s composition: the element tree it rebuilds at every layout, or keeps across layouts until it is invalidated (Composed::build_layout_kept), and lays out as the only child of its own node, plus the box it was given and whether the owner asked for a rebuild. The owning widget forwards its tree methods here.
Container
Each bool below is an independent builder toggle (background, height fill, padding, grow behaviour) set at construction time, not a state machine with meaningful combinations to enumerate — a bitflags/enum refactor would ripple across every one of Container’s call sites in the crate for no behavioural gain.
ContextMenu
ContextMenuArea
ContextMenuProps
A context menu of the view it stands in: a right-click, the Menu key or a long press opens it. Its commands come first, as the view placed them; the system adds what the item offers that the view did not place and a typing field to filter them. A destructive command runs at once and is undone afterwards, never confirmed first.
ControlBindingMetadata
ControlRow
A selectable row of a short list whose items carry real controls (a layers panel with each layer’s thumbnail, name and switches; a list of versions with a restore button): a crate::widget::Row of widgets standing in the list row’s selection lift.
ControlRowProps
A selectable row of a short list whose items carry their own controls (a layers panel, each layer’s name beside its switches): a press none of its controls took chooses the row, and the chosen row is lifted off the ground it stands on.
ConversationClock
The local zone and “now”, read once per pass.
ConversationDay
The local calendar day an instant falls on.
ConversationEntryProps
One line of a conversation: who said it and when, what it says, and how far on its way it is.
ConversationLine
One line of a conversation, as the list draws it.
ConversationList
The message list: a conversation, drawn. See the module docs.
ConversationListProps
A conversation, drawn as every conversation is drawn: each line on its own side, runs of one person’s consecutive messages under their name once, a divider where the day changes, and the time and the delivery state under your own.
CropEditor
The crop editor of a picture once its bytes arrive, reporting the crop the person sets.
CropSelection
Normalized source-image crop edges. Values are always clamped to 0..=1 with at least 5% width and height.
CrossStripDetach
Payload published when a tab drag ends outside the row’s band; the shell hit-tests the release against other strips and delivers it or returns it to source. The source group is already detached.
DataTableCellProps
One cell of a row: what its column reads in this row.
DataTableColumnProps
One column of a table: what it is called, how wide it is, and how its cells read.
DataTableProps
A table of resources as columns and rows: the attributes of a device, the songs in a library, the rules of a firewall. Each row is the resource it stands for and says what its columns read in it; pressing a header sorts by that column, and selecting or activating a row reports the row’s resource.
DataTableRowProps
One row of a table: the resource it stands for, and the cells its columns read in it.
DateFeed
The app’s side of a DatePicker that stands outside the app’s own surface (a calendar’s month navigator in the shell’s sidebar): the app shows its day with Self::show and takes the days the person chose with Self::take_chosen. The app’s day stays the one truth; the picker reads the feed at every sync and update (DatePicker::fed_by).
DateField
See the module docs.
DateFieldProps
A day, shown as the person reads a day (with the time it is due at) and picked from a calendar that opens over it. A date that may be empty can be cleared, and the time it is due at is picked in the same popover, in the time slot.
DateIndexMarker
A durable chronological boundary supplied by the collection owner.
DateIndexPreview
Value used in hover, focus, and live announcements.
DateIndexedScrollbar
A modern chronological scrollbar face plus its ephemeral interaction state. It intentionally has no document binding: scroll position and density are per-user presentation preferences, not shared collection data.
DatePicker
DatePickerProps
A month’s calendar: the day chosen is ringed, today marked, and the arrows go between months. Days that hold something carry a dot.
DateShown
What the app shows in a DatePicker it feeds: the chosen day, the day it calls today and the days that hold something.
DayBreaks
Walks a conversation’s lines and says which of them start a new day.
DayDividerFace
The day divider: a caption centred in a band, ruled out to both sides.
DeclaredLine
A rich text line driven from a view: what it types edits the bound text, and the keys that leave the line reach the view’s events.
DeclaredModal
A modal driven from a view: its answers and its dismissal reach the view’s events.
DeclaredPanel
A floating panel whose body, header and footer may change by key.
DeclaredPopover
A popover whose content may change by key.
DeclaredPopoverButton
A popover button whose content may change by key.
DeclaredRail
A rail driven from a view: its pages select, move, copy, go and are added through the view’s events.
DeclaredTransport
A band driven from a view: what plays as the view declares it, and its controls reporting the view’s events.
DeclaredVideo
A video player driven from a view: its picture follows what the view declares, and its controls report the view’s events.
DeliveryFace
A delivery state as it is painted: a small glyph and its word, in one line.
DensityRegion
A region of a window laid out and drawn at another density (crate::tokens::Density): a data-heavy sidebar or list at compact while the rest of the window stays comfortable. Rows, rhythm and tables inside it take the region’s density; controls and text keep their size.
DescribedActivityTimeline
A described timeline: its timeline, and the change each key stands for.
DescribedCardGrid
A described card grid: its grid, and the keys of the cards it shows, in order.
DescribedConversationList
A described conversation: its list, and the lines it was made with.
DescribedList
The list a described VirtualList is: over its items, under the one context menu its rows share.
DescribedRows
The items of a described list: read from a host that renders them as they are shown, or given whole.
DescribedTable
A described table: its table, and the rows its events read.
DescribedTreeView
A described tree: its list, the rows it was built from, and what it keeps of them.
DeviceDisplayMoveReply
Admission result for a topology request, not acknowledgement of peer application.
DeviceScaleGuard
Restores the device scale in effect before enter_device_scale.
DiffLine
One line of a text diff.
DisclosureBand
Content a view builds only while it is open (a tile’s details under it, a row’s section), standing in a column as a band (crate::widget::Disclosing::Band).
DisclosureBandProps
Content a view shows only while something is open (a tile’s details under it, a row’s section), standing in a column. When the view starts showing it, it unrolls from its top while what follows moves down with its edge; when the view stops, it rolls up. Under reduced motion it lands at once.
DisclosureGroup
Rows that keep one open at a time. Clone it into every row of the group; a view that rebuilds its rows keeps the group and keys the rows (DisclosureRow::keyed).
DisclosureRow
A row that opens its body in place.
DisclosureRowProps
A row whose body opens in place under it: a device’s details, a run’s log, a setting’s options. Its chevron turns as it opens, and what follows moves down with it. A press on the row, Enter or Space opens and closes it.
DisclosureState
Whether a disclosure row is open, its reveal and its body’s open height: what outlives the row when the view that owns it rebuilds it. Clones share one state.
DistributionSeries
DistributionStyle
Divider
Docked
DockedProps built: a stack filling its column, the content taking the room the foot leaves.
DockedProps
Content that fills its column above a bar that stays at the column’s foot: a conversation above its composer. The bar stands in the column’s page, a section’s gap under the content and the page’s gutter at its sides and below.
DocumentPosition
A UTF-8 byte position in a block document.
DocumentSelection
Direction-preserving document selection. Self::ordered provides its normalized start/end pair for editing and serialization.
DocumentViewport
The composing viewport widget: wraps content (a child widget or a draw closure), owns the zoom/pan input, and paints scrollbars on top. See the module docs for when to prefer the standalone ViewportState kernel instead.
DraftBook
The drafts a person has, by conversation key.
DragController
A single-axis drag-to-reorder controller. Construct one per reorderable list (DragController::vertical / DragController::horizontal) and drive it from the owner’s event handler:
DragDrop
Where a dropped thing goes: the run that took it, what moved, and the place it lands at, counted from the leading edge among the run’s other items.
DragItemProps
One item of a run: what it stands for, and the view drawn in its slot.
DragRun
See the module docs.
DragRunProps
A run of items — a dock’s icons, a toolbar’s tiles, a row of cards — reordered by dragging one. Each item is one ui.DragItem.
Drawing
Shapes drawn with the design system over a box of their own.
DrawingProps
Shapes drawn with the design system over a box of their own: a ring, a gauge, a small chart, a diagram. Colours are theme roles and widths tokens; a press reports which shape.
DropZone
A retained drop zone. See the module docs.
DropZoneFace
Immediate-mode drop zone.
DropZoneProps
Where files go: drag them here, or press the button to choose them (an import, a picture to swap, a file to open). At rest it is a dashed edge around a glyph and a title; while a drag hovers it takes your colour.
Dropdown
DropdownFace
An immediate-mode dropdown: the closed Dropdown look for a painted host (a camera’s controls, a reader’s settings) that owns its own hit-testing. Pair it with an option crate::widget::Popover (Popover::new().with_items(..), opened with open_at(face.field_rect(theme), Some(selected))) for the list.
DropdownProps
One of a short list, chosen from a field that opens the list: a project, a sort order, a unit. The chosen one shows in the field; the list filters as it is typed into.
DuplicateListKey
EdgeAim
Reaching for something that waits at a display’s edge (a desk widget’s quiet form): the same transit-versus-aim reading as HoverIntent, for targets that are not under the pointer yet.
EdgeGeometry
Where the bar is, as laid out now.
EdgeGrab
A window edge a pointer can grab: the strip’s group-th window, and which of its edges.
EditableLabel
EditableLabelProps
A name that is typed over where it stands: a document’s title, a tab’s name, a list item’s. Reading, it is text; pressed, it is a field whose Enter or click away commits the edit and whose Escape keeps the name it had.
Edits
The document as a host lends it to one pass that may change it: read freely, changed only through a typed action the action host applies (a resource’s dispatcher applies it), so every change is an action that is attributed, recorded in history and undone like any other. Direct CRDT mutation is rejected at the widget boundary:
Effective
A resolved property and its authoring origin, available after layout build.
Embedded
A widget laid out and driven by the widget that owns it.
EmojiBarProps
A row of emoji to react with, at the top of a menu: the ones the person uses most, then a button that opens the emoji picker for any other.
EmojiPicker
The shared emoji picker. See the module docs.
EmojiPickerButton
See EmojiPickerProps.
EmojiPickerProps
A button that opens the emoji picker beside it; the emoji picked is reported (on pick(e)).
EmojiQuery
The :shortcode the caret sits in.
EmptyState
A centered empty-state placeholder: hero icon + title + message + action.
EmptyStateContent
What an empty state shows: optional icon or illustration, title, optional message and optional action label.
EmptyStateLayout
Where everything in an empty state goes inside a rect: what EmptyState::paint draws, and what EmptyState::layout hands back without painting.
EmptyStateProps
What a place says while it holds nothing: one sentence, and at most one action that starts filling it.
EntryFace
One change as the app presents it.
EnumField
The chip of an enum’s cases, opening them to pick another.
EnumFieldProps
A value among an enum’s cases: the case it holds, as a chip in the case’s glyph and tone, opening the cases to pick another.
EnumOptionProps
One case an EnumField offers: its name, what it reads as, and how it reads.
EventCtx
Host services associated with one retained widget event dispatch.
FaceMotions
The motions of a host’s painted switches and checkboxes, by key. Read while painting, through a shared reference.
Fact
One fact: an optional icon from the icon set and its text.
FactProps
One fact of a row of facts: its text, and a glyph before it.
Facts
A retained FactsFace.
FactsFace
A row of facts, borrowed.
FactsProps
Separate facts in one row, each an optional glyph and its text, with space between them and no separator glyph: “12 files”, “3 MB”, “Edited today” are three facts. Where the row is too narrow, the facts that matter least give way first.
Field
One visible label and what it labels: a standard control (which takes the label as its accessible name, so it is read once), a custom element, or nothing for a control row. Help copy reads under the label while the label stands beside the control, and under the control once stacked; validation copy always stays with the control.
FieldFace
An immediate-mode text field: the TextInput look for a painted host (a formula bar, a cell editor) that shapes and edits its own text.
FieldLayout
The label policy and measured reason for its current arrangement.
FieldSpec
One field a SecretKind::Fields prompt asks for.
FileOpenSurface
Window-wide file drops and the “open a file” empty state. See the module docs.
FilePicker
FilePickerEntry
FilterCount
How many rows a filtered view shows out of how many it has.
FilterMenu
Filtered
Content with a filter: a SearchField::filter in a band above the content, narrowing the first Filterable inside it. Ctrl+F (⌘F) focuses the field. A navigation shell’s filter slot is the same field wired with sync_filter.
FindAbilities
What a document’s find offers beyond matching text under Match case and Whole word: replacing matches, a regular expression, a byte view’s hex digits. The find’s options offer just these.
FindBar
The find bar: a query field with a match counter, option chips, previous/next and close, and an optional replace row.
FindMatch
One match, as a span of the findable’s own content (a byte range of its text, or of its bytes in hex mode). The findable interprets it.
FindOptions
The options a find runs under: the bar’s chips, the window search’s options.
FindScope
Content with find: a FindBar that Ctrl+F (⌘F) opens as a band at the top of the content, driving the first Findable inside it.
FindSession
What a find over one Findable has found: how many matches, which is current, and the query and content they were found for. The FindBar keeps one, and so does the window bar’s search (crate::widget::WindowSearch): one engine, whatever draws the field.
Fitted
A view with the fit its node asked for, for a described component’s slot: a host wraps the view in it, and the component holds it at that fit.
FlapState
The reveal shared by every flap. See the module docs.
FloatingList
A floating list of rows under (or, without room, above) an anchor: the one menu list behind crate::widget::Autocomplete, a code editor’s caret completion, the filter and slash menus, a dropdown’s open list and every context menu.
FloatingMetrics
The geometry of a floating list in one theme.
FloatingPanel
A retained floating panel: a header slot, a body and a footer slot.
FloatingPanelFace
A floating panel’s shape: how tall its header and footer are and whether its body holds anything.
FloatingPanelLayout
Where a floating panel’s parts stand, from FloatingPanelFace::layout.
FloatingPanelProps
A floating panel a view places itself: a header slot, a body and a footer slot, on the floating material.
FloatingWindow
Form
Intrinsic ordered sections with a trailing standard action region.
FormLayout
Resolved form defaults; local section/field overrides remain independent.
FormPage
A form under its title, on a page: the title in LargeTitle (or none, FormPage::untitled) with an optional header action, an optional description, then the form, on the readable column aligned to the leading edge, scrolling vertically, with optional pinned actions. with_max_content_width(None) resets only the readable-width override.
FormSection
A meaningful group. Fields align together; content retains an arbitrary standard/manual region at the section edge and in declaration order.
FunctionPlane
A function plot’s viewport: center is the world point under the canvas centre and scale the pixels per world unit (y up in world space).
FunnelStyle
GaugeReading
What an immediate-mode gauge paints: how full it is, in which colour, and the text around it. Either string may be empty.
GaugeStyle
Paint options of a BarGauge.
GaugeThresholds
Fraction thresholds (inclusive lower bounds) at which a gauge switches from success → warning → danger. The default mirrors the dashboard convention: >= 0.85 danger, >= 0.6 warning, else success.
GraphCanvas
Domain-free canvas. Supplied controls retain their framework action bindings. The canvas paints only connections; applications own typed graph resources.
GraphCanvasConnection
Semantic widget IDs of the two retained port controls.
GraphCanvasNode
One domain-owned node’s placement and ordinary retained content.
GroupRow
GroupTopology
One window group as a live strip widget reports it: identities, order, the active tab and width, but no tile content.
HeaderRow
One column’s header row as the shell laid it out: what its title says against what the row gave it, and what its actions kept of their labels and their place in the row.
HeaderRows
The header rows one shell laid out, one per column it shows.
HeaderStatus
The window’s sync status in a header row: quiet text, right-aligned against the row’s trailing controls, announced politely when it changes. A header row keeps one, paints it into the room its own layout leaves (Self::paint) and lists it among its children for assistive technology.
HeatmapCell
HeatmapStyle
HintPlaces
Where a row’s controls are for control hints, in the row’s coordinates.
Histogram
Fluent builder that bins raw samples and returns a normal CartesianPlot, retaining all of its axis, tooltip and activation APIs.
HistoryAttribution
An author that acted for someone: an agent’s change is the agent’s, on behalf of its person, in every history (an app’s, the Files history, and what the history actions return).
HistoryAuthor
Not crypto material — just enough metadata to render a per-author colour dot, display name, and a short identity hash for disambiguation when two authors share a name.
HistoryEntry
HistoryEntryId
One entry of a history as people read it. Opaque: only ever compared for equality (revert/restore callbacks pass it back to the caller). The caller picks the byte layout — UUID-v4 today, a content hash later.
HistoryFilter
Empty fields are “match everything” so a freshly-constructed filter behaves like no filter at all. The chrome owns the filter (not the widget) so the host can persist it across remounts, e.g. a workspace switch, without poking at widget internals.
HistoryOpener
The window’s History control in a painted header row: what the host offered, the pointer’s hover over it, and a press waiting to go through the History door. Modelled on crate::search::SearchOpener: return Self::take from ActionControls::take_control_invocation.
HostShellAllow
The person’s answer to AppHostIntent::AllowHostShell: None until they choose, then whether the device’s own shell was allowed.
HoverToolbar
A row with controls shown over its trailing top corner while it is hovered or holds focus.
HoverToolbarProps
Controls shown over the trailing edge of the view they stand in while it is hovered or holds focus: quick reactions, Reply. Tab reaches them from the view.
IconButton
The square icon button. Each constructor requires the accessible name, which is also the tooltip; there is no way to make an unnamed one.
IconProps
One glyph from the icon set, in the theme’s ink: a kind of thing beside its name, a status mark. It says nothing to assistive technology, so the words beside it carry the meaning.
IconWidget
Themed glyph widget — see module docs.
Image
General-purpose image widget. See module docs for the contract.
ImageCropEditor
ImageCropEditorProps
A picture with a crop its four corners set (a scanned page, a photo to trim): drag a corner to move it, or an edge’s arrow keys, and it reports the crop each time it changes. The picture is letterboxed in its box; the crop is a share of the picture, never of the box.
ImageProps
A picture: artwork, a photo, a cover. Its bytes are read from its address as it arrives; a picture that is not here yet keeps its place, and one whose bytes cannot be read shows the error mark, never nothing.
ImageViewer
Interactive viewer for a pre-decoded peniko::ImageData. See module docs for the contract.
ImageViewerProps
A picture to look at closely: scroll to zoom at the pointer, drag to pan, and a reset to the whole picture. It fills its box; the picture is letterboxed inside it.
InFlight
What a drag in flight is.
InputDeviceGlyph
Shared vector controller/Joy-Con silhouette used in device pickers and shortcut help. It intentionally uses theme strokes instead of bundled vendor artwork, so it stays crisp at every scale and in high contrast.
InputHint
InputHintProps
The keys of a shortcut as drawn keycaps, in the person’s own keyboard legends (“Strg” on a German keyboard, the Command key on a Mac), beside the command it runs. Never a typed string.
InspectorFrame
Where the inspector stands this frame, in the window’s coordinates: the one frame a retained inspector is laid out in and a painted one draws its body into, docked beside the content or, in a window too narrow to dock it, as the sheet up from the window’s foot (NavShell::inspector_frame, InspectorLink::frame).
InspectorLink
A handle on the shell’s inspector for an app painting inside it, as super::WindowBarLink is for the bar’s slots: what NavShell::inspector_frame last laid out, and requests the shell runs at its next sync or update.
Interaction
Hover, press and focus of one pressable surface. Faces take this so an immediate-mode caller and the retained widget paint the same states.
KeyHint
One hint: the keys of a chord, as printed on the keyboard, and what pressing them does.
KeyHintProps
One hint of a strip: the keys of a chord and what pressing them does.
KeyHints
A retained strip of key hints: a chord’s drawn keycaps on a row’s trailing edge (a shortcut that cannot be changed), or several chords side by side, a sibling gap apart. Never a joined string.
KeyHintsFace
A strip of key hints, borrowed.
KeyHintsProps
Shortcuts and what they do, side by side: each hint the drawn keycaps of a chord and its label (“Enter Save”, “Esc Cancel”), in the person’s own keyboard legends. Never a sentence with a separator glyph.
KeyboardMap
Theme-aware map of an explicitly selected physical model. It observes only ordinary focused window events, never global devices or document edits.
KeyboardMapInput
Private, process-local physical press state shared across page recomposition. It contains no entered text or logical input history and never edits a document.
KeyboardMapKey
A key’s physical outline and ordered XKB levels, in model coordinates.
KeyboardMapSelection
Action-bound inspection over the shared physical map. Keyboard presses never select an inspector or publish entered text.
Landed
A drag that was let go outside its own run, waiting for the run it landed in to take it.
LegendConventions
The platform and device families that decide how a binding is labelled: ⌘ vs Ctrl, A vs ✕.
LineSpans
One logical line’s highlight result: ordered, non-overlapping Spans (gaps render in the default text colour) plus the HlState the next line begins with.
Link
LinkProps
A hyperlink: primary ink with an underline, opening what it names when pressed, activated by Enter or Space, or from assistive technology. A link that names a resource opens it; one whose view gives it an activate acts.
LinkStatus
The machine’s link, as a surface draws it: what it is, what it is called, and how strong its signal is.
ListCache
A list’s layout, kept from one frame to the next.
ListFace
The list’s painting and measuring, without the widget around it.
ListItemProps
One item of a virtual list: the resource its row shows, the row, and what the row offers on the item.
ListMetrics
Uniform geometry of a reorderable list along the drag axis, in the same (logical, scroll-adjusted) coordinate space as the cursor.
ListRow
A retained list row. Construct with a stable id and a title; press activates it (pointer, Enter/Space, or assistive technology).
ListRowFace
Immediate-mode list row. Build one per row per frame, measure it for its height, then paint it into the rect you laid out: the row’s outer rect, the list’s content edge grown by row_bleed on both sides.
ListRowProps
A row of a list: what an item is, in one line, with the start of its content under it and a quiet fact on its trailing edge. Pressing it activates it: a list opens what it shows.
ListWork
What a list’s layout did, counted.
LiveCapture
The live windows a capture repaints whole, outside the output clip.
Manual
A manual region whose children keep their standard rendering and interaction. The policy measures children, places every child, and returns its desired size. It can run repeatedly before painting and must not change child topology. Rectangles are relative to this region, represented by Taffy’s logical f32.
ManualConflict
An unsatisfied manual constraint, e.g. smaller than a child’s border/padding.
ManualContext
Safe child-indexed measurement/placement services supplied by the host. Measurements solve current retained topology; they never apply geometry or rebuild widgets. Actual placement participates in the normal host settlement.
ManualInvalidation
Explicit invalidation for inputs captured by a retained Manual policy. After changing an input, call Self::invalidate and schedule a normal host layout frame. This handle does not schedule a window redraw itself.
ManualLayout
Actual region allocation, requested child extent, and overflowing content.
Map
See the module docs.
MapCamera
The camera: which canvas point stands at the viewport’s top-leading corner, and how many screen pixels a canvas pixel takes.
MapPinProps
One pin of a map, as an instance gives it: its key, its place and the view it shows.
MapProps
Places at points on a pannable, zoomable surface, each a view of its own.
MarkSpan
A byte range + a single Mark. Multiple MarkSpans with the same kind never overlap (the toggle helpers merge them); different kinds may share a range.
MarkupExport
MarkupStroke
MediaCard
A retained media card. See the module docs.
MediaCardFace
Immediate-mode media card.
MediaCardProps
One card of a grid: the art (a cover, a thumbnail, a photo) with its title and up to two meta lines under it. A press opens what it stands for.
MediaGrid
A responsive grid of MediaCards. See the module docs.
MediaGridProps
Cards in a grid: a library, an album’s covers, a shelf of books, a set of channels. The cards reflow into as many columns as fit, every row’s text as tall as its tallest so titles line up; justified, they make rows of photos that span the width at each picture’s own shape.
MediaTransport
The media transport: see the module docs.
MediaTransportProps
What is playing and the controls that steer it, as one band: the art and the song, like and lyrics, shuffle, previous, play/pause, next and repeat over the scrubber, the queue and the volume. It stands across the window’s foot, under every column.
MentionCandidate
Someone a field can mention: a participant of the workspace.
MentionQuery
The @-run the caret sits in.
MenuButton
A button that opens a menu anchored to its own rect (crate::widget::Button::with_menu): a header’s More button, a toolbar’s sort menu. The menu opens under the button, lines up with whichever of its edges keeps it in the window, and flips above near the bottom; Enter, Space or a click opens it, and the button reads as expanded while it is open.
MenuButtonProps
A button that opens a menu of commands under it: a header’s More button, a sort menu.
MenuEntry
One row of a context menu: what it shows, and what choosing it does.
MenuItemProps
One command of a menu: what it shows, and what choosing it does.
MenuSeparatorProps
A rule between groups of a menu’s commands.
ModalAction
One button in the footer.
ModalDialog
A modal dialog: a title, any content widget, and up to three footer actions, over a scrim that covers the window. Generic over the content type so callers pass any Widget without boxing.
ModalLayout
Where every part of the modal landed. Pure geometry, computed without a GPU, so the layout rules are tested directly.
ModalProps
A question over the window: a dimmed page, a sheet with a title, the view’s content, and up to three answers. Escape or a click on the scrim closes it; Enter fires the main answer, except in a destructive question, where Enter is the safe one.
ModalSheet
The immediate-mode sheet for a painted host that keeps its own state (a question with three answers, a confirmation over a canvas): it lays the sheet out, paints it with hover, press and keyboard focus on its actions, keeps that layout for hit-testing and turns input into a SheetResponse; the host paints only its body.
ModalSpec
What a modal is being asked to frame.
ModelView
A retained subtree selected by a value projected from application state.
NamedOnce
The sources a pending region already named: each source is named once per region (a list’s first row from it), not on every row.
NativeView
Retained widget adapter around a NativeViewBackend.
NativeViewGeometry
Parent-relative geometry in both toolkit-logical and native physical pixels. Backends should use physical_* for child-window APIs.
NativeViewHost
Live parent-window context supplied before a native view is shown.
NativeViewInput
Event coordinates and modifiers already normalized by the toolkit host.
NavAction
A command offered on a row or a section header: an icon, and the name it is announced and tooltipped by.
NavArt
A picture in a row’s icon place (NavItem::art).
NavFeed
The app’s side of a NavList that stands in a shell around it: the app shows its places and the chosen one with Self::show, and takes what the person chose with Self::take_chosen and the section actions they ran (“New playlist”) with Self::take_section_actions, the rows they checked with Self::take_checks and what they folded with Self::take_expands, the menus they asked for with Self::take_menus and the names they gave with Self::take_renames. The list reads the feed at every sync and update (NavList::fed_by).
NavGeometry
The shell’s geometry for one size, in coordinates local to the shell.
NavItem
One destination. Every part but the label is optional.
NavItemProps
One place in a navigation list.
NavItemStatus
A row’s status dot, as NavItem::status keeps it.
NavList
The navigation list. See the module docs.
NavListProps
The places of an app, in its sidebar: choosing one shows it. Selection follows the person’s choice and is reported, never kept by the app beside it.
NavPerson
The person a row stands for (NavItem::person).
NavSearchTerm
Something a NavItem is also found by: a thing it holds, by its name and the other words for it, or words for the destination itself.
NavSection
A group of destinations under a sentence-case title.
NavSectionProps
A group of places under a heading in a navigation list: a category of channels, a folder of notebooks. A collapsible one folds away under its heading.
NavShell
The one window shell. See the module docs.
NavShellProps
The one window shell: a sidebar of places, an overview list, the content and an inspector, side by side while they fit and one at a time, with Back, when they do not. The header of each column holds its title, its count and its actions.
NotificationListLayout
Where a painted notification list put its parts.
NotificationListView
What the list paints and hit-tests: its rows, its paging, its empty state and the host’s cursor.
NotificationRowControls
A row’s trailing controls, where they stand.
NumberInput
NumberInputProps
A number with a step either side: a page size, a margin, a count. Typing in it, its steppers and the arrow keys all set the value, within its range.
NumberStepperFace
Immediate-mode number stepper: − value +, the face of a NumberInput. Inline (the default) it is the toolbar stepper of NumberInput::compact, bare steppers either side of the value; Self::framed gives the secondary steppers of the framed control, whose value the host’s field draws.
ObjectHeader
The head of a detail view: an avatar or an icon, the object’s name in Title and one Caption line under it, rhythm.tight apart, on the content edge (“Ada Lovelace / [email protected]”, a password’s site).
ObjectHeaderProps
The head of a detail view: an avatar or a glyph, the thing’s name as a title and one caption line under it, “Ada Lovelace” over “[email protected]”, a password’s site over its address.
OutputSpan
One display’s horizontal extent in the compositor’s combined space, plus the width groups on it size themselves against.
OverflowDoor
The trailing “More actions” door: a button holding the menu of what did not fit.
OverlayScrollbar
A vertical overlay scroll bar. The host keeps its own offset and gives the bar the area it scrolls (Self::track) and its ScrollMetrics each time; the bar keeps the drag, the hover and the idle fade, and the theme’s sizes and motion policy as last given (Self::set_theme).
OwnFind
A find a view ran on its own rather than through the window’s search: an action went to a match of query (an agent’s “go to result”). The window’s search shows it: its field holds the query, and it steps on from match current.
Pacer
Steps its step once a beat while running is true.
Page
A page of sections: optional head items (a summary, a filter), then sections spaced rhythm.group apart, on a readable column aligned to the leading edge of the column it fills, scrolling vertically. It has no title of its own: the shell’s header titles the page. Actions that must stay reachable while it scrolls are pinned under it with Page::with_pinned_actions.
PageEntry
PageLayout
Page width excludes its single pair of outer gutters.
PagePreview
PagePreviewProps
A page’s shape in a print queue, a scan or a document picker: a sheet of paper with the lines a page holds, and “Page n of m” under it. It shows the shape and the progress, never the content, which it does not have.
PageSidebar
PageSidebarProps
A rail down a document’s side: one numbered thumbnail per page, the page open lifted, and, unless read-only, pages that can be dragged to reorder, copied, moved and added.
PageSlide
One page of a stack, drawn in place, with the page it replaced leaving.
PageSlideProps
One page of a stack, in the place a view shows it, with the page it replaced leaving while the view swaps the two: a panel that opens a deeper page of its own, and Back that slides it away again.
PaintedTargets
The pressable targets of a widget that paints its own content (a calculator’s keys, a map’s markers, a timeline’s clips): the same hover, press, focus and activation the retained controls have, for rects the host lays out itself.
Pan
Horizontal pan of one run of groups (the whole row, or one lane): canvas-x is the unscrolled coordinate, scroll_x how far it is panned past the viewport’s edge.
ParticipantPresence
One remote participant’s live presence (caret/selection), published by a multi-participant widget under that participant’s identity. Same key and payload shape as the local window’s own presence (Writer: wp_block key, byte offsets into the caret block).
PenSample
What a stylus reported with one pointer event.
PermissionPrompt
Inline permission prompt widget.
PersonField
See the module docs.
PersonFieldProps
A form’s person: who is doing it, shown as their avatar and name, and picked from the workspace’s members and agents. “Me” picks the person the view is shown to, “No one” clears it.
PictureChoice
PictureChoiceProps
A choice among pictures whose meaning is visual: a text size, a pointer size, a colour filter. Each tile shows its picture over its name, and the chosen tile carries the selection edge.
PictureOption
One option of a PictureChoice: its picture and its name.
PictureOptionProps
One tile of a PictureChoice: its picture and its name.
PictureSource
A picture as a component takes one, by where its bytes are.
PieSlice
A stable, labelled radial datum. Negative and non-finite values are treated as zero. id survives sorting and updates and is returned on activation.
PieStyle
Visual configuration shared by pies and donuts.
PinPlace
A pin’s place, in canvas pixels.
Placement
Where a band stands in its container, as the container a rebuild makes in its place can recognise it: the container (its kind, its width and the kinds of the other widgets in it, in order), how many of those come before the band, and the space the container keeps above it.
Plot
The one chart widget; see the module docs.
PlotAxis
Axis configuration. Explicit ticks are useful for dates and categories; when empty, the plot produces tick_count compact numeric labels.
PlotDatum
PlotFrame
Where a chart kind’s marks sit and what is inspected: the shell lays the frame out and drives its inspection; the marks read both.
PlotItem
One accessible, activatable mark: a point, bar, slice, node or link.
PlotSeries
PolarAreaStyle
Popover
An anchored floating Panel holding an option menu or any content widget. See the module docs for the contract.
PopoverButton
A button that opens a popover anchored to its own rect (crate::widget::Button::with_popover): a filter’s options, a share sheet’s details. A click, Enter or Space opens it and closes it again; the button reads as expanded while it is open.
PopoverPrompt
The body of a prompt popover (Popover::prompt): a caption, one field and a hint under it. Enter submits what was typed; Escape closes the popover without it.
PopoverProps
A menu or a small form beside its control: the one anchored floating panel. The view’s content is inside it.
PresenceFaceProps
One face on a tab: who is at the tab’s resource now.
Press
What pressing a part does: run the action the view bound to it, or report the event to the view.
Previews
Where the previews of a tree on this thread report, shared with the host that hands the compositor each window’s live picture there: the same handle, so a preview that moves moves its picture.
PrimaryScrollRegion
The application’s explicit primary region. Owners stamp component identity.
ProgramStepView
One program step of an agent’s task, with the host’s answer to what the person does with it. Build it with ProgramStepView::new and turn it into a widget with ProgramStepView::into_widget.
ProgressBar
ProgressBarFace
Immediate-mode progress bar, for a host that paints into a Scene.
ProgressBarProps
How far something is: a transfer, an import, a sync. Without a value it is under way with no known end, a segment sliding across the track. A measured level (a disk, a quota) turns warning and then danger as it fills.
ProgressRing
A retained progress ring. See ProgressRingFace.
ProgressRingFace
Immediate-mode progress ring: a countdown or progress with an optional centred readout.
ProgressRingProps
How full something is, as a ring: a countdown, a download, the one hero reading of a screen (a speed test). A regular or large ring holds its readout and what it measures.
ProjectedDateMarker
A projected marker with its pixel position along the current track.
PromptBody
Renders caption → label → field, where caption and label are optional.
Property
One property of a retained PropertyList.
PropertyColumn
A label column shared by several property lists, so their values line up (the lists of one Section share one on their own). Clone the handle into each list with PropertyList::shared_column.
PropertyList
A retained property list. See the module docs.
PropertyListFace
Immediate-mode property list. paint takes the list’s outer rect: the content edge grown by row_bleed.
PropertyListProps
Facts about one thing, a label beside each value: a contact’s details, a file’s.
PropertyProps
One fact of a property list: what it is, and its value.
PropertyRow
One label and its value, as the face paints it.
PropertyValue
A read-only value as a control: the value a Field shows where it cannot be edited (an account id, a generated key), in primary ink with its kind’s text treatment and an optional trailing copy action. Unbreakable kinds are elided before the action.
ProposalTarget
Where an accepted proposal writes: the field of the record R the answer belongs to, and the characters of it the answer replaces.
QrProps
A QR code of a payload, for a phone’s camera to read: a pairing handshake, an invite.
QrWidget
Holds the source bytes plus the cached encoded matrix. Re-encodes when the payload changes via set_payload — the pairing-channel screen calls it every few seconds as the broker rotates the nonce.
QueryView
An app’s view, and how it answers what is typed in the window bar’s search.
QuickTile
A Quick Settings tile: a control’s glyph, name and state line, on while its control is, with a chevron half when the control has a section.
Quote
See QuoteProps.
QuoteProps
A message quoted where another answers it, or in the reply banner over the composer: a rule at its leading edge, who wrote it and the start of what it says. With dismiss it has a close button (the banner: “stop replying”).
RadarAxis
RadarLegendStyle
RadarSeries
RadarStyle
RangeBar
One interval. Equal start/end values render as milestones.
RangeStyle
ReactionStrip
One strip’s pills and how they move: what a host keeps per strip it paints (a message’s reactions), so a reaction arriving appears and a count changing cross-fades.
ReactionStripWidget
The reactions to one thing, as a widget: pills that toggle your own reaction, and an add button that asks for another emoji.
ReactionToggle
A person reacting with an emoji (react), or taking their reaction back: what a pill or a pick in the picker asks for.
ReactionsProps
The reactions on something: a pill per emoji with how many reacted, yours drawn on; pressing one adds or takes back your reaction, and the add button opens the emoji picker for another. Each reports the emoji (on toggle(e)).
RedactionDisplay
Optional on HistoryEntry — when present, the widget renders the row with the struck-through summary, suppresses the [Revert] chip, and exposes the redactor + reason on hover.
RegionAnchor
A selection made inside a window, in that window’s own coordinates: it goes with the window wherever the window moves or scrolls to.
RelativeTime
TimeProps’ widget: a Text that reads its moment against the wall clock.
Remount
The retained layout tree a Widget::remount_children changes, and what the change mounted and unmounted, for the host to admit.
ResizableSplit
ResizeHandle
The GroupRow constructs one per inter-group gap (N-1 handles for N groups) and refreshes the handle’s (left, right) rect snapshot each layout pass.
RichInput
See the module docs.
RichInputProps
A field to type rich text into, bound to the rich text it edits: each reference a completion picks is written as a reference, which every reader sees as their own inline view of what it names.
RichTextLine
RichTextLineProps
One line of text, edited in place: a block editor’s cell, a composer’s message. It carries its text and its inline marks, and reports the keys that would carry the edit out of the line itself (Enter, Shift+Enter, Backspace at the start), so a host composing several lines can split or join them.
RingReading
What a state-bound ring shows (ProgressRing::from_state).
RollingSeries
A fixed-capacity rolling window of samples — the store behind a live, streaming chart or sparkline. Once full, every push drops the oldest sample, so as_slice always reads oldest → newest and can be handed straight to Series or Sparkline::paint.
RouteHandle
A cloneable controller for one router’s process-local route stack.
RouteSnapshot
Process-local route history, exported so a dev reload can put the same screen back. Unknown names are rejected by RouteHandle::adopt_stack.
Router
A retained single-screen host driven by an explicit RouteHandle.
Row
RowAction
One of a row’s hover actions: an icon button that names what it does.
RowBuild
What a list tells its row delegate about the row it builds, besides the model and the row’s place in it: the row’s selection, and whether it stands open into its item.
RowFade
How a landed row fades in: the placeholder step it replaced at its outgoing opacity, and its content’s opacity.
RowLayout
The grid a list row lays its content out on, as the row paints it: where its title starts and ends, where the facts column stands and how wide the room for it is, and whether the title was cut short.
RowMenu
A row’s More button and the menu of its secondary actions.
RowSelection
A row’s selection with its neighbours’, for a delegate that paints its own selection: a run of selected rows is one lift (crate::chrome::RowJoin), with no rule between rows.
RowShape
The geometry of a kind of list row. See the module docs.
RowState
How a row is painted: where it stands, whether it is armed, and what its list’s rows share.
RunItem
One item of a run.
SankeyStyle
SavedCopy
A saved copy of an attachment, where the app put it.
ScreenshotKept
What became of a screenshot: kept as a file in Screenshots, put on the clipboard, or both (what the shutter and Print Screen do).
ScreenshotMarkup
A modal editor, intentionally implemented in ui rather than shell so an image app can host the identical canvas and controls.
ScreenshotSendDevice
One of your online devices, as the shell offers it to “Send…”.
ScrollLayout
A scroll view’s axis, so a layout audit tells content that scrolls by design from content that overflows.
ScrollMetrics
The scroll geometry along one axis, all lengths in logical px.
ScrollProps
A body that scrolls under its column’s fixed header: its content as tall as it is, the part of it the column has room for shown.
ScrollRegion
See the module docs.
Scrollable
Scrollbar
A single-axis scrollbar interaction model.
Scrub
A seek bar held by the pointer or a finger, for a surface that paints its own controls and routes its own input (the shell’s cards). The host hands in the face it paints, so the press, the drag and the paint read one geometry.
SearchDriver
The find engine behind a window’s search, run where the app’s widgets are: by the window for an app in its process, by the app’s own runtime for an app in a process of its own. It finds or narrows when the query changed, follows the content when it changed under the search, steps, and stops when the search closed.
SearchField
A search-styled input: magnifier + editable text + count slot + clear.
SearchHandoff
A search the window hands to the platform search: the tab it came from, how far it reaches and what was typed.
SearchResultsView
The results overlay. Populate it with set_groups each time the query changes, drive selection with the keyboard or pointer, and drain activations with take_activated.
SecretAnswer
What the person typed, handed out once on submit. Every secret is in a buffer that zeroes itself when dropped; Debug shows none of them.
SecretPrompt
The password prompt. See the module documentation.
Section
An intrinsic-height group of content with an optional header. See the module docs.
SectionHeader
A section’s header row.
SectionHeaderFace
An immediate-mode section header for a painted host, with the retained SectionHeader’s geometry: the title on the content edge, the count after it, the action’s label on the trailing edge, one fixed height.
SectionLayout
Effective values within one section.
SectionProps
A group of related content under an optional title: rows of a list, fields, a figure. A collapsible section opens and closes under its title.
Segment
One choice of a ToggleGroup or a SegmentedFace.
SegmentProps
One choice of a ToggleGroup or a ViewTabs: what it says, and how it shows.
SegmentedFace
An immediate-mode segmented strip over caller-owned segment rects (the rects must be contiguous, except a multi-select strip’s). The caller owns the hit-test; this paints the themed look over them. Size the strip with SegmentedFace::height and SegmentedFace::intrinsic_width, and split it with SegmentedFace::partition_segments.
SegmentedTouch
The retained control and painted strips share one touch recognizer. Only a completed single-finger gesture chooses; cancellation, a second finger, a removed strip or an externally changed selection refuses it.
SegmentedTouchGroup
One painted segmented strip, identified independently of its position. Keep id stable while the strip remains mounted.
SelectionHandles
The frame around a selection, in content coordinates: bounds turned by angle about its centre.
SendToBox
The box beside a context menu.
Series
One labelled data series. data is sampled left-to-right across the plot; color is the line/area tint; legend is the label shown in the chart’s legend strip (empty string = omit from the legend).
SharedBy
Whose a window is that someone else shared with the workspace, as the bar of the window it opens here says while the window is in front: their name, “Ana’s window”, with their face.
SharedWith
Who can see a window its person shared with a workspace where each person lays out their own windows: the workspace, by name, and the people in it now, as the window’s bar says while the window is in front.
SheetFrame
What the sheet stands in: area reaches from the highest the sheet may rise to the window’s foot; peek is how much of what it holds shows while it peeks; grip is the grip’s height; least_half is the least a half-height sheet must hold (the panel’s width where it docks): in a window too short for that, half height is the whole height, so what it holds keeps the room it needs.
SheetGeometry
Where a sheet stands this frame.
ShortcutRecorder
ShortcutRecorderProps
A keyboard shortcut as keycaps that are the control: press them and type the new chord. A reset appears while the chord differs from its default.
ShownChange
The change a retained row shows, as ListRow::shown_change reads it: who made it, what they are called, what they did (the sentence under the title), and what assistive technology hears of it.
SidebarDrawer
A collapsible sidebar or inspector for a painted app. See the module docs.
SignalMeter
The retained meter: one icon square in a row, named by its level.
SignalMeterFace
The meter painted into a rect: four bars standing on its bottom edge, centred in the largest square the rect holds.
SignalMeterProps
How strong a radio signal is (a Wi-Fi network, a mobile network), as four bars of rising height, one icon square in size. It names itself by its level: “Strong signal”.
Skeleton
A retained skeleton. See the module docs.
SkeletonFace
Immediate-mode skeleton.
SkeletonProps
The shape of content still on its way, drawn where it will stand and at its size, so nothing moves when it arrives. It never shimmers, and it says “Loading” to assistive technology.
SkippedFrames
The frames a host skipped because their layout failed, and when it last said so. Every host (native, headless, the browser) skips such a frame and keeps showing the last one, so input still lands and the next frame lays out again. A layout that keeps failing would fail on every frame, so the first failure is reported in full and later ones at most once a minute, with how many frames were skipped since.
SlashRequest
A slash command the editor’s host carries out (BlockEditor::take_slash_request): which, on which block, and the block’s text once its /query is gone.
Slider
SliderFace
An immediate-mode slider face: everything Slider::paint needs to draw one, with no widget instance and no CRDT binding.
SliderProps
A value along a track: a level, a volume, a share. Dragging the knob or pressing the track sets it, and the arrow keys step it; Shift drags finely. It reads its own value when said.
SliderTouch
One finger on a slider, read as the pointer held down: the value jumps to where the finger lands, follows it while it moves (on or off the track) and settles where it lifts. Every Tilo slider reads touch through this, the Slider widget and the shell’s own drawn sliders alike, so a finger works wherever a mouse does.
Slot
A place in the tree whose content the app replaces in place: transparent to layout, input, paint and semantics.
SlotHandle
What the app holds to replace a Slot’s content.
Song
The song a player surface shows.
SongFace
A song on screen, cross-fading to the next: see the module docs.
Spacer
Span
A coloured run within one logical line: a byte range (into that line) and its TokenKind.
Sparkline
Compact, chromeless trend line — no axis, grid, title or legend. Just the area fill + line, sized to fill its rect. Drop one into a table cell or a stat card to show a recent trend.
Spinner
SpinnerProps
Something under way whose length is not known: four dots turning. It holds still under reduced motion. Where the share done is known, a progress bar or ring says how far it is.
SplitHandle
The divider between two panes: hit-testing, hover, dragging, keyboard steps, painting and its accessible separator node. ResizableSplit keeps one; a host that paints its panes itself (a query editor over its results, a source beside its preview) keeps one too, sets its rect each layout and lays its panes out in SplitHandle::pane_rects.
SplitRatio
The share of a two-pane split the first pane takes, clamped to bounds so neither pane collapses. One model for ResizableSplit and for painted hosts (SplitHandle).
Stack
Children painted on top of one another, each position: Absolute and anchored at the stack’s top-left. There is deliberately no alignment option: a child that wants a corner or the centre positions itself (a Column/Row with its own insets and justify, or a Container with with_centered_max_width), so the stack stays a pure z-order primitive and the layer’s geometry is owned by the layer. If a caller needs the stack itself to anchor, add an opt-in that maps to inset on the child node rather than changing this default.
StatGroup
A set of stat tiles that reflows by width: all in one row when they fit, then half per row (a 2×2 for four), then one per row. Tiles are separated by space, never boxed.
StatGroupProps
A set of stat tiles that reflows by width: all in one row when they fit, then half per row (a 2 by 2 for four), then one per row. The tiles are separated by space, never boxed.
StatTile
A retained stat tile. See the module docs.
StatTileFace
Immediate-mode stat tile.
StatTileProps
One number and what it measures, on the content ground: a dashboard’s reading, a backup’s size. A tile reads top to bottom: its label, the value with its unit, a note, which way it moved, and a sparkline of its recent readings. A tile that opens a detail is pressed.
StatusAction
The button beside a window’s status: its label and the window’s own action it runs, the same one the palette, menus and assistive technology reach.
StatusCluster
The cluster’s one control: its slots, the state they share and how it tells the degrees that matter.
StatusClusterFace
One slot’s drawing, as a bar control’s glyph.
StatusClusterLayout
Where a painted cluster put its parts, for hit-testing and for the accessibility tree.
StatusLine
A non-interactive status: a RowStatus dot and a Caption sentence on the content edge (“Engine running”, “3 containers stopped”), for a list’s footer or a detail’s state.
StatusLineProps
A status in a sentence: a dot in the status’s colour and a caption beside it, “Engine running”, “3 containers stopped”. For a list’s footer or a detail’s state; it is never pressed.
Stepper
A retained stepper. See the module docs.
StepperFace
Immediate-mode stepper.
StepperProps
Where a person is in a short sequence: a setup wizard’s steps, an import’s. Each step is a station with a disc and its name; a done one carries a check and may be gone back to. Too narrow for its stations, it reads “Step 2 of 4” over the current step.
StripLane
One display’s share of a strip partitioned across displays: each holds its own groups, laid out and clipped inside its lane only, so none straddles a seam and panning one never reveals another’s.
Suggestion
One completion offered in the dropdown.
SuggestionPerson
Who a Suggestion names, for its leading avatar.
SuggestionProps
One completion an Autocomplete offers.
SunburstNode
SunburstStyle
Surface
A retained surface of one level around one child, padded by the level’s rhythm. A Surface inside a surface of the same level paints no ground of its own.
SwipeAction
The action a swipe reveals under the row’s trailing edge.
SwipeActionProps
What swiping a row across does: one command on its item, uncovered under the row as it moves.
SwipeProps
What swiping the view it stands in across does: it follows the finger, uncovers the command and runs it when let go past the threshold, or springs back.
SwipeRow
A row that swipes sideways to run an action. See the module docs.
Switch
One of several parts, chosen by a key, each built once and kept alive while another shows. See the module docs.
SwitchMotion
The motion of one switch: the retained Toggle keeps one, and so does any host that paints switches itself (ToggleFace::pose), one per switch it shows.
SwitchPose
How a switch is drawn this frame: where its knob is along its travel (0 off, 1 on) and how far its track has turned on (0..=1).
TabBar
TabDescriptor
TabHolder
Whoever opened a tab on a shared desktop, when it is not this desktop’s person and they may not rearrange it: no close, a drag that springs back, and hovering names them.
TabItemProps
One tab of a frame: the resource it shows, and what its pill says.
TabStrip
A frame’s tab strip.
TabStripProps
A frame’s tabs, in one row above its content: the shell’s tab strip.
Table
Text
TextActionRequest
A selected-text command requested from a field’s context menu. The host can execute this asynchronously (translate, rewrite, explain, grammar review) without putting model or network work in the widget’s input path.
TextActionResult
A text action’s result for the range it was requested for. It applies only while the range still holds original: the field may have been edited, by the person or a collaborator, while the action ran.
TextBlockFace
A block of wrapped text in one style, starting at its rect’s leading top corner and wrapping to the rect’s width: a reader’s body, a page’s paragraph, a note’s prose. The shared way to paint running text on a surface a host owns; the host never draws it run by run.
TextCompletion
Which parts of a text field’s inline completion it offers.
TextGrips
The grips of a text selection on a touchscreen: at its start a stem down the first selected line’s leading edge with a knob above it, at its end a stem down the last line’s trailing edge with a knob below, in the selection’s accent. A finger drags either end; the knobs are hit at a constant target on screen whatever the zoom.
TextInput
TextInputProps
A field to type text into, bound to the text it edits. Each edit is spliced into that text, never written over it, so people typing in the same text at once all keep what they typed.
TextLineFace
One line of words in a role, measured and centred on a point or aligned in a box: the bar’s clock reading, a live activity’s headline, an overlay’s timer. It is the shared way to put a single string on a surface; a host never draws a bare text run of its own.
TextProps
Words on the page, set in one of the design system’s text roles. What it says is content, never looked up as interface copy.
TextStack
A retained TextStackFace.
TextStackFace
A text stack’s lines, borrowed, and how to paint them.
TextStackProps
A title over a secondary line, with an optional third line under it, in fixed roles and at fixed gaps: a file’s name over its folder, a person over their role. Each line is one line, cut short with an ellipsis; two facts never share a line.
TileHost
TimeField
See the module docs.
TimeFieldProps
The time of day a day is due at: the hour and the minute it is due at, with “Remove time” beside them, or a quiet “Add time” while it has none. It stands in the time slot of a DateField, so the day and its time read as one fact.
TimePicker
Three-spinner time picker. See module docs.
TimePickerProps
A time of day, as three spinners for hours, minutes and seconds: the arrows step a spinner and so does the wheel over its cell. It is the time in the person’s own zone today.
TimeProps
A moment shown as how long ago it was, or how far ahead: 2 min ago, Yesterday, in 3 min, in the person’s language and time zone. It changes when what it says does, and wakes the window for nothing else.
TimeValue
Typed value shared by a TimePicker and application state.
Toggle
A switch: a BoolControl drawn as a pill whose knob slides to the checked side.
ToggleColors
The resolved colours of one switch face.
ToggleFace
ToggleGroup
ToggleGroupProps
A small set of choices, one of which is made: an alignment, a density, a unit. The chosen one is a thumb lifted off the track. What switches what a window shows is ViewTabs.
ToggleProps
A switch: the same two states as a checkbox, for a setting that takes effect at once rather than when a form is sent. Its knob slides to the side it turns to.
Toolbar
ToolbarButtonProps
One command of a toolbar: pressing it does one thing, or opens its menu.
ToolbarProps
A strip of commands: plain buttons in a row, groups split by hairlines, toggles that stand lifted while on. However narrow the window, every command stays reachable: those that do not fit go to a More menu at the end, the least important first.
ToolbarSeparatorProps
A hairline between groups of a toolbar’s commands. It never stands at the start or the end of what is shown.
ToolbarSpacerProps
The room left in a toolbar, between the commands before it and those after it, which it pushes to the far end.
Tooltip
TooltipHost
One controller owned by crate::app::App — not one tooltip widget per control — is what makes tooltips work for every widget exposing Widget::tooltip with zero per-app wiring, and guarantees at most one chip on screen. Timing is wall-clock through an injected now: Instant, so it’s unit-testable.
TopEdgeReveal
Reveal state of one top-edge bar. See the module docs.
TrackMark
One annotation along a scroll track: where a search hit, a change or a diagnostic sits in the content, painted as a short mark across the track so the person sees where to scroll.
Trajectory
A pointer’s recent path, newest last.
TransclusionPreview
Display-only, bounded projection for a live page embed. The source CRDT keeps only the stable UUID mark; hosts refresh this projection on sync.
TransportActions
The app’s actions the transport’s controls invoke, each through the resource/action door. A control whose action is None is left out.
TransportFace
The face of one transport control at rect (a square: the circle is inscribed in it).
TransportFeed
Where an app declares what plays and takes what the person asked for. Clones share one transport.
TransportState
What plays, as the app’s player has it: everything the transport shows.
TransportTriggers
What each of a band’s controls does, as a view gives them: the band reports what the person pressed, and the view’s action does the rest. A control the view gives None is left out.
TreeMarks
What a tree list works out of its rows, for the rows it builds: how deep each stands, which of them are folded away, which have subtasks, and which stand under the row they follow. The list fills it as it mounts rows; a row’s builder reads it, and the person’s folding stays with the list, so a row folded away stays folded while its neighbours come and go.
TreeRow
What a row is in a tree of rows: the row of the item it is a subtask of, when that item is one of the list’s rows.
TreeViewNodeProps
One node of a tree: its label, the resource it stands for, and where it stands.
TreeViewProps
A tree of nodes: a file explorer, a project’s files, the layers of a drawing, a book’s pages. Each node is the resource it stands for; opening a branch shows the nodes under it, and selecting or activating a node reports its resource.
TreeViewRowProps
What one row of a tree shows besides its label: a leading glyph, the tone its title reads in, trailing text and what assistive technology says of it.
TreemapStyle
TrendRange
The value interval a trend maps onto its plot’s height: lo lands on the baseline, hi on the top edge, and values outside clamp to the plot.
TrendStyle
Paint options for a trend line — the one line/area renderer behind Sparkline and every series of a Chart.
UndoButton
An Undo or Redo button wired to the host’s history.
UnreadDivider
UnreadDividerProps, built: an unread divider over a row.
UnreadDividerProps
The divider as a widget, for a list built of widgets: a band across its column with its label at the trailing end, over the first line the reader had not read.
UploadProgress
How far an upload has got.
VecListModel
Convenient fully-resident model. Database and paged sources generally implement ListModel directly instead.
VideoPlayer
VideoPlayerProps
A video with its playback controls over it: play/pause, the scrubber, the volume, mute and fullscreen. The app’s player is the one truth; what the person does reaches the view as its events.
ViewTabs
Tabs that switch the view of a window’s content.
ViewTabsProps
Tabs that switch what a window’s content shows: a request’s Params, Headers and Body, a container’s Logs and Stats. Assistive technology meets them as a tab list whose chosen tab is selected, not checked.
ViewportState
The pure zoom/pan state kernel. Owns the zoom factor and the scroll offsets, derives the content↔screen transform, and reduces input events (wheel, drag, arrow keys) into new state. Render-agnostic and cheap to clone — a host stores one of these and drives it from its own event + draw paths. See the module docs for the two usage shapes.
VirtualList
VirtualListProps
A long list of rows that costs only the rows on screen: each is built when it scrolls into view. Selection follows the person’s choice and is reported with the item it shows; the list is one focus stop.
WebView
See module docs.
WebViewProps
A page, live: a browser’s content, a help document, a web app embedded in a view. Its address bar, navigation and permission prompts belong to its host: this is the page alone, and the app reports what the page navigated to as its events.
Wells
Where the wells of a tree on this thread report, shared with the window policy that places the windows they stand for: the same handle, so a well that moves moves its window.
WheelJumpAccum
Turns fractional-detent scroll deltas into whole steps. No quiet-time decay: it would stop slow scrolling from ever accumulating a whole detent, and a stale sub-detent balance is harmless since it clears the next time the user reverses direction.
When
A child shown only while a condition holds. While it does not, the child is out of its container’s flow: no box, no gap around it, no paint, no focus and no accessibility node. The condition is read on every synchronization, so state that changes it (a LocalState, the document) shows or hides the child on the next frame; the child keeps its own state while hidden.
WidthLimits
The widths a window may take, in logical px.
WindowBar
The window’s bar, as the host offers it to a header row.
WindowBarLink
The shell’s own buttons in the window’s bar, for an app that paints inside the shell’s content column and declares the bar itself: it starts its declaration from Self::slots (the sidebar toggle, Back while it goes anywhere, the inspector’s toggle) and hands what the person did in the bar to Self::event first, as an app that owns its shell does with NavShell::window_toolbar and NavShell::window_toolbar_event.
WindowBarSlot
A header row holding the window’s bar, after layout.
WindowFailure
The failure face filling a window: the banner centred in the area at the readable width, standing at rest from its first frame (the window’s arrival brings it in).
WindowFrame
WindowFrameProps built: layers on the window surface, the content (under the frame’s own bar while it needs one) and the controls over its bar’s trailing end.
WindowFrameProps
A window standing on a desktop: the window surface with its edge and shadow, holding the window’s content and its controls, clipped to its radius.
WindowGroup
WindowGroupBounds
WindowPreview
See the module docs.
WindowPreviewProps
A window’s live picture, at the rectangle the preview stands at: the compositor draws the window’s own pixels there, so the preview draws nothing and takes no input.
WindowPublication
What a window publishes for its own search: the resources it holds and can act on, and the search providers that find what it keeps.
WindowSearch
The window bar’s search: a control that expands into a field in place.
WindowStatus
What the window says about its changes in the header row: quiet text (“Working offline…”), and the one thing the person can do about it when there is one (Retry), as a button beside it.
WindowWell
See the module docs.
WindowWellProps
A place’s window, at the rectangle the well stands at: the app’s own window shows there, so the well draws nothing and takes no input.
ZoomableImage
The picture a viewer shows, by its address, until its bytes arrive: the box it will fill, then an ImageViewer of it.

Enums§

AccessoryAction
What a field’s trailing accessory does when pressed.
ActionDirectoryInvocationDomain
Comparison-only coverage of an owning surface’s effective invocation domain. This never authorizes invocation, disclosure, or document publication.
ActivityArtifact
What kind of resource the change was made to.
AppHostIntent
A typed, device-local request from app content to shell chrome. Keeping this on the common app contract lets both in-process tiles and future IPC adapters use one destination without an app reaching into compositor state or pretending a status toast completed the navigation.
AppKind
ArtifactKind
The categorical kind of an artifact.
AttachmentAction
One rung of the ladder, as the app should carry it out.
AttachmentKind
What kind of thing an attachment is, which decides its glyph and its word.
AudioCaptureMode
AuthorRelation
Who an author is to the person reading the history. Rows draw the reader’s own changes, a collaborator’s and an agent’s differently.
AutocompleteOutcome
How the most recent interaction ended. Returned once by Autocomplete::take_outcome.
AvatarSize
How large an avatar is. Each size reads from the theme’s metrics, so it follows the UI scale.
AxisLabelFormat
Built-in axis label formats for common presentation needs.
AxisRange
AxisScale
BadgeContent
See module docs for content semantics.
BannerKind
Severity of a Banner. Selects the icon and its colour.
BlockEditOp
A semantic, UUID-addressed mutation emitted by the optional action bridge. It intentionally contains no Automerge object ids, making it safe to replay on another replica or use from apps with a different document layout.
BlockKind
Each CodeBlock stores one authored source line. It may wrap visually; Enter creates the next source row without changing existing line breaks.
ButtonRole
What a button does: a role is its whole appearance, so an app never picks a fill, an ink, an edge or a radius for one.
CalloutKind
The five alerts GitHub-flavoured Markdown defines, in its order.
CanvasNavigation
The primary direct-manipulation verb used by a domain canvas.
CaptureDestination
CaptureKind
What pressing the capture button does.
CaptureMode
What a capture puts out.
CardWidth
How wide a grid’s cards are at least, before the grid drops a column. Measured in lines of body text, so cards widen with the text scale.
CartesianAnnotationKind
A reference line, highlighted interval, or labelled point rendered in the plot’s data coordinate system.
CartesianBrush
CartesianPan
CartesianTooltipAnchor
CartesianZoom
CategoryLayout
ChartNavAction
ChartTouchAction
CheckGlyph
The mark a checked box shows: a tick, or the mixed bar of a partly selected group.
ChipLead
What sits in a chip’s leading slot.
ChipStyle
What a chip or badge is. The style is the whole appearance; there is no colour, size or radius to set.
ChromeEdge
The edge of the screen a bar or a dock stands on: the side of its body the content is. A square body casts no rule from it (bars cast none, design-language.md); it says which way a floating, rounded body’s hairline faces and how a view lays its content out.
ChromeShape
How a bar or a dock’s body sits in its edge.
ColorPickerOutcome
How a confirming picker closed (see ColorPicker::confirming).
ColourFilter
A whole-screen colour transform, as the compositor applies it.
ComposerIntent
What a keystroke means to a composer.
ComposerRule
How a composer’s field ends a message.
ContentKind
What the shell’s content is, so it knows the narrowest the content still works at; below that the window shows one column at a time. Apps say what their content is, never how wide it is.
ControlBindingKind
Machine-readable classification of a control’s activation path.
ControlSize
Small, regular or large: a control’s height and label role together.
ConversationRole
Which side of the column a line sits on, and what its bubble says.
CursorPlacement
DateIndexIntent
What the host should do after one interaction. It contains only stable positions/ids, never an app-specific row index.
DateIndexMarkerKind
Relative importance of a date boundary.
DeliveryState
The state a line shows, in the one vocabulary both apps speak.
DeliveryStep
What a transport reported, before this toolkit decides how to say it.
Density
Coordinated spacing within a form region. Does not shrink control targets.
DiffTag
How one line of a text diff stands against the original.
Disclosing
A band on its way in or out (motion::Disclosure), as the container it stands in moves what follows it (Widget::disclosing).
DistributionKind
DividerAxis
DragAxis
Which way a reorderable list runs. The controller pins the cross axis while dragging so the ghost slides only along the list.
EditOutcome
EditScope
Which blocks the person may have changed, as BlockEditor::take_edit_scope reports it.
EntryKind
What a history entry did, as the history and activity views mark, filter and group it. Read from the change itself (its entry and what it wrote), not from the transport that carried it.
ExtentSizing
What sizes an extent handed to a responsive shell (HIG §9.6).
ExternalDatePickerHit
A host-side hit from an externally laid-out DatePicker.
FieldRole
What one field of a prompt holds.
FileOpenEvent
A file event the surface took.
FilePickerMode
Open picks existing files; Save adds a filename field whose contents resolve to current_dir/<name>; Directory picks existing folders.
FilePickerOutcome
Drained by the host via FilePicker::take_outcome once per frame; None means “user hasn’t decided yet”. The terminal variants resolve the host’s oneshot::Sender<Option<Vec<PathBuf>>>.
FindMode
What a find runs over: text, or a byte view’s hex digits.
FloatAsk
Where a float the person moved or let go goes, for the host to keep in the workspace’s record.
FunnelDirection
GraphSelection
A node or link of a graph chart, by id: what a chord or Sankey diagram inspects and reports on activation.
HistogramNormalization
HistoryClassification
HistoryControl
What the window’s History control shows.
IconDescriptor
A lightweight icon descriptor usable before the full asset pipeline lands. Glyph is a Nerd Font / unicode codepoint (existing approach in both the iced file-explorer and quick-terminal). Named is a symbolic name for future theme-driven icon resolution.
IconSize
Which of the theme’s icon sizes a glyph takes: metrics.icon_sm, icon_md or icon_lg (14, 20 and 24 by default).
ImageDecodeError
Errors that can occur when constructing an Image from encoded bytes.
ImageFit
How the image is fitted within the widget’s rect.
InPlace
What a window’s search acts on in place, as its app offers it.
Ink
A colour of the design system a shape is painted in: a role of the person’s theme, never a colour of the app’s own.
InspectorPlacement
Where the inspector is this frame.
ItemRow
The row of a ListItemProps.
LabelPlacement
Automatic labels use measured content needs, never a caller breakpoint.
Language
A built-in language the editor ships a Highlighter for. Any other language with a grammar is a SyntaxHighlighter::for_token away.
LayoutInfo
Concrete layout policies. Manual layout information can extend this enum.
LayoutOrigin
The nearest source that supplied an effective property, not a source location.
LegendPosition
LineSignal
Emitted when a key would carry the edit out of the line itself; the parent (a BlockEditor) drains these via RichTextLine::take_signal.
LinkKind
What kind of connection the machine’s link is.
Mark
One inline mark applied to a byte range of a RichTextLine.
MarkerShape
MarkupTool
Meaning
What a drawing means, for assistive technology and agents: required, so a drawing is never only pixels.
MeasureConstraint
A proposal for one axis of a retained subtree, in logical pixels.
MediaArt
What a card’s art is.
MediaAspect
The shape of a card’s art.
MediaBadge
An overlay mark on the art.
MediaSize
How large the cards of a grid are, in lines of body text so they grow with the text scale.
MediaSource
Where a retained card’s art comes from.
MenuItem
Separators are purely visual and ignored by ContextMenu::click_item.
MenuPart
One part of a menu: a command, a separator or an emoji bar.
MenuPick
What a row of a folded menu (MenuItem::fold_numbered) stands for: the command whose index the row was given, or the indices of the run of commands a group row opens, in the order the person meets them.
ModalEmphasis
How an action is weighted in the footer.
ModalHit
What a point landed on.
NativeViewAccessibility
Whether AccessKit or the native child owns this view’s semantic subtree.
NavDrop
Where a dragged item lands (see NavList::on_move).
NavEntry
What a navigation list holds: a place, or a section of them under a heading.
NavMode
What the sidebar becomes when the window is too narrow to dock it.
NavPane
A screen of the narrow push stack.
NoticeTone
How the notice line reads.
NotificationListControl
What the person asked of the list.
NotificationListRow
One row of the list.
OverviewPlacement
Where the overview is this frame.
OwnedBadge
Owned badge for the retained card.
PageSidebarEvent
Something the host should do to its page/slide model in response to a sidebar interaction. The ordering-changing variants flag that a save is needed.
PanelAlign
Which edge of its anchor a floating Panel lines up with on the cross axis.
PhysicalInput
Private foreground feedback, stripped of logical keys and typed text. Observers cannot consume the input or obtain a document edit context.
PickerEvent
What the picker asks of its host.
Picture
What a choice’s tile shows.
PictureKind
The picture a tile shows: one of the design system’s own samples, the way a settings pane shows what a choice means.
PieTooltipAnchor
PipLayout
How several selections are combined into one capture.
PopoverSide
Which side of its anchor a floating Panel opens on.
PresenceStatus
Whether a person is there: the badge on their avatar’s corner.
Presentation
How the prompt is framed.
PressOutcome
Outcome of a press hit-tested against one bar.
PrimaryScrollAction
PrimaryScrollResult
ProgressRingSize
How large a ProgressRing is. Each size reads from the theme’s metrics, so it follows the UI scale.
PromptChoice
Mirrors the variants of the shell’s consumer-facing quick_shell::shell::state::GrantScope plus an explicit PromptChoice::Deny for the negative path. Held one-shot on PermissionPrompt::pending_choice until the host drains it.
PromptOutcome
How the person answered.
ProposalDecision
What the person decided, and the change they decided it about.
QuickTileOutcome
What the person did on a tile.
QuickTilePart
The two targets of a tile.
RecordingCommand
Commands for the compositor-owned recording session. Keeping controls in the same semantic intent stream as Start makes shell chrome, shortcuts and future remote controls share one state machine.
ReplayCommand
ResizeMode
How a drag shares out width.
RouteError
RowGroup
The row’s place in a group of the list (super::ListModel::group_at): the heading the run of rows stands under, and the tail of items done with.
RowLeading
What sits in a row’s leading column.
RowLeadingShape
What leads a kind of row.
RowStatus
A status dot on the row’s trailing edge, on the title’s line; beside a check or a disclosure chevron it centres with them.
RowValue
How prominent a row’s trailing value is.
RuleEdge
The edge of a rect a paint_rule runs along.
RunAxis
Which way a run goes.
RunGroup
The part of a run an item belongs to, as a bar or a dock is built: the items that lead (a bar’s mark and menus, a dock’s launcher), those in the centre (a bar’s clock), those that trail (the people and the status), and the ones between groups, which push the groups apart as a spacer does. A dock is one compact group at the centre of its edge, so its items are all Leading and its run is packed.
ScreenshotCommand
ScreenshotMarkupCommand
ScreenshotSendTarget
Where “Send…” delivers the last screenshot.
ScrollAxis
ScrollDirection
Which way a scroll view lets its content go on past its own box.
SearchReach
How far beyond the window a search goes when the person widens it.
SecretKind
What a prompt asks for.
SegmentedStyle
What a segmented strip is. The style never chooses a colour: the chosen segment is always a lift with primary ink.
SegmentedTouchResult
The input owner applies a selection through its existing admitted action.
SelectionHandle
A grip on the selection frame.
SendToFocus
Which field the keyboard is in.
SeriesKind
Shape
One shape of a Drawing. Coordinates and sizes are fractions of the drawing’s box (0.5 is its middle); angles of an arc are fractions of a turn, from the top, clockwise.
SheetDetent
Where a sheet rests.
SheetInput
What BottomSheet::handle_event did with an event.
SheetResponse
What an immediate ModalSheet was answered with.
Showing
What an ArrivingView shows.
SidebarPlacement
Where the sidebar is this frame.
SidebarSide
Which edge the drawer is anchored to.
SignalLevel
How strong a signal is: the level the meter fills to.
SkeletonForm
What kind of content a skeleton stands in for.
SkeletonShape
What a skeleton stands in for: the geometry of the content that will replace it, the box a read on its way reserves.
SlashCommand
What a row of the slash menu does.
SlashHostCommand
A slash command only the editor’s host can carry out. A host offers the ones it answers with BlockEditor::set_slash_commands.
SliderTouchStep
What one contact update means for a slider, at logical coordinates.
SmallContentAlign
How the content is positioned along an axis when it is smaller than the viewport along that axis (i.e. nothing to scroll).
SourceMode
SplitLayout
How a sidebar resolves at the current width.
SplitOrientation
StatusSlot
What one slot of the cluster shows.
StepAnswer
What the person does with a step’s controls: open what its answer names, undo what it changed in one resource, or answer what it proposes.
StepperPart
One of a stepper’s two buttons.
StripHit
What a point on the strip is.
StructureChange
What a structural change a subtree reported (Widget::take_structure_change) asks of its host. Ordered: a change joined with a larger one is the larger.
SurfaceLevel
TabDropTarget
Where a dragged tab lands within a strip: at an exact index in an existing group, or as a new group at an exact seam between groups.
TabMark
What a tab’s content is doing, marked in place of its icon: loading, or making sound. A sound mark is a control, and a click is reported by TabBar::take_mark_click.
TextGrip
One end of a text selection a finger can take.
TextInputKind
Semantic intent of a field. Ordinary TextInput construction defaults to Prose, so apps opt out only for the smaller set of structured fields.
TextLineAlign
Where a TextLineFace stands in the rect it is given.
TileContent
TimelineDensity
See the module docs.
TokenKind
The syntactic category a run of source falls into. The editor never hard-codes a colour for these — the theme’s syntax palette resolves each to a concrete colour, so syntax tracks the active theme in light, dark and high contrast.
Tone
What a coloured mark (a card’s leading stripe, a stat’s ticker, an empty state’s glyph) means.
ToolbarPart
One part of a toolbar: a command, a separator or a spacer.
TouchpadGesture
What a touchpad picture shows the fingers doing.
TransportArt
The song’s art in the transport.
TransportControl
TransportEvent
What the person asked for that changes what the window shows, rather than what plays (TransportActions), and the swipe across the band.
TransportRepeat
What a repeat control repeats.
TreeMove
One step a row moves through a tree: its order among the rows it stands beside, and how deep it stands.
TreeTone
The label’s tone in a tree.
Trend
Direction of a tile’s change line. The arrow says which way the number moved; whether that is good is the tile’s Tone, not the arrow’s.
TrendCurve
How consecutive samples are joined.
TrendFill
How the area under a trend line is filled.
ViewportZoom
What a control outside a DocumentViewport — a toolbar’s Zoom out, its level, its Zoom in — asks the content’s zoom to be.
Weight
How heavy a stroke is: a token of the design system, never pixels.
WidgetLayoutError
WindowCloseAdmission
WindowEdge
One of a window’s two vertical edges.
WindowSearchRequest
What the person asked of the window’s search, for the window to carry out: it knows the tab and its app.
WindowWidth
Persisted width of a [crate::WindowGroup], as a fraction of the strip’s usable width — a stored pixel count would mean a different screen share on every monitor.

Constants§

CANVAS_ZOOM_MAX
CANVAS_ZOOM_MIN
The smallest and largest zoom a canvas is shown at.
CARD_TITLE_LINES
How many lines a card’s title may take before it is cut with an ellipsis: a card is a small document, and its title says what it is without being opened.
DEFAULT_DRAWER_BREAKPOINT
At or above this width the drawer docks (Metrics::compact_breakpoint).
DEFAULT_DRAWER_DOCKED_WIDTH
The docked sidebar width every shell shares (Metrics::sidebar_width).
DEFAULT_DRAWER_WIDTH
The overlay drawer width (Metrics::drawer_width).
DEFAULT_MAX_ZOOM
Default upper zoom bound (600 %).
DEFAULT_MIN_ZOOM
Default lower zoom bound (25 %).
DEFAULT_PADDING
Default padding (screen px) reserved around the content so it doesn’t sit flush against the viewport edges. Matches the PDF reader’s feel.
DEFAULT_PAN_STEP
Arrow-key pan step in screen px.
DEFAULT_STRIP_USABLE_PX
Only reached from a bare ui host with no output spans; the shell always pushes real geometry first.
DISABLED_ALPHA
Shared disabled-state opacity: wrap draw output in scene.push_layer(.., DISABLED_ALPHA, ..) / pop_layer().
FILTER_MIN_OPTIONS
Lists shorter than this never show a filter: a typed letter jumps to the next option starting with it instead.
HANDLE_HIT_HALF_PX
The seam’s hit zone is the slot plus one grab zone of each neighbour (RESIZE_HANDLE_PX inside each window), so every window edge, seam or outer, has the same size of target. Half of the 20 px total each side.
HANDLE_SLOT_PX
This is the strip’s inter-group gap: the row declares no gap of its own and lets the handle supply the whole footprint, so anything that walks the strip’s canvas (GroupRow::usable_per_group) has to step by this between adjacent groups.
HANDLE_VISIBLE_PX
HISTORY_CONTROL_ID
The id of the window’s History control in a painted header row: its test id, and the action target of its semantic node.
JUMP_PX_PER_DETENT
Touchpad px per wheel detent for the discrete jump gestures; also the scale for hi-res wheel notches reported as pixel deltas.
MAP_ZOOM_MAX
MAP_ZOOM_MIN
The smallest and largest zoom the map is shown at: far enough out to see a whole canvas, far enough in to read a note.
MIN_HEIGHT
MIN_WIDTH
OPEN_REFERENCE
The event a component fires when a reference in its text is activated, carrying the reference (the mention mark’s value): what its host opens when the view gives the event nothing of its own.
PAN_SLOP
A drag shorter than this (screen px) is a click, not a pan — lets a host distinguish a selection tap from a drag-to-pan gesture.
PROMPT_HEIGHT
REFERENCE_LEAD
What leads a reference’s label on its chip: a link.
REORDER_THRESHOLD_PX
Pixels of pointer travel before a press is promoted to a reorder drag, so a plain click never jitters into a move.
RESIZE_HANDLE_PX
REST_BORDER_WIDTH
SIGNAL_BARS
How many bars a meter has.
STATUS_ACTION_ID
The test id of the button beside a window’s status.
STRIP_BOTTOM_GUTTER_PX
Wallpaper under a strip’s tiled windows, so their bottom border and corners stand clear of the screen edge; a maximized or fullscreen window takes the band.
STRIP_EDGE_GUTTER_PX
Wallpaper a desktop keeps at both ends of a strip, as the leading inset and, through usable width, at the trailing end: without it a window at either end has its border, corners and shadow (e2: blur 8) cut off by the screen edge.
STRIP_TOP_GAP_PX
Wallpaper between the bar’s band and the top of a strip, so a window’s top edge and corners stand on it rather than against the bar, while both still read as one stack.
TITLE_BAR_HEIGHT
The unscaled title-bar height: a floating window’s title bar is a Bar (HIG §9.1/§9.6), so it takes metrics.bar_height — the same 40 px the top bar, a toolbar and the shared Button use. Live geometry reads the ui_scaled token from the theme the window was laid out with (FloatingWindow::title_bar_height); this constant is for callers that need the reference value in a const context.
TREE_DISCLOSURE
The room a tree row’s disclosure marker takes at its leading edge.
TREE_INDENT
One step of a tree’s nesting (VirtualList::with_tree): the disclosure gutter a row’s content stands in by, from the leading edge of its own depth, where the chevron that folds what stands under it hangs.
TREE_ROW_HEIGHT
The height of one row of a tree: an outline’s rows are its own token, the compact row’s height, shorter than a list’s row of the same theme.
WHEEL_GESTURE_GAP
A wheel’s touch gesture ends when it pauses this long: a trackpad keeps reporting while the fingers move and through the momentum after they lift, and a spun mouse wheel’s notches come well inside it.
WIDTH_FLOOR_PX
The one sane minimum: enough for a tab pill, its controls and a scrollbar. A fraction below it resolves up to it.
WIDTH_MAX_PERMILLE
The storage’s own end, over four million strips: a drag cannot reach it, even resting at the display’s edge while the strip scrolls under it, so there is no widest window anyone can feel. (Ten strips used to be the limit, which an edge drag that scrolls the strip reaches in seconds.)
WIDTH_MIN_PERMILLE
Bounds of what a width can store, not of what a person may choose: a group may be a sliver of a share up to any number of strips wide, the strip scrolls. Windows’ own minimum and maximum sizes are the apps’ to state (xdg_toplevel hints, a Tilo app’s compact layout); the only limit of ours is WIDTH_FLOOR_PX.
WIDTH_NARROW_PERMILLE
Per-mille (not px) so a tier means the same fraction on every monitor. Thirds tile the strip cleanly; Wide is the full usable width.
WIDTH_NORMAL_PERMILLE
WIDTH_WIDE_PERMILLE
WINDOW_BACK
The action ids of the shell’s own slots in the window’s bar (NavShell::window_toolbar).

Traits§

AppWidget
Trait every in-process app implements so the shell can host it inside a TileContent::App. AppWidget: Widget means the shell always falls through to the widget contract for layout, draw, and events.
AudiencePresentationProvider
Optional second-output presentation capability for app roots.
AudiencePresentationWidgetExt
Ergonomic host API for optional second-output presentation support.
CardBody
A widget that can be shown as a card: what a card component (a board’s BoardCard) asks of the one widget it was given, so the card is that widget’s own surface and what it says is written once. Asked as a capability, so a widget wrapped in a host’s pane, a context menu or any other decorator still answers.
CheckControl
A boolean form control conventionally paired with an inline label.
Collaborative
Optional session collaboration capability for widgets that own live broker-backed activity.
CompleteContentProvider
Optional full-document/canvas capture capability.
CompleteContentWidgetExt
Ergonomic host API for optional complete-content capture.
Continuable
Optional cross-device continuation capability for an app root, deliberately separate from Widget: ordinary controls have no resumable app state, while roots that do expose it through Widget::provide without weakening their UI integration.
Decorator
A widget that extends another by overriding a few Widget methods and forwarding the rest. See the module docs.
EntryBody
The content of one History row, painted by the app inside the row’s content slot (beside the author, before the time).
Filterable
A view a SearchField can narrow: a list, a table, a grid of cards.
Findable
A view whose content can be searched in place.
FloatingRow
What the list needs to know about a row it lays out; the owner paints it.
FloatingSurfaceProvider
Optional capture and detachable-surface capability.
FloatingSurfaceWidgetExt
Ergonomic forwarding API for optional floating-surface capabilities.
FormControl
A control that can receive the accessible name of a visible form label.
FullscreenProvider
Optional OS-fullscreen capability for roots and forwarding containers.
FullscreenWidgetExt
Ergonomic host API for optional fullscreen support.
Highlighter
A pluggable, per-line source tokenizer. The CodeEditor owns rendering, caret, and selection; a Highlighter owns only the language lexing — mapping a line of source to coloured Spans. SyntaxHighlighter covers every language with a grammar; hand it (or a wrapper that adds app-specific spans) to CodeEditor::with_highlighter.
HistoryEntryPresenter
An app’s presentation of the changes in its History. Asked once per listed change each time the list changes, so answering is cheap: it reads the entry’s facts, nothing else.
ListEdges
The space a list leaves above its first row and below its last (VirtualList::with_edges), part of what it scrolls: a page’s top and bottom spacing around rows that are a page’s content, one by one.
ListModel
Random-access collection contract for VirtualList. Keys must be unique and stable while an item represents the same logical entity.
NativeViewBackend
App/platform implementation of one native child view.
NativeViewLifecycle
Optional lifecycle for widgets backed by a platform-native child view.
PlotMarks
What a chart kind supplies to Plot.
Queryable
An app whose views are queries over its resources: the window’s search turns the view shown into a query view, and closing it returns to the view before.
ReservedShape
The box a widget fills when it is the answer of a read: what an ArrivingView showing it must have reserved. A list row reports its kind, a media card its aspect.
RowActionRects
A row widget says where its own hover actions stand, so the list reports the place to press one without knowing what the host built its row of (VirtualList::row_action_rect). A row without actions provides none; ListRow provides its own.
RowRenameField
A row that says where its title stands, for the field renaming it in place to stand over it, in the role the title reads in: asked for through capability.
RowSelectionSink
A row that paints the selection the list holds for it, asked for through capability_mut: a view wraps the row it places in its swipe and its hover toolbar, and the list reaches the row through them.
SearchableWindow
An app that runs inside a runtime of its own (an embedded app) and lets the window’s search reach its widgets.
TaffyTreeExt
Panic-free node construction, used by every build_layout implementation in this module. TaffyTree::new_leaf and new_with_children are typed -> TaffyResult<NodeId> for API generality, but taffy 0.10’s implementation shows neither can return Err: new_leaf always inserts and returns Ok, and new_with_children only fails for a child NodeId belonging to a different tree, which never happens here since every child passed in was just built in this same tree by the calls immediately above each call site. Widget::build_layout returns a bare NodeId (not a Result) across every implementor, so surfacing a theoretical error here would mean threading a Result through the whole toolkit for a branch that can’t be taken.
Widget
WindowHeader
A widget that draws the window’s header row.
WindowHistory
An app that runs a History of its own inside a desktop window (an app shown in a region of the host’s scene). The window presents its History control in the tab row, as one more control of the window, so the app draws no History band of its own.

Functions§

apply_filter
Narrow the first Filterable in widget’s subtree to query, and return its count.
arrival_failure
The failure face: title says what failed (never an app’s name, which its window already shows), reason says why. The caller adds the way to try again with Banner::with_action.
badge_column_width
Measure the leading column that fits every badge in badges, so a list of rows with badges of different lengths keeps one title edge. Pass the result to every row’s ListRowFace::leading_column. A Section does this for the retained rows it holds.
badge_label
The bell’s count as it reads: 9+ once it needs a second digit, since two digits would crowd the bar.
badge_size
A count badge’s size: s1 of padding above and below the line, s1 either side, never shorter than s4 nor narrower than it is tall.
blocks_from_html
The blocks html shows: what a formatted paste brings in. Empty when it shows no words.
blocks_to_html
blocks as an HTML fragment: what a formatted copy offers.
card_column_width
The width of each of cols columns that, with gap between them, fill avail_w exactly. Never negative.
card_columns
How many columns of at least min_card_w fit in avail_w with gap between them. Always at least 1.
chart_nav_action
compute_widget_layout⚠
Measure the host tree and settle allocation-dependent styles before calling Widget::apply_layout. App and the headless runner use this same solver. Manual hosts may use it with the maps from their current build_layout. Raw Taffy layout still works for ordinary Grid tracks, but cannot resolve CardGrid’s below-minimum single-column fallback without this adjustment.
control_fill
A Control’s fill: the shared hover tier when hovered, otherwise a quiet floor on the same ramp, so a row reads as a surface rather than bare text on the panel. Both states sit on one ordered ramp, so hover is always the more prominent.
control_radius
The Control radius for rect (radii.control).
device_scale
The device pixels per logical pixel of the display a layout is for: every tree the toolkit solves rounds its edges onto that grid ([solve_layout]), so an edge lands on a device pixel at 1.5 as at 2. 1 outside a host’s layout pass.
draw_app_mark
A window’s application mark at any size: the app’s own artwork when it has some, else the app-kind glyph its tab pill wears, scaled up from the pill’s 14 px design size. Every surface that names a window by its app (the tab pill, the window switcher, the overview) paints this one mark.
draw_child
Draw child unless what it paints misses the viewport. Off-viewport widgets stay dirty, so they re-emit when scrolled back in. A widget ends every layer it begins: the render service refuses a scene that leaves a clip open, and with it the whole frame; debug builds check that here, naming the widget.
enter_device_scale
Lay out at scale device pixels per logical pixel until the guard is dropped: a host enters it around its whole layout pass (solving and placing, with every tree a widget solves of its own), with its display’s scale. A scale that is not a finite positive number is 1.
event_offset
event as a widget drawn offset (logical pixels) from where it is laid out meets it: a pointer or touch position moved back by offset, so content on its way (a band disclosing above it, a pane gliding) is hit-tested where it is drawn (motion::Pose::to_local). Every other event, and any event at a zero offset, passes through untouched.
face_colors
The colours of role in interact, the one source for the retained and immediate-mode painters; edge is None where the fill defines the shape or there is no face.
find_mut
The first widget of root’s subtree, root included, that is a T, to change: a view or a page wraps the widget it places (a row’s swipe around its row, a docked page around its list), so a caller reaches it wherever it sits.
find_test_id
The first widget of root’s subtree, root included, whose Widget::test_id is id.
find_test_id_mut
find_test_id for a widget to change.
focus_ring_reach
How far past a control’s face its ink may reach under theme: the focus ring, the ground-coloured line that parts it from a fill of your colour, and their antialiasing. A 2 px mark stroked centred on a rect reaches no further, so a region drawn as a part of its own pads its bounds by this.
format_relative_time
Used by both widgets so the wording stays uniform with every other “time ago” label (crate::format::relative). Re-renders every frame, so the label freshens naturally as now advances — no clock plumbing needed.
hold_windows
Begin holding windows still: each window then held with TileHost::hold_content draws its recording until release_windows. Returns whether a hold began.
holds_pointer
Whether child holds the pointer for its subtree: it latched a drag, or a menu or modal is open somewhere in it. A container that hands input to its children asks this before routing by place, so a press over an open menu reaches the menu wherever the container stands and whichever sibling lies under it.
hue_to_rgb
HSV(h, 0.65, 0.95) → RGB. Saturation and value held constant so generated author colours stay visually coherent (no neon outliers, no muddy ones).
initials_for_name
The first letters of the first and the last word, upper-cased: "Ada Lovelace" gives "AL", "Grace Brewster Hopper" gives "GH", "ada" gives "A". Words without a letter are skipped, so "Tilo 4" gives "T", never "T4".
insets
Padding per side in CSS order (top, right, bottom, left). Negative values are clamped to zero: taffy treats a negative inset as undefined and a caller subtracting an overlap can otherwise drift below it.
insets_all
Uniform padding on all four sides, in logical pixels. Pass a token (theme.padding_standard, theme.tokens.spacing.s4), not a number.
insets_xy
Symmetric padding: horizontal on left and right, vertical on top and bottom — the toolbar / action-row shape.
justified_rows
Lay aspects (width / height) out in justified rows width wide: each row is filled at target_height, then scaled so it spans the width exactly. The last row keeps the target height instead of stretching, capped at the height of the row above it. Returns one rect per item, relative to the origin.
labeled_check
Compose a checkbox or toggle with one inline visible and accessible label.
labeled_field
Compose a visible semantic label with the control it names.
layout_clip
The window area content is seen through while it is being placed: the viewport of the nearest enclosing scroll view (intersected with any outer one), or None when nothing clips it. A collection reads it in Widget::apply_layout to keep only the rows near what is shown laid out; drawing culls against PresenceCtx::should_cull instead. It is in effect too while a scroll view collects its content’s damage and while the host plans its copies (Widget::for_each_child_in_clip).
layout_rect
node’s laid-out box placed at origin: what apply_layout stores as a leaf’s rect. A node missing from the tree is an empty box at origin.
legacy_block_id
Deterministic stable ID for a legacy block map that has no persisted id.
line_of_wheel
Logical pixels one notch of a line-stepping wheel scrolls, the metrics token that weighs a line against a touchpad’s pixels.
max_group_px
Widest a group may resolve to on a strip of strip_usable_px: the widest width that can be stored, millions of displays. The strip scrolls.
merged_controls_width
Room the window’s controls (Full screen, Restore, close) take at the trailing end of an app’s header row that holds the window’s bar: three of the row’s icon buttons, a row gap apart.
min_group_px
Narrowest a group may resolve to on a strip of strip_usable_px.
minimum_window_width
The narrowest the window root lays out still works at (Widget::minimum_window_width): the first widget in the tree with an opinion, outermost first.
move_chart_index
move_chart_item
Move through a filtered list while preserving the caller’s original item indices (for example, skipping invalid or zero-valued data).
next_change
The first instant after now at which relative_text of at reads differently from how it reads at now, or None when it never will.
note_layout_moved
From a widget’s update: an animation of its own moved or resized what it lays out (a glide, a jump in progress, a give springing back, a pane gliding open, a reveal growing a pill), so the last layout no longer stands. The host lays the window out again in this frame; it is no change of the model, and nothing syncs.
note_resource_presentation_changed
Tell the host that what a widget presents to the resource surface (the resources, actions or semantic controls it declares) changed on input it did not mark handled and without a document edit: hovering a menu row that opens a nested menu. The host keeps the published resource tree across bare pointer motion, so such a widget must call this or the tree agents and assistive technology read would go stale. Clicks, keys and handled events outside the explicit view-only scroll contract republish.
note_shift
Say the person holds Shift, or not, as a window’s modifier change does: for a host that learns it otherwise, and for tests.
note_view_only_pan
Tell the host that the wheel event being dispatched was consumed only to move a scroll container’s view: every widget under the pointer refused it, and the container took it as a pan of its own offset. The host then keeps the published resource tree and skips the full sync, exactly as for a root that declares Widget::view_only_scroll, provided the dispatch changed no document, focus or declared presentation. A scroll container that does anything else with the wheel must not call this.
open_external_url
Best-effort and non-blocking — a launch failure is logged, not surfaced. See crate::portal::open_uri for how the URL reaches the desktop.
optional
child when there is one, otherwise an Absent that takes no room and no gap: a caption, a badge or a help line that only some items have.
pack_point
A point packed as the one number an event’s at carries: y in whole logical pixels above x, each below a million, so a window’s coordinates survive the round trip.
paint_bar_body
The square body of a bar standing edge to edge in the screen’s own edge, in rect: the theme’s bar finish over its own panel ground and the edge the theme gives it along its foot. Bars cast no rule at the screen’s edge (design-language.md), so a square body paints no outline; a shell’s bar paints this and its controls on top.
paint_control_row
Paint one Control: its fill with the derived rest edge at the Control radius, and the toolkit’s 2 px focus ring when focused. The one painter for every tile, card, power row, edit row and list row a host draws, so they cannot drift apart.
paint_disabled
Lay everything painted next under the disabled veil, over the shape the control draws as its bounds: a disabled control is its rest face dimmed as one group, at full-strength edges so it still reads where it stands. The caller pops the layer once its face is painted.
paint_find_match
Paint one match highlight over rect, the span of the matched glyphs — never a whole line or block. Every match is a wash of the searcher’s own selection colour; the current one is stronger and outlined so it can be told apart at a glance.
paint_focus_ring
The keyboard focus ring around a pressable surface of radius: your colour, 2 px, just outside the surface so it never covers its content. Composites that own their focus (rows, cards) paint it themselves; a painted surface with its own hit-testing calls this.
paint_held_readout
The value a held knob would land on, label, on a chip above the knob, kept over the slider’s own span so it never leaves the control it reads. The one readout every held slider shows: the retained Slider and an immediate-mode seek bar (a shell card’s) alike.
paint_invalid_edge
Outline a field whose content was refused (a wrong password) in the danger colour, over the field’s own edge at the control radius.
paint_preedit_underline
Paint the pending input method composition on a shaped line. Editors supply the segment from their own projection (proportional formula text or a fixed-width code line); its appearance follows the shared input role.
paint_rule
Paint the rule a Divider draws along edge of rect, inside it, for a surface painted by hand. surface is the ground it stands on when that is not surfaces.base (as Divider::on).
paint_see_through
Paint the see-through material over rect at radius: half the panel ground over the blurred backdrop, its floating shadow outside it only (a shadow under the body would darken what shows through) and the floating hairline. Only for chrome over pixels the person is choosing (docs/design-language.md, “Material and transparency”). Returns the theme a child standing on it paints with.
paint_severity_rail
The rail a warning or a failure keeps beside its text, so a row’s status is scannable without taking another line; plain information carries no colour, so the rail means something wherever it appears.
paint_surface
Paint level over rect: its shadow, its fill and its edge. Returns the theme a child standing on it paints with (Theme::on_ground): ink, lifts and the raised well re-measured against the level’s fill.
paint_unread_badge
The unread count on a running application’s own icon: the badge a sidebar’s unread count wears, filled in the person’s colour.
pan_within_canvas
Whether a strip panned to scroll can be drawn in canvas coordinates: the retained canvas spans the content from no pan to the furthest, plus pad past either end.
permille_for_px
Inverse of WindowWidth::resolve: how a pointer drag (pixels) becomes a stored resolution-independent width.
placed
A laid-out box placed at origin, in absolute coordinates.
placing_again
From Widget::apply_layout: whether taffy is a tree its widgets are being placed again from unchanged (placing_again_in). A widget that lays out a tree of its own solves it, so its children are placed anew.
plan_overflow
How many of a row’s items, widths wide in the row’s order with gap between them, stand in width beside a door door wide ([give_way]); the rest are behind the door, in the same order. A row does not reorder its commands to fit more of them, because the order is what makes them findable.
property_label_column
The label column rows need: the longest label, at most max_share of width. Several lists that must line up share the widest of theirs.
published_resources
Every resource widget’s subtree publishes, as the host’s action catalogue collects them. A host that embeds components under its own root (a desktop surface) reads what its search offers through this.
published_search_providers
Every search provider the components in widget’s subtree publish, each once, as weak proxies the components keep owning.
record_unavailable_title
The name of the card a tile shows while its record cannot be opened.
redraw_or_children
Whether widget paints this frame: it changed itself, or a child is dirty or on its way (needs_animation_frame) and paints other pixels.
relative_text
at (seconds since 1970) as people read it at now.
release_windows
End the hold: every window draws live again, and drops its recording the next time it draws.
resource_operation_handlers
Every type widget and its subtree dispatch.
route_to_children
Route event through a container’s children, first handler wins. A child latching a drag gets it exclusively, so the drag survives the cursor crossing a peer that would claim it first; a child holding an open modal owns input the same way.
segment_colors
(fill, label) of one segment; fill == None means nothing is painted under it. On a SegmentedStyle::Segmented track the fill is the thumb.
semantic_action_bindings
Derive native semantic-action provenance for actionable synthetic nodes in a custom widget’s accessibility tree. This is the intended low-level escape hatch: authors draw anything they want, provide stable semantic targets, and opt those targets into the shared action route with one method call.
share_row
Let node share its row’s main axis with its siblings by grow: it grows and shrinks from a zero basis instead of keeping its own width.
shift_held
Whether the person holds Shift right now, as the window’s last modifier change said. Shift is how a person skips a confirmation that Undo makes unnecessary: a menu row that asks first runs at once, and the host’s question is not asked (see action_palette).
shift_skips_confirmation
The one rule of every confirmation a person is asked: Shift skips it, if and only if Undo takes the action back (can_be_undone, from the action’s contract). What Undo cannot take back is asked, Shift or not.
sideways_travel
A wheel event’s sideways travel in logical pixels when horizontal motion dominates, positive for a wheel turned (or fingers scrolling) rightward, which scrolls content toward its later columns; None for vertical motion. Winit reports pixels physical, so they are divided by scale_factor, and a line is a notch of the wheel’s own metric. The desktop’s window strip and the app under the pointer read a wheel by this one rule.
skeleton_tone
The skeleton tone on ground: a derived wash that registers even on a near-black ground.
solve_layout
Solve the layout of the tree under root within available: what TaffyTree::compute_layout does, for a widget or an app that lays a panel out in a tree of its own.
sync_filter
Carry field’s edits to the Filterable in content: call after routing each event. The field shows the count the view reports, and its “Search everywhere” escalation narrows to the view’s scope.
take_layout_moved
Whether note_layout_moved ran since the last call, clearing it: a host asks after its widgets’ update, and lays out again when it did.
text_control_height
Height of a shell control that carries one line of body text — a Back chip, the slot a search field sits in — authored at 1× as authored logical px.
toggle_accessibility
Build the accessibility node shared by retained toggles and context-specific toggle controls that own a different mutation channel.
toggle_face_colors
Single source of truth for both the retained Toggle’s draw and Toggle::paint, so every switch shares one palette per state.
try_open_external_url
Hand a URL to the current host’s URI handler and report the outcome. May block until the handler answers; call it from a worker thread.
unpack_point
The point pack_point packed.
wheel_jump_detents
Scroll delta → fractional jump detents. Winit’s y is flipped (positive = up), so wheel-DOWN yields a positive detent = jump right/next, matching Niri’s Mod+Shift+WheelScrollDown → focus-column-right.
with_filterable
Run visit on the first Filterable in widget’s subtree; whether there was one.
with_findable
Run visit on the first Findable in widget’s subtree; None when there is none.
with_layout_clip
Run place (a scroll view placing its content) with clip as the layout_clip, narrowed by any clip already in effect.
with_queryable
Run visit on the first Queryable in widget’s subtree; whether there was one.

Type Aliases§

AppModel
The app’s model, lent to a widget pass. The toolkit only passes it on to children; the layer that owns the model reads it (the document runtime through crate::doc::document). A host passes its model by reference and it coerces: widget.sync(&mut doc, &root).
ArtPainter
Paints a card’s art into the rect it is given, from theme values.
CandlestickChart
Open/high/low/close candles over an optional volume panel.
CartesianPlot
A Cartesian plot: see the module docs.
CategoryChart
Values per category as grouped, stacked, percent or waterfall bars.
ChordChart
Weighted links between nodes on a ring, as ribbons across it.
ChordSelection
What a chord diagram inspects and reports on activation.
ContentDraw
A draw callback supplied to DocumentViewport::from_draw. It receives the content→screen Affine already composed with the host transform, so the closure paints in content space and the viewport handles the zoom + pan. The viewport rect is supplied for clipping decisions.
DistributionChart
Box plots or violins summarising each series’ samples.
Element
FunnelChart
Stages narrowing (funnel) or widening (pyramid) by value.
Heatmap
A matrix of cells coloured along a theme ramp.
HlState
Opaque cross-line carry so multi-line constructs — block comments, fenced code — survive from one line to the next. 0 is the document start; a Highlighter owns the meaning of every other value. Line-local highlighters ignore it and always return 0.
LinkPopover
ModelPath
Where in the AppModel a widget is bound, forwarded alongside it.
PieChart
A responsive interactive pie or donut.
PolarAreaChart
Equal-angle sectors whose radius shows each value (a Nightingale rose).
PresenceKeyFn
Maps a block id to the presence key collaborators address it by.
RadarChart
Series as polygons over radial axes (a spider chart).
RangeChart
Intervals on one value axis — a timeline or Gantt chart — with progress and milestones.
SankeyChart
Flows between columns of nodes, each ribbon as thick as its value.
SankeySelection
What a Sankey diagram inspects and reports on activation.
SlashMenu
SpanHighlighter
Colours spans of a field’s text from the theme: each (range, colour) is a byte range of the text and the ink it takes (a reference in a formula, in the colour of the cells it outlines).
Suggester
A suggestion source: given the current text, return the completions to show.
SuggestionList
The floating list of suggestions under a field: the one list engine (FloatingList), its rows Suggestions.
SunburstChart
A hierarchy as rings of sectors, the root at the centre.
SwatchPainter
Paints swatch index into its rect in place of its flat colour: (scene, transform, rect, index, theme, text).
Treemap
Nested rectangles whose areas show each item’s share.