Expand description
frus — the framework’s facade: a single dependency (frus) is all an
application needs. It re-exports the framework layer (frus-shell) and the widgets
(frus-widgets), plus the single entry point main!.
ⓘ
use frus::{Application, Command, Widget, Theme, button, column};
#[derive(Default)]
struct App { count: i32 }
impl Application for App {
type Message = Msg;
fn update(&mut self, _m: Msg) -> Command<Msg> { Command::none() }
fn view(&self, _t: &Theme) -> Box<dyn Widget<Msg>> { todo!() }
}
// One entry point, for every platform.
frus::main!(App::default());The thin desktop binary calls the generated run(): fn main() -> frus::anyhow::Result<()> { my_app::run() }. On the web, the application keeps a wasm-bindgen dependency (targeted
at wasm32), which the generated #[wasm_bindgen(start)] entry point needs.
Modules§
- disabled
- The disabled state every control shares: two colours and a four-part contract. One disabled state, shared by every control that can be unavailable.
- dismiss
- Swipe-to-dismiss: the
dismiss::Dismissiblewidget and its retained state.Dismissible— swipe an item aside to remove it. - fonts
- Registering the application’s own faces, and naming the families text resolves
to. An application that ships its own can drop the bundled ones through the
bundled-*features — see the “Shipping” section of the getting-started guide. - form
- Form validation, pure and application-side:
form::Ruleandform::Form. Form validation — pure, application-side, in the Elm spirit. - host
- What a component asks of the application around it.
- ime
- The software keyboard’s vocabulary: which keys, and what the action key does. What the software keyboard should be, for the field that has focus.
- licenses
- An application’s licences: the registry, and the three widgets that show them —
LicensePage,AboutDialogandAboutListTile. - locale
- Which language the interface is in:
locale::Locale,locale::resolveandlocale::of. Which language the interface is in (locale.dart,app.dart:146). - localizations
- The words the framework itself says:
localizations::Localizationsandlocalizations::of. The words the framework itself puts on screen, in the reader’s language (material_localizations.dart). - refresh
- Pull-to-refresh: the
refresh::RefreshIndicatorwidget and its retained pull.RefreshIndicator— pull a list past its top edge to ask for fresh data. - scrolloverlay
ScrollOverlay: something drawn over a scroll region, built from where that region has got to.- scrollposition
- Where a scroll region is, and where an application is asking it to go.
- semantics
- Stating what a widget is from outside it: the
semantics::Semanticswrapper.Semantics: states what a widget is, from outside the widget.
Macros§
- asset
- An image embedded from a file, by path.
asset!("../assets/logo.png")isImage::memory(include_bytes!("../assets/logo.png")), and like everyinclude_*!the path is relative to the file that writes it. - column
- A flex column.
column![a, b, c]isFlex::column().child(a)…. The result stays chainable:column![a, b].gap(16.0).padding(20.0). - main
- Declares a frus application’s single entry point. Invoked exactly once (in the application’s library), it generates the entry point of every platform, all delegating to the same application:
- row
- A flex row.
row![a, b, c]isFlex::row().child(a).child(b).child(c). The result stays chainable:row![a, b].gap(8.0).align(...).
Structs§
- About
Dialog - The box that says what this application is, with a way through to the licences.
- About
List Tile - The row that opens the about box, for a settings screen or a drawer.
- Absorb
Pointer - Makes its child invisible to input and stops there: the barrier is itself an input target, so anything landing on it is swallowed rather than reaching what is painted behind.
- Accessibility
- The accessibility settings the platform reports about its user.
- Accessibility
Overrides - What an application wants to say about
Accessibilityinstead of the platform, one setting at a time. - Action
Listener - Watches intents without answering them: its message is sent as well as, not
instead of, whatever the answering
Actionssends. - Actions
- Answers intents for its subtree: the innermost
Actionsthat has the intent is the one that answers it. - Affine
- A 2D affine transform (a 2×3 matrix). A point
(x, y)becomes(a·x + c·y + e, b·x + d·y + f): a 2×2 linear part[[a, c], [b, d]](scale, rotation, shear) plus a translation(e, f). - Alert
- A message box.
- Alert
Dialog - A dialog that asks something: an optional icon, an optional title, some content, and the buttons that answer it.
- Aligned
- Places its child at
alignmentin the room it is given, at the child’s own size. - Alignment
- Where to place a child inside its containing box: two continuous fractions
in
[-1, 1].x = -1hugs the left,0centres,+1hugs the right;y = -1is the top,+1the bottom. Being continuous, it interpolates (crate::Lerp): aTween<Alignment>slides a child from one anchor to another. The nine usual anchors are provided as constants (Alignment::CENTER,Alignment::TOP_LEFT, and so on). - Alignment
Directional - A directional anchor: the horizontal axis is expressed start → end
rather than left → right.
x_start = -1hugs the start edge (left in LTR, right in RTL),+1the end edge. Resolved into a physicalAlignmentat render time from the reading direction — the anchor follows the text without the caller ever testing which way it runs. - Anim
- A widget’s animation progresses (
0.0..=1.0). - Animated
Align - Slides its child to each new anchor instead of letting it jump across the box. The
reference’s
AnimatedAlign. - Animated
Container - A box whose properties animate on every change: color, size, radius and
opacity — all with the same
(duration, curve). Builds aContainerunder the hood. - Animated
Cross Fade - Shows one of two children, and cross-fades to the other when told to, the box moving between their sizes as they fade.
- Animated
Default Text Style - Hands a moving text style down to everything below it rather than restyling the
subtree at once. The reference’s
AnimatedDefaultTextStyle. - Animated
Fractionally Sized Box - Grows and shrinks its share of the parent rather than taking the new share at
once. The reference’s
AnimatedFractionallySizedBox, and a name overcrate::FractionallySizedBox::animated. - Animated
Icon Data - A mark that is drawn from a number:
0.0is one state,1.0is the other, and everything between is the way across. - Animated
Icons - The bundled pairs, as one constant each — the same shape of thing
Iconsis for the static set. - Animated
Opacity - Fades its child toward
opacityon every change. SeeContainer::animated_opacity. - Animated
Padding - Moves its child’s inset rather than letting the space around it jump. The
reference’s
AnimatedPadding. - Animated
Positioned - Moves a stack layer between two sets of pins instead of letting it appear at the
new ones. The reference’s
AnimatedPositioned. - Animated
Rotation - Turns its child rather than letting it snap between angles — a paint-time
rotation, so nothing around it moves. The reference’s
AnimatedRotation. - Animated
Scale - Grows and shrinks its child rather than letting it jump between sizes — a paint-time scale, so nothing around it moves.
- Animated
Size - A box that follows its child’s size over time: when the child grows or shrinks, the
box moves to the new size over
durationseconds instead of jumping there, and the child is clipped to it on the way. - Animated
Slide - Slides its child by a fraction of its own size, at paint time, moving there rather
than jumping. The reference’s
AnimatedSlide. - Animated
Switcher - Moves between two different children when the value it shows changes: the old one leaves as the new one arrives — a fade by default.
- Animation
- The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
A live typed value: an
Animatablebound to anAnimationController(the result ofAnimatable::animate).value()samples the controller at the present instant — this is what the view reads at paint time. - Animation
Controller - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. Drives a value bounded to[lower, upper]through a pluggable simulation. - Annotated
Region - Says what the system bars over this part of the screen should look like — the
reference’s
AnnotatedRegion<SystemUiOverlayStyle>. - AppBar
- An adaptive application bar. A fluent builder finished by
AppBar::build. - AppBar
Theme - Defaults for
AppBar. - Aspect
Ratio - Imposes a
width / heightratio on its box: the box takes the full available width, then derives its height from the ratio (height = width / ratio). In a column 100 wide,AspectRatio::new(2.0)gives a 100×50 box andAspectRatio::new(0.5)a 100×200 one. - Async
Snapshot - What a component knows of a piece of work that finishes later: where it has got to, and
the last value it gave, if any — the reference’s
AsyncSnapshot. - Autocomplete
- A text field with suggestions.
- Autofill
Group - The fields of one form, declared together so that the platform can fill them and save them as a set.
- Back
Button - The back arrow, named in the reader’s language.
- Backdrop
- A filter over what has already been painted underneath a layer: the frosted glass a sheet, a bar or a dialog sits on.
- Backdrop
Filter - Filters what is already painted underneath it, then paints its child over the result: the frosted glass a sheet, a bar or a dialog sits on.
- Backdrop
Group - Declares that the grouped backdrops inside it share one filtered copy of what is underneath, rather than one each.
- Badge
- A small mark: a counted pill, or a dot.
- Badge
Theme - Defaults for
Badge. - Badged
- A
Badgepinned to a child: seeBadge::on. - BarChart
- A bar chart.
- Baseline
- Positions its child so that the child’s baseline lands
baselinelogical pixels below the top of this box, then grows to contain it. - Border
- A box’s border, side by side — the reference’s
Border(box_border.dart:431): each of the four sides its own colour and width. - Border
Directional - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
A box’s border, by the line’s start and end — the reference’s
BorderDirectional(box_border.dart:799): the start side is the left in a left-to-right script and the right in a right-to-left one. - Border
Radius - Corner radii, per corner (logical px).
From<f32>covers the uniform case: anywhere a radius is expected, a plain10.0still works. - Border
Radius Directional - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
A corner radius named by the reading direction rather than by the wall
(
border_radius.dart:621). - Border
Side - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
One edge of a shape: what colour it is drawn in and how thick it is
(
border_side.dart). - Bottom
AppBar - A bottom bar of actions, optionally notched for a docked floating action button.
- Bottom
Bar - A horizontal navigation bar at the bottom (phone).
- Bottom
Sheet - A modal sheet sliding up from the bottom: a background body + a retractable panel.
- Bouncing
Scroll Simulation - The rest of the animation layer: tweens chained and curved, the scroll simulations and their constants. A fling that rolls on friction while inside the content and springs back once past its edge — the behaviour of platforms that bounce.
- BoxDecoration
- The complete decoration of a box — the reference’s
BoxDecoration(box_decoration.dart:81). - BoxShadow
- A soft drop shadow.
- Breadcrumb
- A controlled breadcrumb trail.
- Build
Context - What a component is told when it is built: where it is, under which theme, and where its hooks keep their values.
- Builder
- A component built by a closure — the reference’s
Builder: a place in the tree that has aBuildContextof its own, for hooks, without declaring a widget type. - Button
- A clickable button: the reference’s
ElevatedButton,FilledButton,FilledButton.tonal,OutlinedButtonandTextButton, chosen byVariant. - Button
Style - How a button looks in each state — the reference’s
ButtonStyle(material/button_style.dart). - Button
Theme - Defaults for
Button: a style for each kind of button — the reference’sElevatedButtonTheme,FilledButtonTheme,OutlinedButtonThemeandTextButtonTheme— and, under them, plain values for every kind (milestone 632). - Callback
- A piece of work that an interaction sets off.
- Callback
Shortcuts - Binds keystrokes straight to messages, for when naming an intent would be
ceremony — the reference’s
CallbackShortcuts. - Caption
Buttons Theme - The window’s three buttons, as the application paints them on the title bar’s line (milestone 640). Every colour optional: unset, the desktop’s.
- Card
- A card: a surface container, in the theme’s colours.
- Card
Theme - Defaults for
Card. - Carousel
View - A controlled carousel.
- Center
- Centres its child in the room it is given — an
AlignedatAlignment::CENTER, and the same room. - Change
Notifier - A notifier with nothing to say but changed.
- Checkbox
- A checkbox, with an optional label.
- Checkbox
List Tile - A row whose whole width ticks a box.
- Checkbox
Theme - Defaults for
Checkbox. - Child
Constraints - What a child is given, per axis, by
ChildLayout::layout_child. - Child
Layout - What a
CustomMultiChildLayout’s function is handed: its children, by key, to measure and to place. - Chip
- A compact label — an attribute, a filter or an entry.
- Chip
Theme - Defaults for
Chip. - Circle
Avatar - A circle that represents a user: a picture cropped to the circle, or, without one, a child — usually their initials — centred on a colour.
- Circular
Progress Indicator - A circular progress indicator: an arc around a circle — determinate, sweeping
clockwise from the top to its value, or indeterminate, an arc that grows, shrinks
and turns while the length of the work is unknown (
progress_indicator.dart:863). - Clamped
Simulation - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. Pins a simulation’s position into[min, max]; the velocity keeps reporting the underlying simulation’s. This is what scrolling needs: momentum is computed freely, but the offset never leaves the bounds. - Clamping
Scroll Simulation - The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
A fling that decelerates like Android’s
OverScroller, then stops dead. - Clip
Oval - Clips its child to an ellipse inscribed in its box (a circle if the box is
square): the building block of a round avatar, a dot, a circular gauge whose
content is cropped to the disc. Same layout rules as
ClipRRect(a pass-through, with the shape inscribed in the box). - Clip
Path - Clips its child to an arbitrary path: the subtree is painted in a layer where a mask (the path, rendered by the GPU) erases everything outside it — stars, pointed cut-outs, speech bubbles, free-form shapes, with antialiased edges.
- ClipR
Rect - Clips its child to a rounded rectangle — a radius per corner. The subtree is painted in a layer whose shape erases whatever overflows the corners (antialiased edges) — the building block of a thumbnail, a squircle avatar, a card with soft corners (or only the top rounded, like a rising sheet) whose content (an image, a gradient…) hugs the rounding exactly.
- Clip
Rect - Clips its child to its box: whatever the child paints past the box’s edges is cut off —
a picture larger than its frame, content sliding in from outside, a transform that moves
something past the edge. Same layout rules as
ClipRRect, with square corners. - Close
Button - The cross that dismisses something, named in the reader’s language.
- Collapsing
Header - A header over a scroll region, interpolated between two heights by the region’s offset.
- Color
- An RGBA colour. Components lie in
[0.0, 1.0]. - Color
Filtered - Applies a
ColorFilterto every pixel of its child: greyscale, a tint, a contrast curve, a silhouette. - Color
Picker - A controlled colour picker, laid out as a grid of swatches.
- Color
Scheme - The color roles (Material 3) — the source of truth for the theme’s
colors. Widgets reference roles, never literal colors: changing scheme recolors
the whole app and guarantees the contrast of the
X/on_Xpairs. Written by hand for light and dark;from_seed(HCT) comes after. - Colored
Box - Paints its box in one colour behind its child — a
Containerwith a colour and nothing else, for the tree that only wants a fill. - Colors
- The named colours of the material palette, as plain
Colorconstants. - Column
- A vertical run of children.
- Command
- A batch of effects to run, possibly empty: background tasks, synchronous or asynchronous, and focus and scroll requests addressed by widget key.
- Component
- A component in the tree: a widget that is built into another when the tree is.
- Constrained
Box - Floors and ceilings on either axis, for a child that would otherwise be free to take any size.
- Constraints
Transform - What a
ConstraintsTransformBoxgives its child, per axis, and what it does about a child that comes back too big. - Constraints
Transform Box - A box that changes the space on offer before its child is laid out in it, and is then as big as what came back — never bigger than what it was itself offered.
- Container
- A decorated rectangular box.
- Cupertino
Colors - The palette of Apple’s platforms: their system colours, the colours of text, fills, backgrounds and separators, and a few plain ones — the reference’s table, value for value.
- Cupertino
Dynamic Color - A colour that adapts: up to eight values for one name, one for each combination of a light or dark interface, normal or high contrast, and the base or the elevated level.
- Cupertino
Text Theme - The type of the Apple-style widgets resolved: every style, its colour picked for where
it is used.
CupertinoTheme::ofmakes one. - Cupertino
Text Theme Data - The type of the Apple-style widgets as asked for: each style an application sets, or
Nonefor the default. - Cupertino
Theme - The theme of the Apple-style widgets resolved for where it is used: every value
concrete, every adaptive colour picked.
CupertinoTheme::ofmakes one. - Cupertino
Theme Data - The theme of the Apple-style widgets as asked for: each value an application sets, or
Nonefor the default — the reference’sCupertinoThemeData. - Curved
- The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
An
Animatablewhose progress is shaped by aCurvefirst — the result ofAnimatable::curved. - Custom
Layout - A layout a hook hands the walk: the function and the keys, one per child.
- Custom
Multi Child Layout - Places its children with a function the application writes: a circle of buttons, a fan of cards, a bubble whose tail points at its neighbour, nodes placed by a solver.
- Custom
Paint - A fixed-size custom canvas, painted by a closure.
- Data
Table - A text data table that sorts its own rows according to the sort state supplied, then
delegates the rendering to a
Table. - Date
Picker - A month calendar (or a pair of months in
range_dualmode). - Date
Time Picker - A date-and-time picker.
- Date
Time Range - A date-and-time range picker.
- Decode
Size - The image stores, for an application that loads its own pictures or sizes the cache. The size an image is decoded at, in physical pixels: the full size of the file, or a smaller one that the place it is shown at needs.
- Decorated
Box - Paints a decoration — a fill or a gradient, a border, corners, a shadow — behind its child, or in front of it.
- Decorated
BoxTransition - Paints a decoration that moves by a value the caller owns — its fill, gradient,
border, corners and shadow, each travelling by its own rule (see
BoxDecoration::lerp). - Decoration
Image - A picture painted as a background, and the reference’s fitting.
A picture painted as a box’s background — the reference’s
DecorationImage. - Default
Text Style - The text style a subtree hands down — the reference’s
DefaultTextStyle, and an inherited widget there for the reason it is a theme entry here: an app bar, a list tile or a dialog wants every run of words inside it to read the same way without reaching into each one, including the ones it never sees because a caller passed them in already assembled. - Default
Text Style Transition - Hands a text style that moves down to everything below it, by a value the caller
owns. The explicit half of
crate::AnimatedDefaultTextStyle. - Description
- What a
Semanticswrapper asks the walk to do with its subtree’s annotations. - Device
Frame - Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. The outline of a device, drawn around its screen. - Device
Insets - Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. The areas of the screen a device’s system keeps, in one orientation. - Device
Profile - Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. A device a desktop window can stand in for: its screen, the areas its system keeps, its keyboard, its platform and its outline. - Dialog
- A modal surface over the screen: rounded, elevated, held off the window’s edges.
- Dismiss
Spec - What a
Dismissibletells the frame about itself. - Dismiss
State - The retained state of one dismissible item.
- Dismissable
- One dismissible item of the frame: where it is, and how it was configured.
- Dismissible
- Swipe an item aside to remove it.
- Divider
- A separator: a thin line, centred in a taller box that gives it room to breathe.
- Divider
Theme - Defaults for
Divider. - Drag
Source - A widget that can be picked up, as the shell sees it.
- Drag
Target - A widget that can be dropped onto.
- Drag
Track - Where a drag lands along a widget that takes one: see
Widget::drag_track. - Draggable
- A widget that can be picked up and dropped on a
DragTarget. - Draggable
Scrollable Sheet - A sheet along the bottom of the box it fills, dragged between the heights it may rest
at — the reference’s
DraggableScrollableSheet. - Drawer
- A retractable side drawer: a background body + a panel, modal or docked.
- Drawer
Button - The bars that open the panel on the leading edge, named in the reader’s language.
- Drawer
Header - A fixed block at the top of a side panel, with a rule under it.
- Drawer
Theme - Defaults for
Drawer. - Drop
Slider Value Indicator Shape - The reference’s drop, a slider’s default indicator: a rounded label over a point that rests on the thumb.
- Drop
Zone - A widget that can be dropped onto, as the shell sees it.
- Dropdown
Button - A single-selection dropdown list (a floating menu).
- Dropdown
Menu - A dropdown that looks like a text field, filters as it is typed into, and drops its choices below itself.
- Dropdown
Option - One choice in a
DropdownButton’s list. - Dropdown
Theme - Defaults for
DropdownButtonand its options. - Edges
- A set of edges, as four independent flags — which sides of a box an operation
applies to. Used by
crate::SafeAreato pick the edges it insets, and byMediaQuery::remove_paddingto pick the ones it consumes. - Edit
- Edit state of an input field: cursor + selection anchor.
- Edit
Snapshot - A field’s value and where the caret was in it: what one step of undo restores.
- EndDrawer
Button - The bars that open the panel on the trailing edge.
- English
- The English table: every method left as the trait wrote it.
- Error
Summary - An error summary: an “error”-tinted card listing the messages (a “Please fix N
error(s)” title, then one bullet per message), to place at the head of a form after
an invalid submission. Built from
Form::errors. Empty when there is no message, and then it should not be displayed — seeis_empty. - Exclude
Focus - Nothing inside can take focus. The subtree is still drawn and still measured; it is simply not somewhere the keyboard can go.
- Exclude
Focus Traversal - Skipped by Tab, reachable by a click — a different question from
ExcludeFocus, which takes the subtree out of the keyboard’s reach altogether. A panel behind a sheet is unreachable; a toolbar button is reachable and simply does not belong in a form’s keyboard order. - Exclude
Semantics - Hides its child from assistive technologies while leaving it visible and interactive — for decoration that would only add noise to a screen reader, or for a label the control beside it already announces.
- Expanded
- Wraps a child so it takes the spare room along its parent’s main axis.
- Expansion
Panel - One panel of an
ExpansionPanelList: a header and what it hides. - Expansion
Panel List - A column of
ExpansionPanels drawn as one surface that splits as a panel opens. - Expansion
Panel List Theme - Defaults for
ExpansionPanelList. - Expansion
Tile - A tile that opens to show more.
- Fade
Transition - Fades its child by a value the caller owns:
0.0invisible,1.0solid. - Fill
Axes - The axes a widget asks to fill: on each, it takes the room its parent leaves it rather than shrink-wrapping its children.
- Filter
Context - A widget: a composable interface element.
- Fitted
Box - Scales its child to fit its own box according to a
BoxFit(like CSSobject-fit), then centres it. The child is measured at its natural size; the scale factor follows from that — hence the effect on layout (unlikeTransform, where the scale is set by hand). - Fitted
Sizes - A picture painted as a background, and the reference’s fitting.
The two sizes a fit settles on — the reference’s
FittedSizes. - Flex
- A flex container, row or column. It paints no decoration of its own.
- Flexible
- The child of a row or a column that takes at most a share of the room the others
left — the reference’s
Flexible, withExpandedas its tight case. - Floating
Action Button - The one action a screen is for.
- Focus
- Makes its child a focus stop: somewhere Tab can land and a click can focus, even when the child itself has no opinion about focus.
- Focus
Traversal Group - A traversal group: an order set inside it is resolved among its own members and nowhere else, so a reordered dialog does not reshuffle the page behind it.
- Focus
Traversal Order - An explicit traversal position for a subtree, smallest first.
- Focusable
- A focus stop: somewhere the keyboard can land, and what the traversal should make of it.
- Focusable
Action Detector - A focus stop that carries its own keys: focusable, with its own shortcut and action tables, so a control can answer the keyboard for itself while it has focus.
- Fractional
Translation - Offsets its child by a fraction of the child’s own size, at paint time, without touching layout.
- Fractionally
Sized Box - Takes a fraction of the parent’s size on each axis that is set:
width_factor(0.5)= half the parent’s width,height_factor(0.25)= a quarter of its height. An axis left unset follows its content (its natural size). The child fills the box (stretch /flex). - French
- The French table.
- Friction
Simulation - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. Friction deceleration — scroll and fling momentum — in closed form. - FrusApp
- An application: a root component, and how it is dressed.
- Future
Builder - Builds from a future — the reference’s
FutureBuilder, overBuildContext::use_future. - Gesture
Detector - Answers gestures on its child with the application’s messages: a tap, a double tap, a long press, a secondary click (the right mouse button), and a drag.
- Global
Shortcut - A key combination that reaches the application from anywhere, and what it does.
- GoRoute
- One place the router can go: a pattern of path, and the page it builds.
- GoRouter
- The routes, and the stack of pages showing which of them the person has been through.
- GoRouter
State - Where a page is: what location it was reached at, which route it is, and what the
location said — the values of the path’s
:parameters, and the query. - Gradient
Ramp - What a layer does at compositing, for painting a scene by hand. A gradient with any number of stops, for a path: its shape, its colours, what it does past its ends, and where it sits.
- Grid
Tile - A cell of an image list: a child, with a strip laid over its top or its bottom.
- Grid
Tile Bar - The strip of words laid over a
GridTile: up to two lines, with a slot at each end. - Grid
Tile BarTheme - Defaults for
GridTileBar. - Grid
View - A grid of
columnsequal columns. - Hct
- Colour science: the tone-based space the schemes are made in, and the surface tint. A colour in HCT: CAM16 hue (degrees), CAM16 chroma, and L* tone.
- Header
State - How far collapsed the header is, handed to its builder every frame it moves.
- Hero
- Marks its child as the same element as the hero carrying the same tag on the other side of a route transition.
- Hero
Spot - A hero seen by the render driver: which tag, which screen of the transition it belongs to, and where it sits.
- Hover
Region - How a region the mouse enters and leaves behaves, as the shell asks it of the frame (milestone 583).
- Icon
- A vector icon. Size and colour can both be customised; they default to
24px and the theme’s foreground colour (on_surface). - Icon
Button - A button holding one glyph.
- Icon
Button Theme - Defaults for
IconButton. - Icon
Data - Which icon — one of the bundled set, or a path of the caller’s own.
- Icon
Theme - Defaults for
Icon— the reference’sIconTheme, which is an inherited widget there for the same reason this is scoped here: an app bar, a list tile or a button bar wants every glyph inside it one colour without recolouring the words beside them. - Icons
- The bundled icon set, as one constant per icon:
Icons::ADD,Icons::STAR,Icons::ARROW_BACK, and 2 230 more — four times over, where the variant styles are compiled in. - Ignore
Baseline - Takes its subtree out of a parent’s baseline alignment: the text inside still has a baseline, and the row above is to pretend it does not.
- Ignore
Pointer - Makes its child invisible to input while leaving it laid out and painted.
- Image
- An image, fitted by
fitinto whatever box it ends up with. - Image
Data - An image’s pixels: 8-bit RGBA, sRGB, row by row from the top-left corner
(
width * height * 4bytes). Immutable once built. - Image
Filtered - Applies an
ImageFilterto its child: a blur, a dilate, an erode. - Image
Icon - A picture used where an icon would go: a brand mark, a flag, a custom glyph that is artwork rather than a path.
- Image
Piece - A picture painted as a background, and the reference’s fitting.
One part of a picture drawn somewhere: where, and which part, in
0..1of the picture (a negative width walks it backwards, which is how a picture is mirrored). - Ime
- The pair the platform is told when a field takes focus.
- Indexed
Stack - A stack that lays every child out and paints one of them.
- InkStyle
- What a widget declares when it takes ink: what colour to splash in, and the shape to keep the splash inside.
- InkTheme
- Defaults for the ink ripple — every surface that splashes, including
InkWellandButton. - InkWell
- A box that splashes when tapped — the reference’s
InkWell. - Input
State - The input state retained by the runtime, passed to the interface build.
- Insets
- Insets — padding or margin — per side, in logical pixels.
- Insets
Directional - Directional insets:
start/endinstead ofleft/right. In LTR,startis the left; in RTL it is the right. Resolved into concreteInsetsat layout time. - Inspector
Node - One observed widget: its identity, its painted box, its short name
(
debug_name) and its depth in the tree. - Intent
- What a keystroke means, named rather than implemented:
Intent("save"). - Interactive
View - The retained state of an
InteractiveViewer: the scale factor and the translation applied to the child. The screen pointqreceives the content painted flat atpaccording toq = scale · p + (tx, ty). The identity (scale = 1, zero translation) places the child as is in the viewport. - Interactive
Viewer - A pannable and zoomable viewport: its child fills the viewport at scale 1, then the user pans it (by dragging) and zooms it (wheel or pinch) about the cursor. Any content that overflows is clipped to the viewport. Ideal for a map, a detailed image, a plan, a diagram.
- Interval
- A timer a component asked for with
BuildContext::use_interval. - Intrinsic
- A box sized to what its content would like to be.
- Kanban
- A board of columns holding cards, which can be dragged from one column to another or reordered inside one.
- Kbd
- A key cap showing a label, such as “Ctrl” or “Enter”.
- Keep
Visible - A box a scroll region has been asked to keep in view, and which box it is.
- KeyStroke
- A key plus its modifiers — both the pattern a shortcut is bound to and the description of what was actually pressed. One type, because they are compared to each other and a second one would only be the first with the fields renamed.
- Keyboard
Listener - Hands every keystroke in its subtree to a closure — the reference’s
KeyboardListener, and the escape hatch for anything the tables above cannot say. - Keyed
- Wraps a widget in a stable identity key, delegating everything else.
- Layer
Filter - What a layer does at compositing, for painting a scene by hand.
Everything a layer applies to its own pixels at compositing time. All three are
optional and independent;
LayerFilter::is_noneis the fast path the renderer takes when nothing is asked for, which is nearly always. - Layer
Shader Mask - A colour blended over a subtree — the
ShaderMaskwidget’s payload. - Layer
Transform - What a layer does at compositing, for painting a scene by hand.
The transform applied to a layer (
Primitive::Layer) at compositing time: an arbitraryAffine(translation, per-axis scale, rotation, or any composition of them) in screen pixels. The layer is first rendered flat into a texture, as with group opacity, then composited transformed — so a single pass transforms a whole subtree (rects, text, images) without touching any individual primitive’s shaders. - Layout
Builder - Builds its child from the available size (
size → widget). - Layout
Cache - The relayout cache, retained in the
crate::Runtimefrom one frame to the next. - License
Notice - One licence text, and every package that ships exactly it.
- License
Page - The licences of everything an application links, as a page.
- Limited
Box - A box that caps its child only where nothing else does: where the room on offer has no
end — down a column’s scroll, along a list — the child may take at most
max_widthormax_height; where it has one, the box changes nothing. - Line
Chart - A line chart: the same
(label, value)series as aBarChart, but joined into a polyline (segments + markers) so that a trend can be read. - Linear
Gradient - A gradient along a line, from
begintoend(gradient.dart’sLinearGradient). Unset, from the centre of the left side to the centre of the right. - Linear
Progress Indicator - A progress bar: a track, and either a fill proportional to a value or two lines that run along it while the length of the work is unknown.
- List
Body - A named entry point for the body of a scrollable: the reference’s
ListBody. - List
Tile - A row of a list: leading, title, subtitle, trailing.
- List
View - A virtualised list with a fixed item extent.
- List
Wheel - A scrolling cylinder of rows, resting on one of them. See the module documentation.
- Listenable
Builder - Builds again whenever a
Listenablesays it changed — the reference’sListenableBuilder. - Listener
- Hears the pointer’s raw events on its child: down, move, up, cancel, and a mouse’s
hover — the reference’s
Listener. - Listener
Event - One raw event of the pointer, in the listener’s own coordinates (milestone 586).
- Locale
- A language, and optionally the script and the country it is written in
(
locale.dart). - Material
Banner - A message across the top of the screen with the actions that answer it.
- Material
Color - A colour ramp: one hue in numbered steps, from the palest (
50) to the darkest (900), plus theprimarystep the family is named after. - Media
Query - The surface an interface is being built for.
- Media
Scope - Describes the surface for its child and everything under it.
- Menu
Anchor - A popover: an anchor plus an optional floating panel.
- MenuBar
- The menus along the top of a window: File, Edit, View.
- Menu
BarTheme - Defaults for
MenuBar: the bar, the words on it, and the menus it opens (milestone 636). - Menu
Item - One entry of a
PopupMenuButton’s list: an action, or the rule between two groups of them. - Menu
Path - Which menu of a
MenuBaris open, and how deep: the index of the open menu on the bar, then of the open submenu in it, and so on. Empty when every menu is closed. - Menu
Theme - Defaults for
PopupMenuButtonand its items. - Modal
Barrier - What a subtree is not allowed to contribute to the frame.
- Mouse
Region - Hears the pointer coming into its child, moving over it and leaving it, and sets the cursor shown while it is there.
- NavScaffold
- Adaptive navigation shell: a bottom bar, a rail, or an extended rail, by size.
- Navigation
Bar - A navigation bar: a title + an optional back button.
- Navigation
Destination - A declared destination: everything the caller said about one entry in the list — its mark, its name, the mark it swaps to while selected, a badge, a tooltip, and the decorations that belong to this entry rather than to the list.
- Navigation
Drawer - A panel of destinations: the navigation’s widest form.
- Navigation
Rail - A vertical navigation rail (tablet / desktop).
- Navigator
- A screen container with a slide transition.
- NoSlider
Shape - No part at all: the reference’s
noThumb,noOverlayandnoTickMark, and a track or an indicator that paints nothing. - Offstage
- Takes its child out of the layout entirely: no box, no paint, no input, no accessibility. The surrounding row or column closes up as if the child were not written at all.
- Opacity
- Applies a fixed group opacity
[0,1]to its child, as one block. SeeContainer::opacity. - Orientation
Builder - Builds from the orientation of the box it is given — the reference’s
OrientationBuilder: landscape when the box is wider than tall, portrait otherwise. - Overflow
- The constraints an
OverflowBoxhands its child, and where the result sits. - Overflow
Bar - A row of children that folds into a column when they do not fit on one line.
- Overflow
Box - A child laid out to constraints of its own, free to be bigger than the box that holds it, and painted over whatever is around it.
- Overflowing
- A box whose children do not fit inside it, and by how much.
- Overlay
Portal - A portal: an anchor (in the flow) and an optional floating overlay.
- Overscroll
Glow - The glow on one edge of one scrollable.
- Overscroll
Stretch - The stretch along one axis of one scrollable.
- Package
- A package, as cargo names it.
- Padding
- Insets its child by
paddingon each side: the box is the child’s size plus the padding, and the child is handed what is left of the room once the padding is taken out. - Page
Pose - How one page looks at a moment of a transition.
- Page
Selector Theme - Defaults for
TabPageSelector— the row of dots that says which page of several you are on. - Page
Snap - How a scrollable snaps to pages, as the shell and the runtime see it.
- Page
Transitions Theme - How the theme’s platform chooses a
PageTransitionsBuilder: the reference’sPageTransitionsTheme. - Page
View - A scrollable that rests only on page boundaries.
- Paged
View - The description of a paged view, exposed to the render driver.
- Pagination
- A controlled page picker; pages are 1-indexed.
- Paint
Cache - The paint cache, retained in the
crate::Runtimefrom one frame to the next. - Path
- A vector path: a sequence of
PathVerb. Built in builder style (chainable), and consumed at render time. - Placeholder
- A crossed box standing in for a widget not written yet.
- Platform
- Facts about the machine the application runs on, fixed for the life of the
process. Unlike
TargetPlatform, nothing overrides them. - Point
- A 2D point.
- Polynomial
Fit - The rest of the animation layer: tweens chained and curved, the scroll simulations and their constants. A polynomial fitted to a set of weighted points, and how well it fits.
- Popup
Menu Button - A controlled action menu, opened and closed by the application.
- Positioned
- A layer pinned against a
crate::Stack’s edges. See the module documentation. - Positioning
- What a
Positionedpins, in logical pixels from the stack’s edges.Noneon an edge means “not pinned there”. - Radial
Gradient - The three gradients and how they tile.
A gradient round a centre (
gradient.dart’sRadialGradient): the first colour atcenter, the last on the circleradiusround it. With afocalpoint, the first colour is on the circlefocal_radiusround that point instead, and the gradient runs between the two circles. - Radio
- One radio option, internal to the group. One radio button.
- Radio
Group - A single-selection group of radio buttons.
- Radio
List Tile - A row whose whole width chooses one option.
- Radio
Theme - Defaults for
RadioGroup. - Range
Slider - A range slider: two thumbs bounding an interval of
min..=max, controlled and draggable — the reference’sRangeSlider. - Rating
- A star rating:
valueout ofmax. - Rect
- An axis-aligned rectangle, in logical pixels.
- Rectangular
Slider Value Indicator Shape - The reference’s rectangular indicator, a range slider’s default: a box with corners of 4 over a small triangle whose point is above the thumb.
- Refresh
Indicator - Wraps a scrollable so that pulling it past its top edge asks for fresh data.
- Refresh
Pull - The retained state of one refresh area, held by the
crate::Runtime. - Refresh
Spec - What a
RefreshIndicatorwidget tells the frame about itself: everything the shell and the paint need, without either of them holding on to the widget. - Refreshable
- One refresh area of the frame: where it is, and what it was configured with.
- Region
Point - One end of a
RegionSelection: a text, and a character boundary in it. - Region
Selection - The selection an area holds: where the press landed, where the pointer is now, and what that makes selected in each text.
- Reorderable
List - A list whose rows can be dragged into a new order.
- Resolved
Text Style - Type as the renderer receives it, and the framework’s defaults.
A
TextStylewith every question answered: what to measure with, and what to draw. - Responsive
- Selects a subtree from the size class, delegating to whichever is chosen.
- Rich
Text - A rich text paragraph. It wraps at the width it is offered, as
crate::Textdoes and for the same reason: a piece of prose in a box narrower than itself is a paragraph. - Ripples
- Every splash currently alive on one widget.
- Rotated
Box - Rotates its child by
quarter_turnsquarter turns (90° each, clockwise), changing the layout: for an odd number of quarters, the box presented to the parent has the child’s width and height swapped (a vertical label in a sidebar, a rotated chart axis label…). - Round
Slider Overlay Shape - The reference’s round halo: a disc
radiusacross at full activation, grown from the thumb’s centre. - Round
Slider Thumb Shape - The reference’s round thumb: a disc
radiusacross from its centre over the shadow its elevation casts. A ring two pixels wide when the palette has a thumb border; on a range slider, a one-pixel ring in the surface colour on the thumb on top. - Round
Slider Tick Mark Shape - The reference’s round tick mark: a dot
radiusacross from its centre, a quarter of the track’s height unless given. - Rounded
Rect Range Slider Track Shape - A range slider’s default track, the reference’s rounded rectangle: the parts outside the thumbs rounded, the span between them square and two pixels thicker.
- Rounded
Rect Slider Track Shape - A slider’s default track, the reference’s rounded rectangle: the travelled part from the start to the thumb, two pixels thicker and rounded; the rest from the thumb to the end; each reaching half a track past the thumb, under it. A secondary value beyond the thumb runs from it, rounded at its far end.
- Row
- A horizontal run of children.
- RowOn
Wheel - Where one row has ended up on the cylinder, and what it looks like there.
- Runtime
- Runtime context handed to
build_ui: all the state retained between frames. - Safe
Area - Pads its child by the system’s occupied edges.
- Scaffold
- The screen shell. A fluent builder finished by
Scaffold::build. - Scaffold
Guard - Puts back the previous ambient shell when dropped — including while a panic unwinds.
- Scaffold
Info - What the
Scaffoldaround a widget knows about itself. - Scaffold
Messenger - A notification layer anchored in a corner.
- Scaffold
Scope - A shell for one subtree: the counterpart of
MediaScope, one milestone later and for the other thing a shell knows. - Scale
Transition - Scales its child by a value the caller owns, about its centre or a pivot of the
caller’s choosing.
1.0is neutral. - Scene
- A 2D scene: the declarative description of what to draw.
- Scroll
Ballistic - The fling in flight on one scroll region: one simulation per axis, and the time elapsed since the finger let go.
- Scroll
Behavior - How the scrollables under it behave, from the platform it follows.
- Scroll
Behavior Guard - Puts the previous behaviour back when dropped.
- Scroll
Configuration - Puts a
ScrollBehaviorin force for a subtree. - Scroll
Glows - The four glows of one scrollable region.
- Scroll
Metrics - The state of one scroll axis, as the physics sees it. All in logical pixels.
- Scroll
Overlay - A scroll region with something drawn over it that knows where it has got to.
- Scroll
Physics - The behaviour of a scrollable: its feel at the edges and after a fling, and whether the user may scroll it.
- Scroll
Position - Where a scroll region is, and how much room it has, at the moment it is reported.
- Scroll
Stretch - Both axes of one scrollable’s stretch.
- Scroll
To - A request to move a scroll region, addressed to one axis or both.
- Scrollable
- A scrollable area of the frame: where it is, how far it may scroll, and how it is meant to behave at its edges.
- Scrollbar
- A scrollbar thumb (for hit-testing a drag).
- Scrollbar
Fade - The life of one area’s scrollbar over time: whether it is on screen at all, and how far the thumb has gone towards the colour it takes under a pointer.
- Search
Anchor - A search bar and the view it opens.
- Search
Bar - A raised pill holding a search field, with a slot before it and any number after.
- Segmented
Button - A single-selection segmented control.
- Segmented
Theme - Defaults for
SegmentedButton. - Selection
Area - A subtree in which every
Textcan be selected, and one drag selects across them: a paragraph broken into three texts selects as a paragraph, and copying gives those three lines. - Selection
Handle - One of the two handles under a touch selection, in the field’s local coordinates (px from its top-left corner, as on screen: any scroll of its content already applied).
- Semantics
- States a role, a name or a state for a child that cannot state it for itself — the
reference’s
Semanticswidget. - Semantics
Properties - A widget’s resolved semantic annotation, for accessibility.
- Shader
Mask - Blends a two-stop fade over its child: a list that fades out at its bottom edge, a headline filled with a gradient, a photograph dissolving into its page.
- Sheet
Area - One sheet of the frame: where its panel is, what it was built with, and the scroll areas walked inside it.
- Sheet
Spec - What a
DraggableScrollableSheettells the frame about itself. Heights are shares of the box the sheet fills, from0.0to1.0. - Sheet
State - The retained height of one sheet, and whatever is moving it.
- SheetTo
- Where an application asks a sheet to go — the reference’s
DraggableScrollableController, as a request rather than an object. - Shortcuts
- Binds keystrokes to intents for its subtree. See the module’s documentation for why that is two steps rather than one.
- Side
Button - Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. A button on the edge of a device’s body. - Simple
Dialog - A dialog that offers a choice: a title, and a list of options to pick from.
- Simple
Dialog Option - One row of a
SimpleDialog: a full-width option that answers the question by being chosen. - Single
Child Scroll View - A scrollable container.
- Size
- A 2D size (width × height).
- Size
Animation - How an
AnimatedSizemoves: over how long, along which curve, where the child sits in the box on the way, and whether what spills out of it is cut. - Size
Transition - Reveals its child along one axis by a value the caller owns: the box is that fraction
of the child’s size,
0.0nothing and1.0all of it, and the child is cut to it. - Sized
Box - A box of a given size — or one that fills what it is given, or one that takes only what its child needs.
- Sized
Overflow Box - A box of a stated size whose child is laid out at another one, and spills.
- Skeleton
- An animated loading block.
- Slide
Transition - Slides its child by a value the caller owns, stated as a fraction of the child’s
own size:
(1.0, 0.0)is one whole width to the right. - Slider
- A linear slider over
min..=max, controlled and draggable — the reference’sSlider. - Slider
Paint - What every part is painted with.
- Slider
Palette - A slider’s colours, resolved for one paint: the widget’s, then the theme’s, then the reference’s — the disabled ones when it is disabled.
- Slider
Shape - A part held by a slider or a theme: shared, and compared by identity, so that a theme holding one still compares and clones as a value does.
- Slider
Theme - Defaults for
SliderandRangeSlider. - Slider
Thumb - How a thumb is to be painted this time.
- Snack
Bar - A transient notification, with an optional action (Material Snackbar style: “UNDO”). The action is a text button on the right that emits a message on click.
- Snack
BarQueue - A notification queue — pure, application-side (in the spirit of
crate::form::Form). - Snap
Simulation - The motion of a sheet to the stop it is settling on: a constant speed — the
release’s, or
SHEET_SNAP_MIN_SPEEDif that is slower — that stops dead on the stop. The reference’s own, and deliberately not a spring: a sheet that overshot its stop would uncover and cover again whatever is behind it. - Spacer
- Flexible empty space along a row’s or a column’s main axis.
- Spring
Description - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. The parameters of a damped spring. - Spring
Simulation - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A spring pulling a value fromstarttowardsend, started with an initialvelocity. The reported position isend + solution(t). - Stack
- A container of overlaid layers.
- State
Context - What a
Stateis told when it builds and when its lifecycle runs: everything aBuildContextoffers (this dereferences to one), and the state’s own handle. - State
Handle - A way to reach a widget’s state from outside its
build: from a handler, a listener, a timer. Cheap to clone. - State
Store - What every component’s state, and every hook’s, is kept in between rebuilds. It lives in
the
Runtime, under the place of the component that owns it. - Status
- A widget’s complete status for one frame: pointer interaction, focus, caret and selection (for fields), animation progress and opacity.
- Stepper
- An incremental numeric picker.
- Steps
- The step indicator of a multi-step form.
- Sticky
Header - A section whose header sticks: in a scroll view, the header stays at the top of the visible part while the rest of its section goes under it, and is pushed off by the next section’s header as that one arrives.
- Stream
Builder - Builds from a stream of values — the reference’s
StreamBuilder, overBuildContext::use_stream: the work is given aStreamSinkand adds its values to it. - Stream
Sink - Where a stream started by
BuildContext::use_streamgives its values. - Stroke
- What a layer does at compositing, for painting a scene by hand. An outline (the line a path is drawn with): colour, width, in pixels, and how its ends are drawn.
- Submenu
Button - A menu: on a
MenuBar, the word along the top and what drops from it; inside another menu, a row that opens a menu beside it. - Subscription
- A set of continuous message sources, possibly empty.
- Surface
Guard - Holds a surface installed — see
MediaQuery::install. Dropping it puts back the description and the reader’s font size that were in force before. - Sweep
Gradient - The three gradients and how they tile.
A gradient turning round a centre (
gradient.dart’sSweepGradient): fromstart_angletoend_angle, in radians clockwise from the right. - Switch
- An on/off switch.
- Switch
List Tile - A row whose whole width flips a switch. The commonest shape a settings screen has.
- Switch
Theme - Defaults for
Switch. - System
Bars - Both system bars with every question answered — what the shell hands the platform.
- System
UiOverlay Style - What a part of the screen asks of the system bars over it — the reference’s
SystemUiOverlayStyle. - TabBar
- A tabbed view: the bar, and the selected tab’s panel under it.
- TabBar
Theme - Defaults for
TabBar— the bar, its labels and its indicator. - TabItem
- One tab of a
TabBar: what is drawn on it, and what it is called. - TabPage
Selector - The row of dots that says which page of several you are on.
- Table
- A data grid with fixed or flexible columns (see the module).
- Taskbar
- What the application’s taskbar button shows: a count, a progress, or neither.
- Text
- A single-line text widget.
- Text
Block - What a layer does at compositing, for painting a scene by hand.
The box a block of text is laid out in: how wide it is, whether the text wraps at
that width, and where the lines sit inside it. See
Scene::text_block. - Text
Decoration - A text’s decoration lines, which combine with one another. They have no effect on measurement: the text’s geometry does not change, and the lines are drawn by the backend from the baseline metrics.
- Text
Editing Controller - A text field’s text, and the changes to it.
- Text
Field - A single-line text input field, with optional form decoration (label, hint,
helper text, error). Validity stays decided by the application (a pure
function of the state); the field only displays its result through
error. - Text
Field Style - Everything a
TextFieldpaints, each answer the caller’s, the theme’s, or the framework’s — resolved in that order. - Text
Field Theme - Defaults for
TextField. - TextRun
- Type as the renderer receives it, and the framework’s defaults. A text run ready to render: a fragment plus its typographic attributes and colour, all resolved — nothing left to inherit.
- Text
Scale Guard - Installing the reader’s font size for a whole frame — see
frus_core::install_text_scale. Re-exported for the shell, which has to hold it across the build, the layout and the paint. Puts back the scale that was in force beforeinstall_text_scale, when dropped — including while a panic unwinds, so one bad frame cannot leave a stale scale installed for every frame after it. - Text
Selection Theme - How a selection in text that is not a field looks — a
selectabletext’s and aSelectionArea’s. - Text
Span - A rich-text tree: each node carries a fragment of text, partial style
overrides — whatever is unspecified inherits from the parent, so a
.bold()child keeps its parent’s size — and children of its own. - Text
Stop - A text that takes part in a
SelectionArea, as one frame laid it out: what the shell hit-tests a press against and works a selection out from. - Text
Style - The typographic attributes of a single line of text — every field optional.
- Text
Theme - The named typographic scale (Material 3’s 15 steps). Widgets pick a step
(
theme.text.title_medium), never a hardcoded size — changing the scale retypesets the whole app. The colors stay inherited (None→ resolved against the theme at paint time). - Theme
- A set of style tokens.
- Theme
Builder - Builds its child from the ambient theme (
theme → widget). - Themed
- Applies a theme to its child and everything under it.
- Time
Picker - A time picker.
- Time
Range - A time range (a start → end slot), the temporal counterpart of the dual calendar
(
crate::DatePicker::range_dual): twoTimePickers labelled “Start” and “End”, side by side. A singleon_change(endpoint, field, value)callback receives every change (values always 24-hour); the application decides how to update its state. - Timeline
- A vertical chronology.
- Title
Bar - The title bar’s line, when the application’s content shares it, as the shell reports it: how tall the line is, and what the system keeps on it.
- Title
BarTheme - The colours of a
WindowMenuBar’s line (milestone 642), on the title bar’s line or under the system’s. - Toggle
Buttons - A bank of buttons sharing their edges, any number of which may be on.
- Toggle
Buttons Theme - Defaults for
ToggleButtons. - Tolerance
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. The thresholds below which a simulation counts as “at rest”. - Tonal
Palette - Colour science: the tone-based space the schemes are made in, and the surface tint.
A tonal palette: one hue and chroma spread across the tone scale.
tone(90)is very light,tone(10)very dark, and both read as one colour. - Toolbar
Context - What is true of the field and the clipboard when the bar is asked for: the three conditions the default list is built from.
- Toolbar
Item - One item of the bar: a built-in editing action, or the application’s own.
- Toolbar
Mark - Which field shows its selection bar, and what the clipboard held when it opened: the shell asks the platform once, on opening, not on every frame.
- Tooltip
- A short label that appears while a pointer rests on something.
- Transform
- Transforms its child at paint time (both rendering and hit-testing), without changing layout: the siblings do not move, and the child may overflow its box, since there is no clipping.
- Transform
Values - The numbers a paint-time transform is made of that can sensibly be interpolated: a scale on each axis and a turn.
- Transition
Frame - What a transition paints at one moment: the two pages, and what lies between them.
- Tray
- The application’s tray icon, described: its tooltip, its icon, its menu, what a click on it does, and whether closing the window leaves the application running in it.
- Tree
- A hierarchical tree (visible rows, flattened).
- Tween
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. Interpolates a value between two bounds, driven by a[0,1]progress value. - Tween
Sequence - The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
A run of
Animatablesegments chained along the[0,1]progress value: each segment gets a share proportional to its weight. One progress value can thus cross several stages — a multi-step morph (colour A → B → C), a bounce (grow then come back), or a sequence with distinct rhythms (one segment.curved, the other linear). - TwoPane
- An adaptive master-detail layout.
- Ui
- The interface of one frame: what the walk over a widget tree produced.
- Unconstrained
Box - Lets its child be its natural size even where the parent offers less — and says so when that does not fit.
- Undo
History - One field’s undo history: what it was, and what it was about to be.
- UseRef
- A value kept between rebuilds by
BuildContext::use_ref. UnlikeUseState, changing it does not ask for a rebuild: it is for what the interface does not show. - UseState
- A value kept between rebuilds by
BuildContext::use_state. Changing it asks for a rebuild; reading it does not. - User
Accounts Drawer Header - A
DrawerHeaderlaid out for the account the application is signed in to: a picture, up to three others, a name, an address, and a control for switching between them. - Value
Anim - Timeline of an implicitly animated value (
Widget::anim_target): interpolatesfrom → toaccording to the widget’s curve and duration.currentis the value handed to the paint. A change of target rebases the timeline from the current value (a clean, continuous restart). - Value
Listenable Builder - Builds from a
ValueNotifier’s value, and again whenever it changes — the reference’sValueListenableBuilder. - Value
Notifier - A notifier that holds a value, and tells its listeners when the value changes.
- Velocity
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A pointer speed, in logical pixels per second. - Velocity
Estimate - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A velocity, with what the tracker knows about how much to trust it. - Velocity
Tracker - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A rolling history of pointer positions that can be asked for a velocity. - Vertical
Divider - A vertical separator: a thin line, centred in a wider box that gives it room.
- Virtual
List - The description of a virtualised list, exposed to the render driver.
- Visibility
- Shows or hides its child, with a say in how much of it survives being hidden.
- Visual
Density - How compact the controls are — the reference’s
VisualDensity. - WebInput
- What a browser is told about the field being edited (milestone 711): the attributes of
the
<input>or<textarea>the web shell edits it through. - Wheel
Geometry - The shape of the cylinder rows are laid on.
- Widget
Id - A widget’s positional identity: a hash of its path in the tree.
- Widget
State Property - A value chosen by the states a widget is in (
widget_state.dart:821). - Widget
States - The set of states a widget is in, as a byte rather than a hash set.
- Widget
Themes - The per-widget defaults carried by a
Theme. - Window
Insets - The window insets, split by nature:
paddingis the area permanently taken by the system (status and navigation bars, the notch — all static), whileview_insetsis the area covered by transient UI, chiefly the soft keyboard. Avoiding the keyboard means keeping content clear ofWindowInsets::safe. - Window
Menu Bar - The window’s menu bar, above everything the window shows (milestone 642).
- Wrap
- A named entry point for a wrapping row (flex-wrap).
Enums§
- Alert
Kind - The nature of an alert box.
- Align
- How children are aligned on the cross axis.
- Align
Content - How a wrapping container’s lines are distributed on the cross axis.
- Alignment
Geometry - A resolvable anchor — either physical (
Alignment) or directional (AlignmentDirectional). A widget accepts either one, throughInto, and resolves it against the reading direction at render time. - Animation
Status - How far along an animation controller is.
- AppIcon
- What an application’s icon is.
- Autofill
Hint - What a field is for: what an autofill service should put in it, and what it should learn from it when the form is submitted.
- Axis
- A
SingleChildScrollView’s scrolling axis, or axes. - Axis
Constraint - What a
ConstraintsTransformBoxdoes to one axis of the space on offer. - Ballistic
- The motion a scrollable follows once the finger has let go.
- Blend
Mode - How a source colour is combined with the destination underneath it.
- Blur
Style - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
Which side of a shape a blur keeps (milestone 645), the reference’s
BlurStyle. - BoxBorder
- What a decoration is made of — its shape, its sides, its border’s two forms, its shadows’ blur — and the shapes a border can take. A box’s border, by its physical sides or by the line’s start and end.
- BoxFit
- How an image is fitted into its destination box — the same set of modes as the
CSS
object-fitproperty. - BoxShape
- What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
The shape a box decoration paints — the reference’s
BoxShape(box_border.dart:26). - Brightness
- Whether a surface is showing a light or a dark interface.
- Button
Edge - Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. The left or the right edge of a device held upright. - Capitalization
- Which letters the software keyboard capitalises on its own.
- Caption
Button - One of the window’s three buttons.
- Card
Variant - Which of the three cards this is.
- Child
Axis - What a child is given on one axis by a
ChildLayout::layout_childcall. - Clip
- What happens to a layer that goes past its stack’s edges — the reference’s
Clip, as a stack uses it (stack.dart:476). - Clip
Shape - The clip shape of a
Primitive::Layer, inscribed in itscliprectangle. Compositing multiplies the layer’s alpha by the shape’s coverage, with antialiased edges. This is the building block of theClipRRect,ClipOvalandClipPathwidgets. - Color
Filter - A function applied to every pixel of a subtree, independently of its neighbours: greyscale, a tint, a contrast curve.
- Connection
State - Where a piece of work that finishes later has got to.
- Control
Affinity - Which side the chevron sits on — the reference’s
ListTileControlAffinity. - Cupertino
User Interface Level Data - How high a piece of interface sits: on the window’s own surface, or raised above it — a sheet, a dialog, a popover.
- Cursor
- The shape of the system cursor a widget can request for a given sub-region (milestone 205). The shell translates it to the window’s cursor; widgets stay independent of the windowing layer.
- Curve
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. An easing curve remapping[0,1] → [0,1]. - Cutout
- Device profiles: what a phone or a tablet looks like to an application, for a desktop
window to stand in for it — see
frus_core::DeviceProfile. The part of a screen taken by the camera, described for the device held upright. - Decoration
Position - Where a
DecoratedBoxTransitionpaints its decoration. - Destination
Icon - What a destination shows above or beside its label: a drawn icon, or a text glyph.
- Dismiss
Axis - Which directions an item accepts.
- Dismiss
Direction - Which way an item may be swiped, and which way it went.
- Dismiss
Phase - Where an item is in its cycle.
- Drag
Mode - How a press and a slide move a dragged value (milestone 650) — the reference’s
SliderInteraction, in the terms the shell needs to apply it. - Edit
Action - What the shell does to the focused field when a built-in item of the bar is pressed.
- Edit
Kind - What sort of change a keystroke made — the unit undo steps back by.
- Endpoint
- Which endpoint of a time range (
TimeRange) is targeted. - FabLocation
- Where the floating action button sits.
- FabSize
- The four sizes the reference draws (
floating_action_button.dart:783), each with its own box, its own corner and its own icon. - Fetched
- The image stores, for an application that loads its own pictures or sizes the cache. What is known about an image that has to be fetched before it can be shown.
- Fill
Rule - What a layer does at compositing, for painting a scene by hand. Which points a filled path covers, where its contours cross or nest.
- Flex
Direction - The main-axis direction of a flex container.
- FlexFit
- How a flexible child fills the share of the spare room it was given — the
reference’s
FlexFit. - Floating
Label Alignment - Where a field’s floated label sits along its top (milestone 656) — the reference’s
FloatingLabelAlignment. - Floating
Label Behavior - When a field’s label floats above the value (milestone 656) — the reference’s
FloatingLabelBehavior. - Focus
Direction - Direction of arrow-key focus navigation.
- Font
Family - A font family, as a style names it.
- Font
Weight - Font weight — a useful subset, mapped onto the CSS/OpenType weights.
- Fractional
Mask - A
MaskShaderwritten in fractions of the box it covers —(0, 0)the top-left corner,(1, 1)the bottom-right. - Glow
Edge - Which edge of a viewport a glow sits on.
- Gradient
- The three gradients and how they tile. Any of the three.
- Hover
Event - One moment of the pointer over a region, as the shell reports it through
Widget::on_hover_event. Every position is in the region’s own coordinates. - Icon
Alignment - Which side of the label an icon goes (
button_style_button.dart:55). - Icon
Button Variant - How much of a surface an icon button brings with it.
- Icon
Style - How an icon is drawn. The filled set is always bundled; the other three sit behind a cargo feature apiece, and asking for one that is not compiled in yields nothing rather than a different drawing.
- Image
Filter - A filter that treats the subtree as an image, so a pixel’s result depends on its neighbours: a blur, a spread, a shrink.
- Image
Placeholder - What stands in for an image while it is on its way.
- Image
Repeat - A picture painted as a background, and the reference’s fitting.
How a picture fills the room its fit leaves: once, or repeated across, down, or both
— the reference’s
ImageRepeat. - Image
State - Where an
Image’s pixels are: here, on their way, or never coming. - Insets
Geometry - Insets that are either physical (
Insets) or directional (InsetsDirectional). A widget accepts either one — or one number for all four sides — throughInto, and resolves it against the reading direction at layout time. - Interaction
- A widget’s visual pointer interaction state.
- Intrinsic
Axis - Which axis a box takes from its content’s preferred size rather than from the space on offer.
- Justify
- How children are distributed along the main axis.
- Key
- A key passed to the focused widget.
- KeyResponse
- A widget’s response to a key received during the leaf→root bubble (the
focused one first, then its ancestors for as long as the result is
Ignored). - Keyboard
Type - Which keys the software keyboard should offer.
- Lifecycle
- The application’s lifecycle state. The framework hands it to
Application::on_lifecycleat every transition so the app can react: pause a timer or a camera in the background, write a save before being destroyed, and so on. - Listener
Event Kind - What happened to the pointer, as a
Listenerhears it (milestone 586). - Main
Axis Size - How much room a
RoworColumntakes along its own main axis. - Mask
Shader - What a layer does at compositing, for painting a scene by hand.
The colour a
ShaderMaskblends over its subtree, as a two-stop fade. - NavPlacement
- Where a
Scaffold’s navigation destinations are drawn. - Orientation
- Display orientation, derived from the width-to-height ratio.
- Overscroll
Indicator - What a scroll area shows when it is pulled past its edge and its physics refuse to move (milestone 591).
- Page
Transitions Builder - One of the reference’s page transitions.
- PanAxis
- Which way a
GestureDetector’s drag may go (milestone 582). - PanEvent
- One moment of a drag on a
GestureDetector, as the shell reports it throughWidget::on_pan. - Path
Gradient - What a layer does at compositing, for painting a scene by hand. How a path’s fill fades: along a line, or outwards from a centre.
- Path
Verb - A single drawing command.
- Placement
- Where to place the overlay relative to its anchor, or to the window.
- Primitive
- A drawing primitive.
- Rail
Labels - When a navigation widget shows its destinations’ labels.
- Ramp
Shape - What a layer does at compositing, for painting a scene by hand.
Where a
GradientRamp’s colours run. - Refresh
Phase - Where a refresh area is in its cycle.
- Remote
Data - The four states of an asynchronously loaded value.
- Reorder
Axis - Axis along which a reorderable widget moves while dragging:
Tablecolumns slide horizontally (the default),Kanbancards vertically. The shell adapts the drag preview (ghost direction, insertion indicator) to this axis. - Reorder
Grab - How a row of a
ReorderableListis picked up. - Role
- An element’s semantic role (a subset aligned on AccessKit/ARIA roles: what a screen reader announces).
- Scroll
Deceleration Rate - How fast a fling’s momentum is taken away — the bouncing family’s second deceleration profile.
- Scroll
Feel - How a scrollable behaves at its edges and after a fling — what the reference’s bouncing and clamping physics differ by.
- Scroll
Target - One axis of a
ScrollTo: an offset, or an end named rather than measured. - Scrollbars
- When a scroll area draws a scrollbar (
app.dart:857). - Shape
Border - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
What shape a box is (
shape_border.dart), and the edge around it. - Shortcut
Key - A key a shortcut can be bound to — a general vocabulary, unlike
Key, which is the one text editing needs. - Show
Value Indicator - When a slider shows its value indicator — the reference’s
ShowValueIndicator. - Side
- The edge a box’s content ran past.
- Size
Class - A display-width band.
- Slide
From - The edge a
SlideTransition::from_edgecomes in from. - Slider
Interaction - What a press and a slide may do to a slider (milestone 650) — the reference’s
SliderInteraction. - Snack
BarBehavior - Where a snack bar sits, and therefore what it looks like (
snack_bar_theme.dart:27). - Snack
BarKind - The nature of a notification (its accent color).
- Snack
BarPosition - The corner the notifications are anchored to.
- Stack
Fit - How a stack sizes the layers that are not
crate::Positioned— the reference’sStackFit(stack.dart:301). - State
Filter - What a set of states has to look like for one entry of a
WidgetStatePropertyto answer (widget_state.dart:27). - Stroke
Cap - How an open line ends — the reference’s
StrokeCap(milestone 630). - TabAlignment
- Where the tabs sit in a bar with room to spare.
- TabBar
Variant - Which of the two tab bars this is.
- TapTarget
- How much room a small control reserves for the finger that works it.
- Target
Platform - The platforms whose conventions a widget can follow.
- Taskbar
Progress - The progress shown on the taskbar button.
- Text
Align - How the lines of a piece of text are aligned inside the box it was given.
- Text
Direction - The reading direction of text and layout. An ambient context: in RTL, rows, alignment and directional insets all flip horizontally.
- Text
Field Variant - Which of the reference’s two fields this is.
- Text
Input Action - What the keyboard’s action key does, and what it says.
- Text
Overflow - What becomes of text that does not fit the box it was given.
- Theme
Mode - Which of an application’s themes is on display (
app.dart:57). - Thumb
Drag - A moment of a drag on one of a widget’s thumbs: see
Widget::on_thumb_drag. - Tile
Mode - The three gradients and how they tile.
What a gradient does past its ends (
dart:ui’sTileMode). - Time
Field - Which field of a time (
TimeRange) is changing. - Title
BarRole - What a part of the title bar’s line is to the system, which acts on it.
- Toggle
Axis - Which way a bank runs.
- Toggled
- The checked state of a toggleable control (checkbox, switch, radio).
- User
Scroll - Whether the user may scroll an area (milestone 649): the reference’s
AlwaysScrollableScrollPhysicsandNeverScrollableScrollPhysics, and the rule they both override. - Variant
- How much of a screen’s attention a button is asking for: which of the reference’s buttons it is.
- Velocity
Strategy - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. How aVelocityTrackerturns a history of positions into a velocity. - Vertical
Direction - Which way the vertical axis runs: a column’s main axis, a row’s cross axis.
- Widget
State - One thing a widget can be doing (
widget_state.dart:168).
Constants§
- APP_
BAR_ HEIGHT - The bar’s height, the reference’s Material 3
toolbarHeight. - APP_
BAR_ MAX_ TITLE_ SCALE - How far the reader’s font setting may enlarge the title, and no further.
- AVATAR_
RADIUS - The radius when none is given: the size a list tile’s leading slot is made for.
- BANNER_
ELEVATION - How far off the page a banner sits when nobody says:
0, flat. - BANNER_
MIN_ ACTION_ BAR_ HEIGHT - The shortest an actions bar gets (
banner.dart:123). - BOUNCING_
DRAG - The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
The drag of a scroll fling: the fraction of the velocity left after one second.
0.998^1000 ≈ 0.135, from the deceleration rate iOS scroll views use. - BOUNCING_
FLING_ WEIGHTS - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. The weights a platform that bounces applies to the last three sample-to-sample velocities, oldest first. - BUTTON_
BORDER_ WIDTH - An outlined button’s outline.
- BUTTON_
ELEVATION - How far an elevated button sits off the surface at rest.
- BUTTON_
HEIGHT - A button’s minimum height at the standard density (
elevated_button.dart:593). - BUTTON_
ICON_ SIZE - An icon’s side inside a button (
elevated_button.dart:599). - BUTTON_
MIN_ WIDTH - The narrowest a button gets at the standard density, however short its label.
- BUTTON_
PADDING - The room either side of the label (
elevated_button.dart:458). - BUTTON_
TEXT_ PADDING - The room either side of a text button’s label (
text_button.dart:442). - CARD_
ELEVATION - The default depth of an
CardVariant::Elevatedcard. Elevation is a height, not a blur radius:Card::elevationsays how far off the surface the card sits, and the shadow is derived from it. - CARD_
MARGIN - The room a card leaves around itself, in logical pixels, when the caller has not said otherwise — the reference’s figure. Cards are usually stacked, and two of them flush against each other read as one.
- CHIP_
BORDER_ WIDTH - The outline’s thickness.
- CHIP_
HEIGHT - A chip’s height.
- CHIP_
ICON_ SIZE - A leading icon, a checkmark or a delete cross.
- CHIP_
LABEL_ PADDING - The room on either side of the label, inside that.
- CHIP_
PADDING - The room inside the outline, on every side.
- CHIP_
RADIUS - Its corner radius — a rounded rectangle, not a stadium.
- CLAMPING_
FRICTION - The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
Android’s
mFlingFriction, the value that makes the fling travel the platform distance. - COLLAPSED_
HEIGHT - The height a collapsed header stops at, unless told otherwise: the same toolbar height an application bar has, because what it collapses to is a toolbar.
- CONSTANT_
DECELERATION_ FAST - The constant deceleration the fast profile adds on top of the drag, in px·s⁻² — the reference’s own figure.
- CUPERTINO_
BARRIER_ OPACITY - The iOS route’s barrier colour, black at
0x18(route.dart:48). - DEFAULT_
IMAGE_ CACHE_ BYTES - The image stores, for an application that loads its own pictures or sizes the cache. The default ceiling on decoded network images held in memory: the reference’s own figure.
- DEFAULT_
LINE_ HEIGHT - Type as the renderer receives it, and the framework’s defaults. The line height a style that says nothing gets, as a multiple of the font size.
- DEFAULT_
TEXT_ SIZE - Type as the renderer receives it, and the framework’s defaults. The font size a text ends up at when nothing anywhere in the chain named one.
- DESKTOP_
FLING_ WEIGHTS - The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. The same, for the desktop variant of that platform. - DIALOG_
ELEVATION - The Material 3 elevation (
dialog.dart:1966). - DIALOG_
INSET_ PADDING - How far the dialog is held off the window’s edges — the reference’s
_defaultInsetPadding(dialog.dart:32). - DIALOG_
MIN_ WIDTH - The narrowest a dialog gets, whatever its content (
dialog.dart:275). - DIALOG_
RADIUS - The Material 3 corner (
dialog.dart:1967). - DISABLED_
CONTAINER_ OPACITY - A disabled container’s opacity over the surface — the reference’s 12 %.
- DISABLED_
CONTENT_ OPACITY - A disabled label’s, glyph’s or outline’s opacity — the reference’s 38 %.
- DIVIDER_
SPACE - The extent a divider takes across its axis when the caller has not said otherwise — the line plus the air around it, which is what keeps a separator from touching the rows it separates. The reference’s figure.
- DIVIDER_
THICKNESS - The line’s own thickness, in logical pixels, by default.
- DRAWER_
HEADER_ HEIGHT - The block’s height, the rule under it included (
drawer_header.dart:16). The reference writes it as160.0 + 1.0, the+ 1being the bottom edge, and that is worth keeping visible: the rule is inside the header rather than under it, so a header and its rule together are 161 and the thing below starts at 161. - DRAWER_
RADIUS - The rounding of the panel’s inner edge — the reference’s figure, and the shape its own source calls shown in the spec. The outer edge stays square: a panel docked against the window rounds the corners that face the content, not the ones that face nothing.
- DRAWER_
WIDTH - The width of a side drawer, in logical pixels, when the caller has not set one — the reference’s own figure, and wide enough for a navigation label not to wrap.
- FIELD_
BORDER_ WIDTH - Border weight at rest, and once focused — the reference widens rather than recolours alone, which is what makes focus readable without colour.
- FIELD_
DENSE_ OUTLINED_ PADDING_ BOTTOM - Padding below the content in a dense outlined field.
- FIELD_
DENSE_ OUTLINED_ PADDING_ TOP - Padding above the content in a dense outlined field: the reference’s
(12, 16, 12, 8), which keeps room for the label on the border while giving back everything else. - FIELD_
DENSE_ PADDING_ Y - Padding above and below the content in a
densefilled field — the reference’s(12, 4, 12, 4). - FIELD_
DISABLED_ OPACITY - What a disabled field keeps of its colours.
- FIELD_
FOCUSED_ BORDER_ WIDTH - Border weight of a focused field.
- FIELD_
GAP - Vertical gap between the box and the helper/error line, and above a floating label.
- FIELD_
ICON_ SIZE - Side of a prefix/suffix icon (logical px) and the margin around it.
- FIELD_
LABEL_ SCALE - What the label shrinks to once it floats. The reference scales it rather than naming a second size, so a field given a larger type keeps the same proportion.
- FIELD_
NOTCH_ GAP - Margin either side of the floating label inside the border’s notch, which is the
reference’s
OutlineInputBorder.gapPadding. - FIELD_
OUTLINED_ PADDING_ BOTTOM - Padding below the content in an outlined field.
- FIELD_
OUTLINED_ PADDING_ TOP - Padding above the content in an
outlinedfield. - FIELD_
PADDING_ X - Padding either side of the content, both variants.
- FIELD_
PADDING_ Y - Padding above and below the content in a
filledfield. - FIELD_
RADIUS - Corner radius of the box, and of a filled field’s two top corners.
- FIELD_
SUB_ SIZE - Size of the helper and error line — the reference’s
body_small. - FIELD_
TEXT_ SIZE - Size of the value and of the resting label — the reference’s
body_large. - GRID_
TILE_ BAR_ HEIGHT - A bar carrying one line (
grid_tile_bar.dart:79). - GRID_
TILE_ BAR_ TWO_ LINE_ HEIGHT - A bar carrying a title and a subtitle.
- ICON_
BUTTON_ BORDER_ WIDTH - An outlined icon button’s outline.
- ICON_
BUTTON_ ICON_ SIZE - The glyph inside it.
- ICON_
BUTTON_ SIZE - The box: as wide as it is tall.
- IMAGE_
FADE - How long an image takes to cross over its placeholder — the reference’s own figure
for
FadeInImage(fade_in_image.dart:37). - IS_WEB
- Whether this binary runs in a browser. A constant: a build is for the web or not.
- LIST_
TILE_ DENSE_ HEIGHTS - The same, dense. See
LIST_TILE_HEIGHTS. - LIST_
TILE_ HEIGHTS - Heights by line count — one, two, three.
- LIST_
TILE_ MIN_ LEADING_ WIDTH - The narrowest the leading slot may be, so that a column of tiles lines its text up
whatever each row put in front of it (
minLeadingWidth). - LIST_
TILE_ MIN_ VERTICAL_ PADDING - The least room above and below the text (
minVerticalPadding). - LIST_
TILE_ PADDING_ END - Room behind the trailing slot. See
LIST_TILE_PADDING_START. - LIST_
TILE_ PADDING_ START - Room in front of the leading slot — the start of the reference’s
EdgeInsetsDirectional.only(start: 16, end: 24). - LIST_
TILE_ TITLE_ GAP - The gap between the leading slot and the text, and between the text and the trailing
slot (
horizontalTitleGap). - MAX_
FLING_ VELOCITY - The cap applied to a release speed, in px/s.
- MAX_
IMAGE_ TILES - A picture painted as a background, and the reference’s fitting. The most tiles one repeated picture draws. A one-pixel pattern repeated over a large box would otherwise be millions of draws; past this, the rest of the box stays empty.
- MAX_
SPRING_ TRANSFER_ VELOCITY - The rest of the animation layer: tweens chained and curved, the scroll simulations and their constants. The cap on the velocity handed from a fling’s momentum to the overscroll spring: past this, the bounce would be violent rather than lively.
- MIN_
FLING_ VELOCITY - The default minimum release speed, in px/s, below which nothing is flung.
- MIN_
TAP_ TARGET - The smallest box a control that a finger works reserves for it, in pixels
(
constants.dart:27). - PAGE_
DOT_ GAP - The gap between two dots.
- PAGE_
DOT_ SIZE - A dot’s diameter, and the room on either side of it (
tab_page_selector.dart:24). - PLACEHOLDER_
COLOR - The reference’s colour: blue grey 700.
- PLACEHOLDER_
FALLBACK - The size it takes when nothing constrains it.
- PLACEHOLDER_
STROKE - The reference’s stroke width.
- QUICK_
DECODE_ PIXELS - The most pixels an embedded picture can have and still be decoded in the frame that
shows it: 256 × 256. Above it,
Image::memorydecodes on a background thread. - RUN_
PAUSE - How long a run of typing survives without a keystroke, in seconds.
- SEARCH_
BAR_ HEIGHT - Its height (
search_anchor.dart:1908). - SEARCH_
BAR_ MAX_ WIDTH - And the ceiling: past this a search bar stops being a control and becomes a banner.
- SEARCH_
BAR_ MIN_ WIDTH - The box a search bar asks for (
search_anchor.dart:1908). - SEARCH_
VIEW_ FULL_ SCREEN_ HEADER - The header’s height once the view is the screen (
search_anchor.dart:1933). - SEARCH_
VIEW_ MIN_ HEIGHT - See
SEARCH_VIEW_MIN_WIDTH. - SEARCH_
VIEW_ MIN_ WIDTH - The narrowest a floating view goes, and the shortest (
search_anchor.dart:1958). - SEARCH_
VIEW_ RADIUS - The floating view’s corner (
search_anchor.dart:1949). A full-screen one is square: it has no corners to round, being the screen. - SEGMENTED_
BORDER_ WIDTH - The outline around the group, and the hairlines between its segments.
- SEGMENTED_
HEIGHT - The control’s height.
- SEGMENTED_
ICON_ GAP - Between that checkmark and the label.
- SEGMENTED_
ICON_ SIZE - The checkmark on the chosen segment.
- SEGMENTED_
PADDING - The room either side of a segment’s label.
- SHEET_
SNAP_ MIN_ SPEED - The slowest a sheet travels to the stop it is settling on, in px/s — the reference’s figure. A release that barely moved would otherwise creep the last few pixels.
- SHRUNK_
TAP_ TARGET - The same for a control told to reserve only what the specification requires: the
minimum less eight (
checkbox.dart:522,switch.dart:2090). - TAB_
DIVIDER_ HEIGHT - The hairline between the bar and the panel.
- TAB_
HEIGHT - The height of the tabs themselves, indicator excluded.
- TAB_
ICON_ GAP - The room between a tab’s icon and the label under it.
- TAB_
ICON_ HEIGHT - The height of the tabs when any of them stacks an icon over a label. The reference’s second figure, and it applies to the whole row: tabs of two heights in one bar would put their labels on two different lines.
- TAB_
ICON_ SIZE - The side of a tab’s icon.
- TAB_
INDICATOR_ PRIMARY - The thickness of a primary bar’s indicator, which is also its corner radius.
- TAB_
INDICATOR_ SECONDARY - The thickness of a secondary bar’s indicator.
- TAB_
LABEL_ PADDING - The room on either side of a label.
- TAB_
START_ OFFSET - The inset
TabAlignment::StartOffsetleaves before the first tab. - TOGGLE_
BUTTONS_ BORDER_ WIDTH - The hairline around and between the buttons (
toggle_buttons.dart:243). - TOGGLE_
BUTTON_ MIN_ SIZE - The smallest a toggle button may be, either way: the framework’s tap target
(
toggle_buttons.dart:762, which readskMinInteractiveDimension).
Traits§
- Animatable
- The rest of the animation layer: tweens chained and curved, the scroll simulations and
their constants.
A value that can be shaped by a
[0,1]progress value — the abstraction tweens and curves share. It is the bridge between the explicit side (anAnimationControllerproducing a[0,1]frame by frame) and a typed value:tween.animate(&controller).value()reads the current colour, size or point at any instant, without the view knowing the controller as anything other than that value. - Application
- What an application supplies to the framework: an Elm-style message model.
- Into
Cleanup - What an effect may hand back: nothing, or the work that undoes it.
- IntoMsg
- What a handler’s result can be turned into, so a widget’s setter takes both shapes: a closure that returns the widget’s message type, and — in an application built from components — one that just does the work and returns nothing.
- Lerp
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A linearly interpolable value. - Listenable
- Something that can be listened to.
- Localizations
- What the framework says, for one language.
- Maybe
Send Sendwhere there are threads, and nothing on the Web, where a future never leaves the thread it was made on — the bound the work handed to a component must meet.- Simulation
- The shared animation layer — physics, curves, driver — see
frus_core::animation. Re-exported here so applications can reach it throughfrus_widgetswithout depending onfrus-coredirectly. A motion described as a pure function of time. - Slider
Overlay Shape - Paints the halo around a hovered, focused or held thumb: the reference’s overlay shape.
- Slider
Thumb Shape - Paints a thumb: the reference’s thumb shapes, a slider’s and a range slider’s.
- Slider
Tick Mark Shape - Paints a tick mark, one per division: the reference’s
SliderTickMarkShape. - Slider
Track Shape - Paints a slider’s track: the reference’s
SliderTrackShapeandRangeSliderTrackShapein one. - Slider
Value Indicator Shape - Paints the value indicator over a thumb: the reference’s value indicator shapes.
- State
- What a
StatefulWidgetkeeps, and how it draws itself from it. - Stateful
Widget - A widget whose
Stateoutlives the rebuilds. The widget is only the configuration: it is made again on every rebuild, and the state is what is kept. - Stateless
Widget - A widget with nothing to remember: it says what it looks like from what it is configured with, and from nothing else.
- Widget
- A widget: a node of the tree that is laid out by
Widget::style, painted byWidget::paintand asked what a click means byWidget::on_click;Msgis the message it emits when the reader interacts with it.
Functions§
- apply_
box_ fit - A picture painted as a background, and the reference’s fitting.
Fits
inputintooutputbyfit— the reference’sapplyBoxFit. - back_
blocked - Whether some component of the latest build has said that the back gesture and the back
button are not for the router to answer — an open menu or dialog is what they close first.
See
BuildContext::block_back. - bar_
spacer - A spacer for a bar’s row: takes what is left, so what follows goes to the far end.
- build_
deferred - Runs the deferred builds over a tree, the way the layout pass does on its way down.
- build_
ui - Turns a widget tree into a
Uifor a given size, runtime state and theme. - build_
ui_ inspected - Like
build_ui, but it also collects the inspection nodes (one per painted widget: name, box, depth) — the raw material of the runtime inspector and of the diagnostic dump. Reserve it for the frames where the inspector is on. - button
- Shorthand: a button with its click message.
button("Ajouter", Msg::Add)=Button::new("Ajouter").on_press(Msg::Add). - cached
- The image stores, for an application that loads its own pictures or sizes the cache.
Resolves
bytesto pixels once, returning the same handle on every later call. - cached_
at - The image stores, for an application that loads its own pictures or sizes the cache.
cached, at aDecodeSize: the same bytes decoded at two sizes are two entries, andloadis the one that decodes atsize. - center
- Shorthand: the child centred in the room it is given.
center(text("Nothing yet"))=Center::new(...). - collect_
ids - Collects the identities of every widget in the tree (prefix order), following the same
positional scheme as
build_ui. Used to detect mounts/unmounts between two frames. - compare_
cells - Compares two text cells: numerically when both read as numbers, otherwise lexically
and case-insensitively. The basis of a
DataTable’s sorting. - component
- A component made of a function:
component(|cx| …). The closure is called whenever the tree is rebuilt, and may call hooks. - debug_
default_ target_ platform_ override - The override of
default_target_platform, if one is set. - decoded_
at - The image stores, for an application that loads its own pictures or sizes the cache.
cached_at, decoding on a background thread whenin_the_backgroundsays so:Fetched::Loadinguntil the pixels are there, and the frames keep coming meanwhile (images_in_flightcounts it). - default_
target_ platform - The platform whose conventions an application follows unless its theme says otherwise: the debug override if one is set, else the browser’s operating system on the web, else the platform the binary was built for.
- disabled_
container - The surface a disabled control sits on:
on_surfaceatDISABLED_CONTAINER_OPACITYover the surface, whatever the control’s variant would have been. - disabled_
content - What is drawn on a disabled control — its label, its glyph, and a selection control’s
own mark:
on_surfaceatDISABLED_CONTENT_OPACITY. - disabled_
mark - A mark drawn on a disabled fill — a disabled selected checkbox’s tick, a disabled selected switch’s thumb.
- dump_
tree - An indented text dump of the observed tree: one line per widget —
Name x,y w×h #id. The first tool to reach for when debugging identity or reordering. - eased
- A curve applied to a progress, for a caller stepping one by hand:
curve.transform(t)is the same call the framework’s own animations make, so an explicit transition and an implicit one given the same curve are on the same shape. - edge_
for - The edge a scroll offset ran past, if it did:
deltais the refused movement, negative meaning the content was pulled towards the start. - expanded
- Shorthand: the child that takes the room its siblings left.
expanded(text(&title).ellipsis())=Expanded::new(...). - fab_
button - The floating action button the
Scaffoldexamples show: one character, round, wired to a message. - fetched
- The image stores, for an application that loads its own pictures or sizes the cache.
What is known about the image at
url, starting the fetch if this is the first ask. - fetched_
at - The image stores, for an application that loads its own pictures or sizes the cache.
fetched, at aDecodeSize:decodeis handed the size along with the bytes. - find_
by_ key - Identity of the first widget declaring the key
key(a hash), orNone. It is how the shell resolves a focus-by-key request (Command::focus): the application wraps a field inkeyed(k, …), then focuses byk. - find_
path - Path from the root down to the widget with identity
target([root, …, target]), for the leaf→root bubbling of keys. Empty when it cannot be found. - find_
sheet_ by_ key - Identity of the sheet the key
keynames: the first sheet’s panel at or under the widget declaring it, which is the identity the sheet’s state is kept under and the one the frame’s sheets are reported by.Nonewhen nothing declares the key, or nothing under it is a sheet. - find_
widget - The widget of the tree under
rootthat has the identitytarget, orNoneif none does. Identities are the ones the walk that built the frame gave, so an id read from aUifinds its widget here. - flexible
- Shorthand: a child that takes at most the room its siblings left, and less if it
wants less.
flexible(child)=Flexible::new(child). - focus_
changes - The messages a move of the focus from
beforetoaftersends (milestone 660): each widget whose subtree the focus left hearsfalse, deepest first, then each whose subtree it entered hearstrue, deepest first. The widgets around both — the paths’ shared start — hear nothing; a widget no longer in the tree is not heard from. - forget_
cached_ images - The image stores, for an application that loads its own pictures or sizes the cache.
Empties the store. For tests that want a decode to happen again; an application has
no reason to call it, since the entries are one per embedded asset and size, and
bounded by how many the binary carries.
trim_image_cachesis the one for memory. - forget_
fetched_ images - The image stores, for an application that loads its own pictures or sizes the cache.
Forgets every fetched image and every remembered failure. For tests; see
forget_cached_images. - glow_
cross_ axis - Where a glow’s arc should be centred along
edge, given a pointer atpointinsideviewport— and how long that edge is. - header_
rect - The header’s own box, at the origin — for a caller placing something inside it by hand.
- image_
cache_ budget - The image stores, for an application that loads its own pictures or sizes the cache. The ceiling currently in force.
- image_
cache_ bytes - The image stores, for an application that loads its own pictures or sizes the cache. The decoded bytes the store is currently holding.
- image_
fetcher - The image stores and the two things a host has to name: a decoder is chosen by the
imagesfeature, and the fetcher is registered by whoever has a network. SeeImage::network. The fetcherset_image_fetcherregistered, if one was: for the other documents an application shows from an address — a picture drawn as paths, an animation — which go through the same network the images do. - images_
in_ flight - Fetched images, pictures and animations still on their way. The shell keeps frames coming while there are any, so that what arrives is shown.
- install_
text_ scale - Installing the reader’s font size for a whole frame — see
frus_core::install_text_scale. Re-exported for the shell, which has to hold it across the build, the layout and the paint. Installs the reader’s font-size setting until the returned guard is dropped. - intervals
- The timers the components of the latest build asked for. The shell starts the ones it is not running and stops the ones no longer here.
- kanban_
slot - The flat index of a
(col, pos)slot:col * STRIDE + pos. This is a card’sreorder_indexvalue (both source and target). Reusable to test the routing of drag and drop. - keyed
- Shorthand: gives a widget — a list item, say — a stable identity.
keyed(todo.id, todo_row(todo))isKeyed::new(todo.id, todo_row(todo)). - lerp_
rect - Interpolates a rectangle towards another, corner by corner.
- nearest_
reorder_ slot - Which of a list’s
slotsa carried item lands on when the pointer is over none of them — the index intoslots, orNone. The list runs alongaxis. - node_at
- The node the hover designates: the deepest one containing
point(at equal depth, the last painted — the one on top). - notched_
outline - The bar’s outline: its rectangle, with a circular notch cut into the top edge
around a circle of
radiuscentred atcentre_xon that edge. - over_
surface on_surfaceatopacityoversurface, resolved to an opaque colour here rather than handed to the GPU as an alpha.- page_
count - The number of pages for
lenrows cut into slices ofper_page(at least 1). - page_of
- Which page an offset sits on, as a fraction:
1.5is halfway between the second and the third.extentis the distance from one page to the next. - page_
range_ label - The “N-M of T” line under the current slice (
0 of 0when empty) — milestone 236. - page_
rows - The slice of rows of page
current(1-indexed) with a size ofper_page. The page is brought back into[1, page_count]if it overflows. Reusable outside the widget. - page_
target - The offset the content must come to rest at after a release at
velocity. - paint_
elevation - What a decoration is made of — its shape, its sides, its border’s two forms, its
shadows’ blur — and the shapes a border can take.
Paints the shadows of a surface
elevationhigh, with cornersradius, behindrect:BoxShadow::for_elevation’s three, each asBoxDecorationpaints one. Nothing at a height of nought or in a colour with no opacity (milestone 606). - paint_
inspector_ overlay - Paints the inspector layer on top of an already built scene: an outline
around every widget (tinted by depth) and, if
hoverdesignates a widget, a highlight plus a card (name, size, position, id) near the cursor, kept inside the window. - platform_
centers_ title - Does a bar following
platform’s conventions centre its title by default? - rebuild_
requested - Whether a rebuild has been asked for and not yet taken. Asking does not consume it.
- reflow_
reorder_ cards - Vertical reflow for the reorder preview of a Kanban’s cards: while a card is being dragged, those below it in its source column move up (the lifted card’s gap closes), and those in the target column at or below the insertion line move down (the drop slot opens).
- reflow_
reorder_ columns - Reflows the
primsprimitives for the preview, according to the cursor’s abscissacursor_x. The source column (src, lifted, withlifted_ownerits header) is removed; the columns on either side slide by one slot (the source’s width), progressively as the cursor passes them, to fill the gap and open the drop slot. - region_
copy - The words selected, as they are copied: each text’s selected slice, in the order of
texts, one per line — a paragraph broken into several texts is copied as those lines, which is what a reader who selected them across sees. - region_
ranges - What is selected in each of
stops— the area’s texts in reading order, each with its length in characters — betweenanchorandextent, in whichever order they were dragged. - reorder_
drop_ after - Is a carried item dropped after the
slotthe pointer is over, rather than before it? - reorder_
siblings - The slots a reorderable
idcan be dropped among in its own list: its siblings — the children of its parent — that can be dropped on, with their boxes this frame, in order. - reorderable_
owners - The owners of everything a carried row, card or item may be moved past this frame: every reorderable that can be dropped on, and all it paints.
- request_
rebuild - Asks the shell to rebuild the tree on its next frame. Anything that changed what a
component would build —
StateHandle::set_state, a hook’sset, a controller — calls this; an application rarely does. - resolve_
shape - The shape a box takes, on the rungs everything here is resolved on
(
card.dart,button_style.dart, and every othershapein the reference). - responsive
- A responsive selector for a given width, in logical px.
- row_
matches truewhen a cell ofrowcontainsquery(a case-insensitive substring). An empty or blank query lets everything through. The basis of aDataTable’s filter; reusable outside the widget (a reducer can filter its data the same way).- set_
debug_ default_ target_ platform_ override - Makes
default_target_platformreportplatform, or, withNone, what it would report on its own: for trying another platform’s behaviour during development, and for tests. It is process-wide, so a test that sets it resets it before it returns. - set_
image_ cache_ budget - The image stores, for an application that loads its own pictures or sizes the cache. Sets the ceiling on decoded network images held in memory, in bytes.
- set_
image_ fetcher - The image stores and the two things a host has to name: a decoder is chosen by the
imagesfeature, and the fetcher is registered by whoever has a network. SeeImage::network. Names the thing that gets bytes over the network. - set_
task_ spawner - Tells the widget layer how to run the work a component starts.
- settled_
index - Where a row ends up, given where it came from and the raw slot it was dropped on.
- sheet_
takes_ release - Whether a release at
velocitypx/s — positive growing the sheet — is the sheet’s to settle, or the list’s to fling. The reference’s rule. - snap_
target - The resting place a snapping sheet heads for when the finger lets go at
positionmoving atvelocity— both in the sheet’s own units, growing as it rises.snapsare the positions it may rest at, in increasing order. - sort_
rows - Returns a copy of
rowssorted by columncol(ascending= increasing) throughcompare_cells. A missing cell (a row too short) counts as empty. Reusable outside the widget: a reducer can sort its data in exactly the same way. - spacer
- Shorthand: a flexible spacer that pushes its neighbours apart (
flex: 1). - split_
sheet_ drag - How one movement of the finger is shared out, in px:
growis how far it went up (negative for down),list_offsethow far the list inside is scrolled,sizehow tall the sheet is, andfloorandmaxhow low and high it may go. - spring_
ease - A spring curve (the step response of a critically damped spring)
remapping a linear progress
t ∈ [0,1]: starts at rest (zero slope), rises briskly, arrives gently without overshoot — the same feel as the screen transitions, but in closed form (no velocity state).f(0) = 0,f(1) = 1, monotonically increasing. - spring_
step - One damped-spring step (semi-implicit Euler) driving
progresstowardstarget, primed byvelocity.stiffness/dampingset the stiffness and the damping (≈2·√stiffness= critical damping, no overshoot). Returns(progress, velocity, at_rest). - subtree_
ids - Identities of the subtree rooted at
root_id—widgetbeing the widget with that identity — that is[root_id, …descendants], derived by the same positional scheme ascollect_ids. - surface_
tint_ opacity - Colour science: the tone-based space the schemes are made in, and the surface tint. How strongly a Material 3 surface is tinted at a given elevation.
- take_
rebuild_ request - Whether a rebuild was asked for since the last time this was called, and forgets it. The shell reads this at the top of every frame.
- task_
arrivals - How many values pieces of work have brought so far, in this process. A shell keeps the count it last saw and rebuilds when it has grown: a count rather than a flag, so that one shell reading it takes nothing away from another.
- tasks_
in_ flight - How many pieces of work a component started are still running. The shell keeps frames coming while there are any, so that what they bring is shown.
- text
- Shorthand: a text widget.
text("Hello")=Text::new("Hello"). - trim_
image_ caches - The image stores, for an application that loads its own pictures or sizes the cache. Gives back every decoded image nobody is showing: what the system asks for when it is short of memory.
- word_
bounds - The word around character
indexoftext, as a range of characters — what a double click in aSelectionAreaselects.
Type Aliases§
- Actions
Alignment - Where the action buttons sit along the bottom row.
- Boxed
Task - A piece of work handed to the executor: it runs to its end and gives nothing back.
- CellFn
- A slot built on demand: the closure a
Tableheader, aTablerow or aKanbancolumn takes for a cell that holds a widget rather than a string. It is called again on every rebuild, so it hands back a fresh widget each time. - Image
Fetcher - The image stores and the two things a host has to name: a decoder is chosen by the
imagesfeature, and the fetcher is registered by whoever has a network. SeeImage::network. Hands the bytes aturlto the callback, once, from wherever suits the platform. - Image
Handle - A shared image handle: cheap to clone (reference counted), and stored as-is
inside a
crate::Primitive::Image. - Intrinsic
Height - A box as tall as its content would like to be. See
Intrinsic. - Intrinsic
Width - A box as wide as its content would like to be. See
Intrinsic. - Layout
Fn - The function that places a
CustomMultiChildLayout’s children: its own size, and the children to measure and place. - Overlay
Builder - What an overlay is built by:
offset → widget, run once per frame the region moves. - Scroll
State - SingleChildScrollView offsets
(x, y), per scrollable region. - Task
Spawner - Runs a
BoxedTasksomewhere, to its end.