Expand description
Everything an app usually needs, in one import.
Modules§
- grid
- An enterprise-style data grid:
DataGridoverGridDatawithGridColumns. The query pipeline inqueryis pure and usable on its own. - validate
- Common validation rules for
FormField::validate.
Structs§
- Access
Tree - The whole accessibility tree of one window, as of the latest frame.
- Accessible
Control - A control with a name and a description of its own for screen readers, for one that has no label around it to take them from, such as a check box that says its own caption.
- Accordion
- Disclosures separated by hairlines.
- Alert
- A tinted message box with an icon, a title and a description.
- Alert
Action - What
Alert::actionadds to an alert. Its own type parameter, so an alert without a button staysSend. - Anchor
- A place links with
#namescroll to, landingoffsetpixels below the top of the scroll container. SeeBuildCx::anchor. - Animated
- A value on its way to a target. It holds no clock: every call takes the time.
- Area
Chart - A smooth area chart (sparkline style) of evenly spaced values.
- Aspect
Ratio - Keeps its content at a width-to-height ratio while filling the width.
- Attachment
- A file in an
AttachmentStrip. - Attachment
Strip - The files about to go with a message: icon or thumbnail, name, size, how to send each one and a button to take it out. It keeps nothing: the app holds the list and changes it when told.
- Audio
Player Button - A button that plays a recording and stops it, with its progress and, when there is one, a transcript to open. Space and Enter work on the button, as on any.
- Avatar
- A round avatar showing a picture, or initials on a color picked from the name.
- Badge
- A small pill label: status, counts, categories.
- BarChart
- A bar chart with labels under each bar and faint gridlines.
- Barcode
- A QR Code or a linear barcode, drawn so that every module lands on whole pixels. Scanners need dark on light, so it stays that way in dark themes.
- Binding
- A read/write handle to a value owned elsewhere (SwiftUI’s
@Binding). - BoxTransform
- A rectangle turned around a point, which is what a
TransformHandlesedits. - Breadcrumb
- A path of locations, the last one being the current page. With
on_navigatethe locations before it can be clicked. - BuildCx
- What a
Viewuses to describe itself during a build: theme access, interaction state, child building, layout boxes, painting and behavior. - Button
- A clickable, focusable button. Activates on click, Enter or Space.
- Button
Group - Buttons glued side by side, as one control. Each one stays a whole
Button, with its own style, icon, state and handler; marking one as chosen is up to whoever makes them. - Calendar
- A month grid to pick a date. Use ‹ › to change month. From the keyboard the grid is one Tab stop: arrows move by day and week, Home and End to the ends of the week, Page Up and Page Down by month, and Enter or Space picks.
- Calendar
Event - Something on a
EventCalendar’s day. - Canvas
- A box of a given size that draws whatever its closure appends to the scene. The closure receives the box’s absolute frame in logical pixels.
- Card
- A grouped surface lifted off the canvas:
bg-200fill,radius-xlcorners,shadow-softand a hairline border, padded byspace-6. - Card
View - Records as cards, in as many columns as fit, of which only those in sight are built. Arrows move between cards, Enter opens one and Space selects it.
- Carousel
- Slides with previous/next buttons, position dots and optional autoplay.
- Cell
Edit - A change someone made in a cell, before it is kept.
- Chart
- A chart of any
ChartKind. Its shapes are drawn into a picture at the screen’s density, and its labels are real text. Over the picture it says what each value is, under the pointer or with the arrow keys.ChartKind::Scatterand the sparklines stay as plain pictures, which take no focus, until given atooltip. - Chart
Card - A chart’s card: its title and description, what changes it, and what it says at the bottom, such as how it compares to last month.
- Chart
Reference - A dashed line across a
Chartat a value that matters, such as a target. - Chart
Tooltip - What a
Chartsays about the category under the pointer or the arrow keys. - Chat
- A conversation over a field to write in. It fills what its parent gives it and follows the newest message.
- Chat
Media - What a
ChatMessagecarries in its bubble, above its text: a photo, a document or a recording. The file stays with the app, which asks to open it fromSelf::on_open. - Chat
Message - One message of a
Chat. - Checkbox
- A check box with a label.
- Clipboard
- A shared handle to the clipboard, from
crate::BuildCx::clipboardorcrate::Ui::clipboard. - Code
Block - A line of text to copy, such as a command: shown apart from the prose, with a button that puts it on the clipboard.
- Code
Diagnostic - Something found at a place in the code: what
CodeEditor::diagnosticsmarks and what aPlaygroundlists under its editor. - Code
Editor - A source code editor: monospaced, no wrapping, line numbers, colors for the
language, Tab and Shift+Tab to indent, and Enter keeping the indentation. Ctrl or Cmd
with Enter is left to shortcuts, so a surrounding
Playgroundcan run the code. Diagnostics mark their lines and underline what they cover. - Collapse
- Animates its content’s height as it opens and closes: the “height: auto” transition. The content stays built until it has finished closing.
- Color
- A non-premultiplied RGBA color with components in
0.0..=1.0, in the sRGB color space (the space design tokens are written in). - Color
Pair - A foreground and a background color, one over the other, with a button that swaps them.
- Color
Picker - Picks a color: from a palette, on a shade square and a hue bar, or typed in hexadecimal. The square moves with the arrows, the bars with Left and Right.
- Color
Swatch - A round color to pick, from a palette of
ColorSwatches. Its hit target is 32 px; the color itself is 20 px. - Color
Wheel - Picks hue and saturation on a disc, by a drag or the arrow keys: left and right turn the hue, up and down change the saturation, with Shift for bigger steps. Holding Shift during a drag keeps the hue. A double click or Home takes the color out, keeping the hue.
- Column
- A table column: title, relative width and alignment.
- Column
Layout - One column’s place in a
GridLayout. - Combobox
- A select with a search box: type to filter the options.
- Command
- An action in the
CommandPalette. - Command
Palette - A searchable list of commands in a modal, opened with Cmd/Ctrl+K. Type to filter (fuzzy), use ↑ ↓ to choose, Enter to run, Escape to close.
- Compare
View - Two pictures to tell apart: side by side, or one over the other with a divider between what shows of each. The divider follows a drag from anywhere, the arrows (with Shift, further), Home and End, and a double click puts it in the middle. A picture that does not have the proportions of the box is fitted in it, centered.
- Confirm
Dialog - A question before something that cannot be undone. Holds what is being asked
until it is answered; show
ConfirmDialogonce, and callaskfrom anywhere. - Context
Menu - Opens a menu at the pointer on right click (or long press, planned) over its content.
- CountUp
- A number that counts up from zero to its value when it first shows on screen, and from where it is to its new value whenever the value changes, even halfway through a count. Its digits keep one width, so the number does not shake as it counts. Under reduced motion it shows the value at once.
- Crop
Area - What a
CropOverlayedits: a rectangle of the content and how far it is turned. - Crop
Overlay - A crop over a picture: what is out of the frame goes dark, with thirds inside the frame and
a fine grid while it turns. It is built on
TransformHandlesand draws the same lines asRuleOfThirdsGrid. - Curve
Editor - Editable points over a smooth curve that never swings past them. A press on empty space adds a point and a drag moves it; a double click or Delete removes one, except the two ends. From the keyboard, the arrows move the chosen point (with Shift, further), Page Up and Page Down choose another, and Enter adds one on the curve halfway to the next.
- Data
Grid - A virtualized data grid in the spirit of enterprise grids: sorting by one or
several columns, a filter row with operators and filters by value, a search panel,
grouping by dragging columns to the group panel, group summaries, footer totals,
columns to resize, reorder, pin and hide, a menu on each column, single or multiple
selection, keyboard navigation, in-place editing, cell templates, CSV export, pages,
saved scenarios, and rows that stay on a server (
DataGrid::remote). Only the visible rows are built, so 100,000+ rows stay smooth. - Date
- A calendar date (year, month, day), always valid.
- Date
Picker - A field that opens a calendar in a popover.
- Date
Range - Two days and the days between them, both included.
- Date
Range Picker - A field that opens two months to pick where a period starts and ends, with ready-made periods on the side. The first click starts the period, the second ends it.
- Date
Time - A date and a time of day, with no time zone.
- Date
Time Picker - A
DatePickerbeside aTimePicker, over one value. Picking a date first sets the time to midnight, and clearing the time clears both. - DayMark
- What marks a day of a
YearView. - DaySeparator
- A line with a word in the middle that divides a list by day: “Today”, “Yesterday”.
- Decode
Error - Why image bytes could not be decoded.
- Derived
- A cached value computed from other reactive values. It recomputes lazily, on the first read after a dependency changed, and notifies its own readers when that happens.
- Diagnostics
- What a platform shares with the panel of a
DiagnosticsHost: it records frames here, says how to describe the GPU, and opens the panel. - Diagnostics
Host - Shows
rootand, whileDiagnosticssays so, the diagnostics panel over it. Closed, it adds nothing to the UI: no element and no wake-up. - Dialog
- A modal dialog over a dimmed backdrop, shown while
openis true. Clicking the backdrop, the close button or pressing Escape closes it, and each of the three can be turned off for what must not be dismissed by accident. - Disclosure
- A header that shows or hides its content. Remembers whether it is open, or leaves
that to the app with
expanded. The header can carry any view as its title, a mark such as aDot, and an on/off switch of its own. - Divider
- A hairline separator. Horizontal dividers stretch across their stack.
- Dock
Area - Panels in a tree of splits and groups of tabs, at the left, the right, the bottom and the center of a space. Bars between them resize with the pointer or the keyboard, docks collapse from the strips on their edges, and panels close and come back.
- Dock
Child - A part of a split and how much of it it takes.
- Dock
Layout - The arrangement of a
DockArea: which panel is where, the sizes, and what is collapsed or closed. It holds ids only, so it can be kept in aState, compared and saved; what a panel shows comes from the app, by id, each time it is drawn. - Dock
Panel - A panel of a
DockArea: what it is called and whether it can close. What it shows comes from the function given to the area, by its id. - Document
Tab - An open document in a
DocumentTabs. - Document
Tabs - Tabs for open documents, as a browser or an editor has: they close, change places by dragging or with Alt and the arrows, are renamed with a double click, F2 or the menu, carry a color and a dot for what was not saved, and scroll with arrows when they do not fit. The arrows alone move between them, and Delete closes. The tabs belong to the app, which applies what the handlers tell it.
- Dot
- A small round mark of state, such as “not saved”.
- Drag
- A pointer drag on an element, in absolute logical pixels, with the element’s frame.
- Drop
Zone - A dashed area around any content, which takes files dropped on it and shows when they are
over the window. Unlike
FileUploadit keeps no list: the files go toDropZone::on_files, and what it holds and how it looks are up to the content. - Dropdown
Menu - A button that opens a list of actions. The first item takes focus as the menu opens; arrow keys move, Enter runs, Escape closes, and focus returns to the button.
- Effect
- A visual change applied to painted content without touching layout: what a compositor would do to a layer, here done to the display list.
- Empty
State - What an area shows when it has nothing: an icon, a title, a sentence and what to do.
- Event
Calendar - A month with its events inside each day, for agendas and bookings. Use a
Calendarto pick a date and this to see what is on them. - Expression
Editor - An expression editor, as report designers have: the expression in several lines, the fields, parameters, functions, operators and constants that can go in it, a search, the signature and description of the chosen one, and a check as the text changes.
- Eyedropper
- The button that arms an eyedropper, which looks pressed until a color is picked or Escape
disarms it. The color comes from an
EyedropperAreaor fromEyedropperState::pick: nothing here can read the screen. - Eyedropper
Area - Where an eyedropper picks from, over a picture. While armed, a click asks
samplerfor the color at that point of the content, in the units of the space; a point out of the content or aNonepicks nothing and leaves it armed. While not armed it takes no input. - Eyedropper
State - What an
Eyedropperand anEyedropperAreashare, and how a color reaches them: from the area, or from whoever knows the color under the pointer throughpick. Nothing here can read the screen, so the color always comes from the caller. - Faded
- A view drawn at an opacity, such as the last result a playground keeps while its code has
problems; see
ViewExt::opacity. Each shape fades on its own, so overlapping shapes show through each other while it is partly faded. - Favorite
Toggle - A heart that marks something as a favorite: filled when on, an outline when off.
- File
Browser - An explorer of folders and files: a breadcrumb that goes back, a header that sorts, and a
list of any length with icon, name, size and date. The entries are data from the app, which
answers
on_navigateandon_openwith another folder; it never touches the file system, so it serves a backup on a server as well as a disk. A click selects alone, Ctrl or Cmd adds, and Shift takes a range. The arrows, Home and End move, Space adds, Enter opens, and Backspace goes up. - File
Entry - A folder or file of a
FileBrowser. Nothing here touches the file system: it says what the app knows, wherever that came from. - File
Picker - A shared handle to the file chooser, from
crate::BuildCx::file_picker. - File
Request - What to ask of a
FilePicker. - File
Sort - The order of a
FileBrowser. Folders always come first. - File
Upload - A place to bring files, with the system’s chooser or by dropping them, and the list
of what came in. Refused files say why. The app reads
PickedFile::bytes, and sending them somewhere is up to it. - Filmstrip
- A horizontal strip of thumbnails that builds only what shows, so thousands cost the same as a few. Each cell comes from whoever uses it, with its own image, stars or badges; the strip draws the frame around it. A click selects alone, Ctrl or Cmd adds, and Shift takes a range; the arrows, Home and End move and keep the selected cell in view, Space adds, Enter activates. Arrows appear on the ends that have more to show.
- Filmstrip
Cell - What a cell of a
Filmstripis told when it is drawn. - Filter
Builder - Builds a filter out of lines of field, comparison and value, in groups that need all or any of their lines. It reads and writes the same expression language as the rest of RavenRS, and a part it cannot show as a line stays editable as text.
- Filter
Field - A field a
FilterBuilderoffers. - Filter
Layout - One column’s filter in a
GridLayout. - Floating
Panel - A round button in the corner of the window that opens a panel over the app. The app stays usable behind it, and Escape or the sphere closes it. Dragging it or pressing an arrow key sends it to another corner, and it stays there while the app runs.
- Floating
Toolbar - A translucent row of commands floating over its content, such as a zoom bar over a photo. Clicks on it never reach the content. Tab goes through its commands.
- FnView
- A view produced by a closure on every build; see
view_fn. - Footer
- The band that ends a page or an app: copyright, links, version, status.
- Form
Field - A labeled form field with a hint and validation messages.
- Form
Group - A titled set of fields in a
FormLayout, filling its columns row by row. - Form
Layout - The body of a form: groups of fields in columns, tabs below them, and a list of what keeps it from being saved at the top. Columns collapse when the form is narrow.
- Full
Screen - A shared handle to the full screen service, from
crate::BuildCx::full_screenorcrate::Ui::full_screen. - Glass
Card - A translucent card for Raven Glass compositions: a light, see-through fill and a brighter hairline over whatever is behind it.
- Grid
- Lays children out in equal-width columns, wrapping into rows.
- Grid
Cell Style - How a cell looks, by what its row holds. Colors come from the theme.
- Grid
Column - A data grid column: title, width, alignment, formatting and capabilities.
- Grid
Data - The rows behind a data grid. Cloning shares the same data; editing replaces the row list copy-on-write, so query caches stay valid until a change.
- Grid
Layout - Everything about how a grid is arranged: its columns in order, sorting, groups, filters and search. Turn it into JSON to keep it.
- Grid
Page - What a
RemoteRowsloader brought. - Grid
Request - What a
RemoteRowsloader must bring. - Grid
Responder - Answers one
GridRequest, now or later. An answer to a question nobody is asking any more, because the filters changed meanwhile, is dropped. - Grid
RowAction - A button at the end of every row, such as Edit or Delete.
- Grid
Scenario - A named
GridLayout, for someone to come back to with one click. - Grid
Table - The rows of a grid as it stands: the columns showing, the rows matching, in order.
- Grid
Table Column - A column of a
GridTable. - HStack
- Arranges children left to right.
- HelpTip
- A small “?” beside something that needs explaining. Its panel opens under the pointer and on keyboard focus, and a click keeps it open until a click elsewhere. Screen readers get the same words as the button’s description.
- Hero
Banner - A wide band in a strong color, readable from across the room: “You can remove the card”.
- Histogram
- Overlapping channels from ready-made bins, in a linear or logarithmic scale, with a mark at each end when too much of a channel piles up there. Where channels overlap, their colors add up, as light does, so each stays readable.
- Histogram
Channel - One series of a
Histogram: ready-made bins and the color that shows them. - Hotkey
- A key combination that runs a command: a key, with Cmd (macOS) or Ctrl, and Shift.
- Hover
Card - Rich content shown below a trigger while the pointer is over the trigger or the card itself.
- HueSaturation
- A color as a
ColorWheelholds it, without brightness. - Icon
- A vector icon from the built-in Lucide set, drawn as a glyph so it stays crisp at any size and takes the text color.
- Icon
Button - A square, icon-only button (ghost by default), for toolbars.
- Icon
Tile - An icon in a square tinted with its color, beside a title or at the top of a notice.
- Image
- Shows an image. Without a size it takes the image’s own size in logical
pixels; with only a width (or height) it keeps the aspect ratio. With
crossfade, a new image dissolves over the one before it. - Image
Data - Decoded pixels: RGBA8, straight (not premultiplied) alpha, sRGB, row-major.
Cloning is cheap; the renderer caches the GPU texture by
id. - Image
Field - A picture chosen by the person: what it looks like now, and buttons to change it or take it off. Takes PNG and JPEG, and refuses what it cannot show.
- Image
Lightbox - Pictures over the whole app, one at a time, with zoom by
ZoomPanView, a caption and a counter. It shows whileopenholds the index of a picture, and Escape or its X set it toNone. - Image
Quad - An image drawn into a rectangle, with optional rounded corners.
- Indicator
Step - One step shown by a
StepIndicator. - Inline
Rename - A name that turns into a field: a double click, F2 or Enter starts, Enter confirms, Escape cancels, and clicking elsewhere confirms. The keyboard goes back to the name after Enter or Escape. An empty name, or one that did not change, changes nothing.
- Input
Otp - Separate boxes for a one-time code; accepts digits by default.
- Insets
- Distances from each edge, used for padding.
- Kbd
- A keyboard key, for shortcuts:
Kbd::new("⌘K"). - Keyed
- Gives a view an explicit identity, like SwiftUI’s
.id(): when the key changes, the view is treated as new (its local state and scroll position start over). - Label
- A form label with an optional required marker and hint.
- Labels
- The words the built-in components use. Start from
Labels::default(English) orLabels::pt_br, change what you need, and give it toLocalized. - Lightbox
Item - One picture of an
ImageLightbox. - Linear
Gradient - A two-stop linear gradient.
startandendare relative to the shape’s rectangle:(0, 0)is its top-left corner and(1, 1)its bottom-right. - Link
- Text that opens an address when clicked or activated with the keyboard.
#namescrolls to an anchor in the app. - Links
- A shared handle to the links service, from
crate::BuildCx::linksorcrate::Ui::links. An address that starts with#scrolls to the anchor of that name (crate::BuildCx::anchor) instead of leaving the app. - List
- A bordered list; rows are separated by hairlines.
- List
Item - A list row: leading icon or avatar, title, subtitle and trailing text.
- Live
Runner - Runs the code of a
Playgroundwith the interpreter: its first function, which returnsimpl View, is called and shown. The program’s ownuselines are read and left alone; what it does not read comes back as diagnostics with their place. - Localized
- Everything inside uses these words instead of the English defaults: wrap the root of an app, or just the part that speaks another language.
- Lookup
Field - Picks a record from a list that is searched as you type, loaded from memory or through a callback that can go to a database or a server. Arrows move through the options, Enter picks and Escape closes. The chosen option can be cleared.
- Lookup
Item - An option of a
LookupField: the key the app knows it by, and the text people see. - Lookup
Request - What a
LookupFieldwants: up tolimitoptions matchingquery. - Lookup
Responder - Delivers the answer to a
LookupRequest, now or later on the UI thread. An answer to a search that was since replaced is ignored. - Lottie
- Plays a Lottie animation, drawn with curves on the GPU, sharp at any size. It sleeps when it ends or is paused, so that an idle window stays idle. Where motion is reduced it shows its last frame, still.
- Lottie
Animation - A Lottie animation. Cloning is cheap, and it can be drawn at any moment.
- Marquee
- The animated outline of a selection, the “marching ants”: a dark line with light dashes walking over it, which reads over any picture. Give it a rectangle, a closed path or loose segments, such as the edges of a mask, in the units of the space.
- Masked
Field - A text input that follows a pattern, such as
(00) 00000-0000, in which0is a digit,aa letter and*either;\makes the next character plain. The binding holds only what was typed, without the pattern’s own characters, unlessSelf::keep_literalsasks for them. - Memory
Clipboard - A clipboard that lives only inside the app (tests, headless use).
- Menu
Item - One entry of a
DropdownMenuor aContextMenu. It can run an action, show a check mark, show any view, or open a submenu at its side. - Menubar
- A horizontal bar of menus (File, Edit, View…).
- Minimap
- A small copy of the content with a rectangle around what is in view, linked to a
ZoomPanViewby the sameZoomView. A press or a drag moves the view there, and so do the arrow keys (with Shift, further). - Model
Choice - A model offered by a
ModelPicker. - Model
Picker - A choice of local AI models, however many there are, to download, try, use and remove. It shows what it is
given: deciding which models fit and doing the work is up to the app, or to
ravenrs-ai. - Model
Picker Labels - The words a
ModelPickershows. English by default. - Motion
- How a node animates. Attach it with
BuildCx::motion. - Multi
Progress - Several progress bars stacked, for work that has more than one part.
- Nine
Point Anchor - A three by three grid for choosing a point of reference on a box. The arrow keys move it.
- NoFile
Picker - A picker that chooses nothing, for where there is no system to ask (tests, headless use).
- NodeId
- A node of the element tree produced by one build. Only valid during the build that created it.
- Number
Field - A typed number. While it has focus it shows what is being typed, and without
focus the formatted value, such as
R$ 1.234,50. Text that is not a number in range stays visible for fixing and leaves the value alone. Up and Down step. - Number
Format - How numbers are written: decimals, affixes and separators.
- Overlay
Badge - A small view on a corner of another, such as a channel icon on an avatar or a count on a button. It sits centered on the corner, half outside.
- Page
Header - The top of a page: its title, a line about it, badges beside the title and actions at the end.
- Paged
Document View - A bar with the page, the total and the zoom, over a column of pages of which only those
that show are built, so the pictures of the others need not exist. Pictures come from whoever
uses it, page by page: until one is ready, the page shows a placeholder of the right size.
The fit follows the width of the view. Page Up, Page Down, Home and End move between pages,
and
+,-and0zoom. - Pagination
- Page navigation: Previous, numbered pages with ellipses, Next.
- PaintCx
- What
Paint::Richdraws with. - Picked
File - A file brought into the app, whole, in memory.
- Playground
- A place to write code and see what it makes, for documentation, tutorials and tools.
- Point
- A point in logical pixels, origin at the top-left corner.
- Popover
- Floating content anchored to a view, open while
openis true. Clicking outside or pressing Escape closes it. It opens below the view on a panel, unless told otherwise. - Progress
Bar - A horizontal progress bar;
valuefrom 0.0 to 1.0. It can carry a label and a percentage above it and a detail below. - Property
Row - A label on the left and its value on the right, for lists of properties.
- Protractor
- A band of ticks along an arc that sets an angle, by a drag from anywhere on it. A double click goes back to zero. The arrows change it by a step (with Shift, ten), Home and End go to the ends, and Delete goes back to zero.
- Quad
- A rounded rectangle with optional border and shadow. The renderer draws it with a signed-distance function, so corners stay crisp at any scale factor.
- Quad
Field - A plane of
columns × rowssquares drawn on every frame. At rest it lies like a floor that waves, lit in the accent and lifting under the pointer; as the scroll progresses through itsScrollRangeit stands up and becomes the picture its function paints, one color per square. Nothing is rebuilt or laid out while it moves. Under reduced motion the floor stands still. - Quad
Paint - A rounded rectangle painted behind an element’s children.
- Radio
Group - One choice among several, shown as radio buttons. Arrow keys move the selection and the focus together (wrapping); Home and End jump to the ends.
- Rating
- Stars for a score, to read or to give.
- Rect
- An axis-aligned rectangle in logical pixels.
- Recurrence
Editor - Edits a
RecurrenceRule: how often, every how many, on which weekdays and until when, and says in words what it chose.startis the first day, which the rule counts from. - Recurrence
Rule - A repeating schedule, starting from a date given when asking for its days. A date past the end of a shorter month falls on that month’s last day and returns to its own day after: the 31st is February 28, then March 31.
- Release
Note - What one version brought, for a
ReleaseNotes. - Release
Notes - An app’s versions, newest first: the list on the left, what the chosen one brought on the right, and buttons that walk from one to the next.
- Remote
Rows - The rows of a
DataGridon a server. The grid asksloaderfor a chunk at a time, only for what is on the screen, at most two at once, and keeps a limited number of them, so a table of any size costs the same to look at. - Resource
- A row of a
Scheduler: a person, a room, a machine, an account. - Responsive
- A view built from the viewport size; see
responsive. - Ribbon
- The ribbon.
- Ribbon
Group - A labeled set of commands inside a page.
- Ribbon
Item - A command in a ribbon group: a button, a toggle, or a button with a menu.
- Ribbon
Page - A tab of the ribbon.
- Rich
Text - Text with a little formatting, written the way chat apps write it:
*bold*,_italic_,~struck~,`code`, a fenced block of```, lines that start with*,-or>, and web addresses, which become links. - Rubber
Band - A rectangle drawn with a drag, in the units of the content. The selection follows the drag
through its binding, and
on_selectgets it on release; a press and release without moving clears it. Escape cancels a drag. - Rule
OfThirds Grid - A composition grid over a picture: thirds by default, or the other
CompositionGuides. It takes no input, so what is underneath still gets the pointer. - Ruler
- A horizontal or vertical ruler in the caller’s units. It picks a round step for the scale, so marks never crowd as the zoom changes. Numbers on a vertical ruler stack digit over digit, since text does not rotate.
- RunOutput
- What a
Runnerheard from the code since it was last asked. - Sankey
Chart - How much flows from what to what. Each
flownames its two ends, and nodes are created as they are named. Ribbons go from the color of their source to that of their target; under the pointer or with the arrow keys, what is connected stands out and the tooltip says how much. A screen reader hears every flow. - Scene
- An ordered display list. Reused between frames to avoid reallocating.
- Scheduler
- A timeline of resources: a row for each person, room or account, a time axis across the top, and events as bars that can be dragged along the time and between rows, resized by their ends, and drawn on an empty stretch. Weekends are shaded, and only what is in view gets built, so large plans stay smooth.
- Scheduler
Change - An event moved, resized, or drawn for the first time: where it would now be.
- Scheduler
Event - A bar on a
Scheduler. One with no length shows as a milestone. - Scheduler
Range - A shaded stretch of time across all rows, such as a holiday or a deadline.
- Scroll
Edge Arrow - A strip that scrolls, with an arrow over a fade at each end that has more to show. The arrow scrolls most of the strip at a time, and leaves when that end is reached.
- Scroll
Link - Turns scroll progress into an
Effect: opacity, movement and scale. - Scroll
Linked - Paints its content with the effect a
ScrollLinkgives for the current scroll position. Like the effects ofcrate::Motion, it changes how the content looks, not its layout or where it is clicked. - Scroll
Scene - A section that holds its content on screen for
lengthpixels of scrolling: the stage for steps that change as the reader scrolls. Inside it,ScrollLinkedviews measureScrollRange::Scene, from 0 when the content pins to 1 when the scene lets go. - Scroll
View - A vertically scrolling stack. It fills the space its parent gives it (or
height) and scrolls its children with the wheel or trackpad, showing a thin scrollbar while they move. - Section
- A titled group of content with an optional description, and actions at the end of its header.
- Segmented
Control - A row of mutually exclusive segments, like a compact tab bar. Arrow keys move the selection and the focus together (wrapping); Home and End jump to the ends.
- Select
- Picks one option from a list, shown in a field-like trigger. Enter, Space or an arrow key opens the list with the current option focused; arrows move, Enter picks, Escape closes, and focus returns to the field.
- Selection
Bar - A bar for what to do with several things chosen at once: how many, a way out and the actions, which are disabled while nothing is chosen. Escape also leaves. It goes where the field to write in was, or over a list; the app decides when it shows.
- Semantics
- How a node appears to screen readers: its
Role, name and state. - Shadow
- A soft drop shadow.
bluris the Gaussian standard deviation times two, matching what CSSbox-shadowcalls the blur radius. - Sheet
- A panel that slides over the UI from one edge, over a dimmed backdrop.
- Shimmer
Text - One line of text with a light passing over it, to say that something is under way.
- Shortcut
Hint Bar - A line of key hints under what they act on:
← → move · 1–5 rate. - Shortcut
Sheet - A dialog listing the keys of a screen, in groups. Escape, the backdrop and its X close it.
- Sidebar
- A navigation column:
Sidebar::new((SidebarSection::new("Workspace"), SidebarItem::new(...), ...)). - Sidebar
Brand - The name of an app at the top of a
Sidebar, with its mark. Reduced to icons, only the mark stays, in line with the icons. - Sidebar
Group - A titled set of sidebar items that can fold away and carry actions.
- Sidebar
Inset - The page beside a
SidebarVariant::Insetsidebar: a raised surface that takes the remaining room. - Sidebar
Item - A sidebar row with an icon, a label, an optional count or badge, actions and a submenu.
- Sidebar
Parts - What
Sidebar::state,Sidebar::headerandSidebar::footeradd to a sidebar. Its own type parameter, so a sidebar without them staysSend. - Sidebar
Section - A small caption that groups sidebar items. Reduced to icons, it is a hairline.
- Sidebar
Skeleton - Placeholder rows while a sidebar’s items load.
- Sidebar
State - Whether a
Sidebaris open, shared with whatever toggles it. - Sidebar
Trigger - A button that opens and closes a
Sidebar, sharing itsSidebarState. - Silence
- A provider that makes no sound (tests, headless use).
- Size
- A size in logical pixels.
- Skeleton
- A placeholder block shown while content loads.
- Slider
- A draggable value between
minandmax. Arrow keys adjust it bystep. - Sort
Layout - One sorted column of a
GridLayout. - Sortable
List - A list that reorders by dragging a row, with a line showing where it will land, or with Alt
and the arrows, Home and End. The arrows alone move between rows, and each move is announced to
screen readers. The order belongs to the app, which applies what
on_reordertells it. - Sound
- A shared handle to the sound system, from
crate::BuildCx::soundorcrate::Ui::sound. - Sound
Clip - A short sound in memory: one channel, ready to be played many times. Cloning shares the samples.
- Spacer
- Flexible empty space that pushes its siblings apart inside a stack.
- Spinner
- An indeterminate activity indicator. With reduced motion it is static.
- Splash
Screen - The opening screen that covers the window while the app loads: a logo or icon, the app’s name, a status message and its progress.
- Split
Button - A button with a main command and, beside it, a menu of alternatives, such as Save, with Save and Close and Save and New.
- Split
Handle - A bar to drag that changes a size, for a pane an app lays out itself, such as a strip
along the bottom of a window. Arrow keys move it too, Shift goes further, and Home and
End go to the limits.
SplitPanesis built on it. - Split
Pane - One pane of a
SplitPanes. - Split
Panes - Any number of panes side by side or stacked, with a bar to drag between each two. Panes can have limits, and the sizes can be kept by the app to remember them.
- Splitter
- Two panes with a draggable divider between them. Arrow keys move the divider too. For
more panes, or limits in logical pixels, see
SplitPanes. - Spring
- A damped harmonic oscillator with unit mass, solved in closed form.
- Stat
- A headline number with a label and an optional change indicator.
- State
- A mutable value that notifies the observers that read it. Cloning a
Stateclones the handle, not the value: all clones share one value. - Status
Bar - The one line at the foot of an app window that is always there: the version, what is going on in the background, a notice with its actions.
- Step
Badge - The round mark of a step by itself: its number, a check mark when done, or an alert
when it has a problem. For a list of steps, see
StepIndicator. - Step
Indicator - Where a task in steps stands, for an app that lays out the steps itself. A
Wizardhas its own row of these. - Stepper
- Decrement / value / increment, for small integer quantities. When focused, arrow keys step by one and Home / End jump to the limits.
- Sticky
- Keeps its content on screen while its parent scrolls past, like CSS
position: sticky: it staystoppixels below the top of the scroll container and leaves with the bottom of its parent. - Styled
- A view wrapped in a box with layout and background modifiers; see
ViewExt. - Swatch
Grid - A grid of
ColorSwatches. The arrow keys walk through it, and the handler gets the keys held with the click, so that a modifier can mean something else, such as “for the background”. - Table
- A simple data table with a header, hover-highlighted rows and numeric columns.
- Tabs
- A tab bar with one content view per tab; only the selected one is built. Arrow keys move between tabs and open them; Home and End jump to the ends.
- TagBox
- Picks several values from a list, showing each as a tag with a button to take it off. The list searches as you type; Enter picks or takes off the highlighted option, Backspace on the empty search takes off the last tag, Escape closes.
- Text
- Text in the theme’s type scale. It wraps to the width its container offers.
- Text
Area - A multi-line text input bound to a
String. Enter starts a new line, the arrows move between lines, and it scrolls pastSelf::rowslines. - Text
Field - A single-line text input bound to a
String. - Theme
- A complete theme: palette plus the shared scales.
- Theme
Editor - Changes the tokens of the theme on screen, which follows at once: colors, the radii and the sizes of text. It warns when text stops being legible on its ground, and copies what changed as JSON, or takes it back, so an application can keep it wherever it wants.
- Theme
Picker - A menu of themes that says which one is on, small enough for a sidebar’s footer or a
toolbar. For the three of them side by side, in a settings page, see
ThemeSwitcher. - Theme
Switcher - Switches the app between its dark, light and glass themes: Raven Dark, Raven Light and Raven Glass, unless the app has its own.
- Ticker
- Repeats its content in a strip that keeps moving sideways, for logos, quotes or samples of components. It moves on the GPU’s clock without rebuilding, and stands still under reduced motion.
- Tile
- One tile of a
TileLayout. - Tile
Layout - A dashboard: tiles in a grid of cells, that people can drag to another place and resize. As the width falls, it uses fewer columns. From the keyboard, on a tile’s handle: arrows move it, Shift with arrows resizes it.
- Tile
Spot - Where a tile stands: which tile, and how many cells it takes. The order of a list of these is the order on the screen.
- Time
- A time of day, with no date or time zone.
- Time
Axis - The stretch of time a
Schedulershows, how wide it is and how it is marked. - Time
Link - Turns the clock (seconds) and an element’s frame into an
Effect, worked out on every painted frame while the element shows. SeeBuildCx::time_linked. - Time
Picker - A 24-hour time field: type it, or choose from a list in steps of
Self::step_minutes. - Time
Point - A moment on a calendar, to the minute, with no time zone.
- Timeline
- Things along time, on named tracks, under a ruler with markers and a playhead.
- Timeline
Item - One block on a
TimelineTrack. - Timeline
Marker - A named moment, on the ruler of a
Timeline. - Timeline
Track - A row of a
Timeline. - Title
Bar - A title bar drawn by the app: what comes first, the title, the actions and the buttons of the window. A button shows only when it has a handler. A double click on the bar does the same as the maximize button.
- Toast
- One notification in a
Toaster. - Toast
Extras - What a toast can do besides showing: a button, something to run once it is gone, and a place of its own.
- Toaster
- Displays
Toastsstacked in a corner of the window, the bottom-right one unless told otherwise; each disappears after its duration or when closed. - Toasts
- A handle to show toasts from anywhere (event handlers, async tasks).
Place one
Toasterin the UI to display them. - Toggle
- An on/off switch.
- Toggle
Button - A button that stays pressed: bold, italic, “pin”, “mute”.
- Toggle
Group - A row of toggle buttons where one (or several) can be on. Arrow keys move the focus between buttons; Space or Enter toggles the focused one.
- Tool
Rail - A narrow bar of tools with their names under their icons, of which one is open: what sits along the side of an editor, with the open tool’s panel next to it.
- Tool
Rail Item - One place of a
ToolRail: a tool, and the others that can take its place. - Toolbar
- A row of commands. What does not fit moves to a menu at its end, from the last command back, so the order never changes.
- Toolbar
Action - One command of a
Toolbar. - Tooltip
- Shows a short label above its content while the pointer is over it, with the key that does the same when there is one.
- Transform
Handles - Eight handles around a box, one that turns it and the point it turns around, drawn over
content in the units of a
ContentSpace. It edits aBoxTransformand draws nothing but the box: the renderer cannot turn a picture, so applying the geometry is up to whoever owns it. - Tree
Node - One item of a
TreeView, with the items under it. - Tree
View - A list of items that open to show more items: a chooser, a menu of a module, the
structure of a document. Arrows move and open, Enter opens the item, Space checks it
or selects it. With a
height, only the visible lines are built. - Ui
- The platform-independent UI runtime: owns the root view, reacts to input and
state changes, and produces a
Scenefor the renderer. - UiStats
- Work a
Uihas done since it was created. These are exact counts, so a test can demand that moving the pointer shapes no text or that an animation builds nothing. - UiWaker
- Rebuilds the UI from any thread, when background work has something to show.
- VStack
- Arranges children top to bottom.
- Value
Slider - A value shown small, as “100% ▾”, that opens a
Sliderin a popover, for bars with no room for a slider of their own. - Virtual
List - A list of any length that builds only the rows that show, with rows of any height. They
are laid out and measured as they appear, and what was measured is kept by key, so going
back finds them at the right size. It can jump to a row, stay at the end as a chat does,
and keep what is on screen still when rows come in above it. With nothing to select, the
arrows, Page Up, Page Down, Home and End scroll; with a
selectionoron_activate, they move between rows, and Enter or Space activates. - Weight
- Font weight on the CSS 1–1000 scale.
- Widget
Id - Stable identity of a widget across rebuilds, derived from its position in the
view tree (or from an explicit key, see
BuildCx::keyed_child). Hover, press and focus are remembered perWidgetId. - Wizard
- A task in steps: where it stands at the top, one step on the screen, and buttons to go on. A step can refuse to be left, and steps already done can be reopened.
- Wizard
Step - One step of a
Wizard. - Year
View - The twelve months of a year, with a dot on the days that have something and a click on any of them. As many months go on a line as fit. From the keyboard the year is one Tab stop: arrows move by day and week, Home and End to the ends of the week, Page Up and Page Down by month, and Enter or Space picks.
- ZStack
- Views on top of each other, the later ones above, in a box as large as the largest.
- Zoom
Control - Fit, 1:1, the current percentage and the buttons that zoom in and out, for a
ZoomView. It works from a toolbar of its own or inside aFloatingToolbar. - Zoom
PanPaint - Where drawn content goes, for
ZoomPanView::customandMinimap::custom. - Zoom
PanView - Zoom and pan over content: pinch or Cmd/Ctrl with the wheel to zoom, a drag or the wheel to
move, a double click between fit and 100%, and the keys
+,-,0,1and the arrows (with Shift, further). A thrown drag coasts to a stop, which asks for frames only meanwhile and never happens with reduced motion. The content cannot leave the view. - Zoom
View - How a picture is being looked at: how much it is enlarged and which part is in the middle.
ZoomPanView,ZoomControlandMinimapshare one through aBinding, and each changes what it is responsible for.
Enums§
- Access
Action - What assistive technology can ask a node to do.
- Align
- Cross-axis alignment of a stack’s children.
- Anchor
Point - One of the nine points of a
NinePointAnchor. - BoxHandle
- One of the eight handles of a
TransformHandles. - Button
Size - Height and horizontal padding of a
Button. - Button
Style - Visual emphasis of a
Buttonor other control. - Cell
Align - Horizontal alignment of a column’s cells.
- Chart
BarFrom - Where the bars of a
Chartgrow from. - Chart
Curve - How a line goes from one point to the next.
- Chart
Grid - Which gridlines a chart has, as they look on the screen.
- Chart
Indicator - How a row of a
ChartTooltipshows its color. - Chart
Kind - The kind of a chart.
- Chart
Label At - Where a label sits relative to what it names.
- Chart
Legend - Where a
Chart’s legend goes. - Chart
Polar Grid - The shape of the grid of a radar or radial chart.
- Chart
Stack - How series share the same category.
- Chat
Author - Who wrote a
ChatMessage. - Code
Language - The language a
CodeEditorcolors. - Compare
Mode - How a
CompareViewshows its two pictures. - Compare
Side - One of the two pictures of a
CompareView. - Composition
Guide - The lines a
RuleOfThirdsGriddraws. - Content
Mode - How an image fills its frame when their aspect ratios differ.
- Content
Space - How the coordinates of a widget drawn over content relate to the screen, so that a selection or a crop is told in the units of the content whatever the zoom.
- Cursor
Icon - Cursor the UI asks the platform to show.
- Dock
Drop - Where a panel is sent by
DockLayout::move_panel. Places are named by a panel that is there, since the id of a panel is what stays the same as the tree changes around it. - Dock
Edge - A side of a group of tabs, where a split opens.
- Dock
Layout Error - Why a saved text could not be read. Nothing was changed; the app goes on with the arrangement it has, or the one it starts from.
- Dock
Node - A part of the tree: tabs, or parts side by side or stacked.
- Dock
Side - One of the four places a
DockAreahas. - Dock
TabBar - When a group of a
DockAreashows its tabs. - Drag
Phase - Phase of a pointer drag that started on an element.
- Easing
- How a timed transition moves from start to end.
- File
Sort Column - What a
FileBrowsersorts by. - Fill
- A color given either as a theme role (preferred, follows theme changes) or as a literal color.
- Filter
Field Kind - What a field of a
FilterBuilderholds, which says how its values are written. - Floating
Corner - A corner of the window, where a
FloatingPanelrests. - Frequency
- How often a
RecurrenceRulecomes back. - Grid
Export Format - A file format of a grid’s Export menu.
- Grid
Table Kind - What a column holds, for a file to show it well.
- Histogram
Scale - How a
Histogramturns counts into heights. - Icon
Name - Icons available to
Icon, from the Lucide set. - Justify
- Main-axis distribution of a stack’s children.
- Lottie
Error - Why a file could not be read.
- Model
Status - Where a
ModelChoicestands. - Paint
- What an element draws before its children.
- Placement
- Where an overlay is placed relative to its anchor.
- Recurrence
End - When a
RecurrenceRulestops. - Ribbon
Size - How much room a ribbon command takes.
- Role
- What kind of control or content a node is, as assistive technology names it.
- Sankey
Align - Which column a node goes to, among those its flows allow.
- Scroll
Range - Which stretch of scrolling a
ScrollLinkcounts as going from 0 to 1. - Selection
Mode - How rows can be selected.
- Semantic
- Semantic color roles. Widgets refer to roles, never to raw colors, so every component follows the active theme.
- Side
- The edge a
Sheetslides in from. - Sidebar
Collapse - What a
Sidebardoes when it closes. - Sidebar
Variant - How a
Sidebarsits next to the page. - Sort
Direction - Order of a sorted column.
- Step
State - Where a step of a task stands.
- Summary
- An aggregate shown in group rows and in the footer.
- Symbology
- A barcode format.
- Tabs
Variant - How a
Tabsbar looks. - Text
Style - Named steps of the type scale.
- Time
Scale - What one tick of a
TimeAxisis. - Timeline
Edit - What someone did to a block, for the app to apply.
- Toast
Position - Where in the window a
Toasterstacks its toasts. - Toggled
- State of a check box, switch or toggle button.
- Tone
- Tone of a badge or alert. Status tones always come with a word or an icon, never color alone.
- Transition
- How a value travels to a new target.
- UiActivity
- What just happened in the UI, for something watching it as a whole.
- Value
- A cell value.
Traits§
- Clipboard
Provider - Reads and writes the system clipboard. Platform layers install one with
crate::Ui::set_clipboard; until then, an in-memory clipboard is used. - Component
- A component composed from other views, SwiftUI style.
- File
Picker Provider - Asks the person for files. Platform layers install one with
crate::Ui::set_file_picker. - Full
Screen Provider - Puts the app in full screen and takes it out. Platform layers install one with
crate::Ui::set_full_screen: the browser asks for the page’s full screen, the desktop turns the window into a borderless full screen. - Link
Opener - Opens an address outside the app. Platform layers install one with
crate::Ui::set_links: the browser navigates, the desktop asks the system’s browser. - Runner
- What turns the code of a
Playgroundinto something to show. - Sound
Provider - Plays sounds and speaks. Platform layers install one with
crate::Ui::set_sound; until then, nothing is heard. - View
- Anything that can appear in the UI.
- ViewExt
- SwiftUI-style modifiers available on every view.
- ViewSeq
- An ordered collection of child views: tuples of up to 12 views,
Vec<V>andVec<AnyView>.
Functions§
- __
live_ view - How a view of type
Tgoes where anAnyViewgoes. - days_
in_ month - Number of days in
month(1–12) ofyear. - decode_
image - Decodes PNG or JPEG bytes into RGBA pixels.
- highlight_
rust - The colored stretches of Rust code, as char indices. It reads tokens, not syntax, so it never fails: unfinished strings and comments color to the end.
- is_
leap_ year - Whether
yearhas a February 29 (Gregorian rules). - live_
registry - Everything the interpreter can reach in the components and the crates under them.
- responsive
- Builds a view from the viewport size (in logical pixels), like SwiftUI’s
GeometryReader: use it to switch layouts at breakpoints. - view_fn
- Wraps a closure as a view. Whatever state the closure reads is tracked, so this is the simplest way to make a region of the UI depend on state:
Type Aliases§
- Activity
Observer - Receives what happens in the UI, with the clock; see
BuildCx::observe_activity. - AnyView
- A type-erased view, for heterogeneous lists and dynamic UI.
- Drag
Handler - Called for each phase of a pointer drag on an element.
- DrawFn
- Custom drawing callback: receives the element’s absolute frame in logical pixels.
- KeyHandler
- Called with the focused element’s key presses; returns true when it handled the key.
- LiveFn
- Drawing that changes over time: receives the element’s frame and the clock in seconds. It runs on paint-only frames, at most 60 times a second, for as long as the view is built. With reduced motion it runs once, at time zero.
- RichFn
- Draws a node with
PaintCx, given its absolute frame. - Rule
- A validation rule:
Ok(())or a message for the user.