Skip to main content

Crate frus

Crate frus 

Source
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::Dismissible widget 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::Rule and form::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, AboutDialog and AboutListTile.
locale
Which language the interface is in: locale::Locale, locale::resolve and locale::of. Which language the interface is in (locale.dart, app.dart:146).
localizations
The words the framework itself says: localizations::Localizations and localizations::of. The words the framework itself puts on screen, in the reader’s language (material_localizations.dart).
refresh
Pull-to-refresh: the refresh::RefreshIndicator widget 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::Semantics wrapper. Semantics: states what a widget is, from outside the widget.

Macros§

asset
An image embedded from a file, by path. asset!("../assets/logo.png") is Image::memory(include_bytes!("../assets/logo.png")), and like every include_*! the path is relative to the file that writes it.
column
A flex column. column![a, b, c] is Flex::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] is Flex::row().child(a).child(b).child(c). The result stays chainable: row![a, b].gap(8.0).align(...).

Structs§

AboutDialog
The box that says what this application is, with a way through to the licences.
AboutListTile
The row that opens the about box, for a settings screen or a drawer.
AbsorbPointer
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.
AccessibilityOverrides
What an application wants to say about Accessibility instead of the platform, one setting at a time.
ActionListener
Watches intents without answering them: its message is sent as well as, not instead of, whatever the answering Actions sends.
Actions
Answers intents for its subtree: the innermost Actions that 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.
AlertDialog
A dialog that asks something: an optional icon, an optional title, some content, and the buttons that answer it.
Aligned
Places its child at alignment in 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 = -1 hugs the left, 0 centres, +1 hugs the right; y = -1 is the top, +1 the bottom. Being continuous, it interpolates (crate::Lerp): a Tween<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).
AlignmentDirectional
A directional anchor: the horizontal axis is expressed start → end rather than left → right. x_start = -1 hugs the start edge (left in LTR, right in RTL), +1 the end edge. Resolved into a physical Alignment at 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).
AnimatedAlign
Slides its child to each new anchor instead of letting it jump across the box. The reference’s AnimatedAlign.
AnimatedContainer
A box whose properties animate on every change: color, size, radius and opacity — all with the same (duration, curve). Builds a Container under the hood.
AnimatedCrossFade
Shows one of two children, and cross-fades to the other when told to, the box moving between their sizes as they fade.
AnimatedDefaultTextStyle
Hands a moving text style down to everything below it rather than restyling the subtree at once. The reference’s AnimatedDefaultTextStyle.
AnimatedFractionallySizedBox
Grows and shrinks its share of the parent rather than taking the new share at once. The reference’s AnimatedFractionallySizedBox, and a name over crate::FractionallySizedBox::animated.
AnimatedIconData
A mark that is drawn from a number: 0.0 is one state, 1.0 is the other, and everything between is the way across.
AnimatedIcons
The bundled pairs, as one constant each — the same shape of thing Icons is for the static set.
AnimatedOpacity
Fades its child toward opacity on every change. See Container::animated_opacity.
AnimatedPadding
Moves its child’s inset rather than letting the space around it jump. The reference’s AnimatedPadding.
AnimatedPositioned
Moves a stack layer between two sets of pins instead of letting it appear at the new ones. The reference’s AnimatedPositioned.
AnimatedRotation
Turns its child rather than letting it snap between angles — a paint-time rotation, so nothing around it moves. The reference’s AnimatedRotation.
AnimatedScale
Grows and shrinks its child rather than letting it jump between sizes — a paint-time scale, so nothing around it moves.
AnimatedSize
A box that follows its child’s size over time: when the child grows or shrinks, the box moves to the new size over duration seconds instead of jumping there, and the child is clipped to it on the way.
AnimatedSlide
Slides its child by a fraction of its own size, at paint time, moving there rather than jumping. The reference’s AnimatedSlide.
AnimatedSwitcher
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 Animatable bound to an AnimationController (the result of Animatable::animate). value() samples the controller at the present instant — this is what the view reads at paint time.
AnimationController
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. Drives a value bounded to [lower, upper] through a pluggable simulation.
AnnotatedRegion
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.
AppBarTheme
Defaults for AppBar.
AspectRatio
Imposes a width / height ratio 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 and AspectRatio::new(0.5) a 100×200 one.
AsyncSnapshot
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.
AutofillGroup
The fields of one form, declared together so that the platform can fill them and save them as a set.
BackButton
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.
BackdropFilter
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.
BackdropGroup
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.
BadgeTheme
Defaults for Badge.
BarChart
A bar chart.
Baseline
Positions its child so that the child’s baseline lands baseline logical 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.
BorderDirectional
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.
BorderRadius
Corner radii, per corner (logical px). From<f32> covers the uniform case: anywhere a radius is expected, a plain 10.0 still works.
BorderRadiusDirectional
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).
BorderSide
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).
BottomAppBar
A bottom bar of actions, optionally notched for a docked floating action button.
BottomBar
A horizontal navigation bar at the bottom (phone).
BottomSheet
A modal sheet sliding up from the bottom: a background body + a retractable panel.
BouncingScrollSimulation
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.
BuildContext
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 a BuildContext of its own, for hooks, without declaring a widget type.
Button
A clickable button: the reference’s ElevatedButton, FilledButton, FilledButton.tonal, OutlinedButton and TextButton, chosen by Variant.
ButtonStyle
How a button looks in each state — the reference’s ButtonStyle (material/button_style.dart).
ButtonTheme
Defaults for Button: a style for each kind of button — the reference’s ElevatedButtonTheme, FilledButtonTheme, OutlinedButtonTheme and TextButtonTheme — and, under them, plain values for every kind (milestone 632).
Callback
A piece of work that an interaction sets off.
CallbackShortcuts
Binds keystrokes straight to messages, for when naming an intent would be ceremony — the reference’s CallbackShortcuts.
CaptionButtonsTheme
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.
CardTheme
Defaults for Card.
CarouselView
A controlled carousel.
Center
Centres its child in the room it is given — an Aligned at Alignment::CENTER, and the same room.
ChangeNotifier
A notifier with nothing to say but changed.
Checkbox
A checkbox, with an optional label.
CheckboxListTile
A row whose whole width ticks a box.
CheckboxTheme
Defaults for Checkbox.
ChildConstraints
What a child is given, per axis, by ChildLayout::layout_child.
ChildLayout
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.
ChipTheme
Defaults for Chip.
CircleAvatar
A circle that represents a user: a picture cropped to the circle, or, without one, a child — usually their initials — centred on a colour.
CircularProgressIndicator
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).
ClampedSimulation
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. 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.
ClampingScrollSimulation
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.
ClipOval
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).
ClipPath
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.
ClipRRect
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.
ClipRect
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.
CloseButton
The cross that dismisses something, named in the reader’s language.
CollapsingHeader
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].
ColorFiltered
Applies a ColorFilter to every pixel of its child: greyscale, a tint, a contrast curve, a silhouette.
ColorPicker
A controlled colour picker, laid out as a grid of swatches.
ColorScheme
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_X pairs. Written by hand for light and dark; from_seed (HCT) comes after.
ColoredBox
Paints its box in one colour behind its child — a Container with a colour and nothing else, for the tree that only wants a fill.
Colors
The named colours of the material palette, as plain Color constants.
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.
ConstrainedBox
Floors and ceilings on either axis, for a child that would otherwise be free to take any size.
ConstraintsTransform
What a ConstraintsTransformBox gives its child, per axis, and what it does about a child that comes back too big.
ConstraintsTransformBox
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.
CupertinoColors
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.
CupertinoDynamicColor
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.
CupertinoTextTheme
The type of the Apple-style widgets resolved: every style, its colour picked for where it is used. CupertinoTheme::of makes one.
CupertinoTextThemeData
The type of the Apple-style widgets as asked for: each style an application sets, or None for the default.
CupertinoTheme
The theme of the Apple-style widgets resolved for where it is used: every value concrete, every adaptive colour picked. CupertinoTheme::of makes one.
CupertinoThemeData
The theme of the Apple-style widgets as asked for: each value an application sets, or None for the default — the reference’s CupertinoThemeData.
Curved
The rest of the animation layer: tweens chained and curved, the scroll simulations and their constants. An Animatable whose progress is shaped by a Curve first — the result of Animatable::curved.
CustomLayout
A layout a hook hands the walk: the function and the keys, one per child.
CustomMultiChildLayout
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.
CustomPaint
A fixed-size custom canvas, painted by a closure.
DataTable
A text data table that sorts its own rows according to the sort state supplied, then delegates the rendering to a Table.
DatePicker
A month calendar (or a pair of months in range_dual mode).
DateTimePicker
A date-and-time picker.
DateTimeRange
A date-and-time range picker.
DecodeSize
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.
DecoratedBox
Paints a decoration — a fill or a gradient, a border, corners, a shadow — behind its child, or in front of it.
DecoratedBoxTransition
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).
DecorationImage
A picture painted as a background, and the reference’s fitting. A picture painted as a box’s background — the reference’s DecorationImage.
DefaultTextStyle
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.
DefaultTextStyleTransition
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 Semantics wrapper asks the walk to do with its subtree’s annotations.
Dialog
A modal surface over the screen: rounded, elevated, held off the window’s edges.
DismissSpec
What a Dismissible tells the frame about itself.
DismissState
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.
DividerTheme
Defaults for Divider.
DragSource
A widget that can be picked up, as the shell sees it.
DragTarget
A widget that can be dropped onto.
DragTrack
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.
DraggableScrollableSheet
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.
DrawerButton
The bars that open the panel on the leading edge, named in the reader’s language.
DrawerHeader
A fixed block at the top of a side panel, with a rule under it.
DrawerTheme
Defaults for Drawer.
DropSliderValueIndicatorShape
The reference’s drop, a slider’s default indicator: a rounded label over a point that rests on the thumb.
DropZone
A widget that can be dropped onto, as the shell sees it.
DropdownButton
A single-selection dropdown list (a floating menu).
DropdownMenu
A dropdown that looks like a text field, filters as it is typed into, and drops its choices below itself.
DropdownOption
One choice in a DropdownButton’s list.
DropdownTheme
Defaults for DropdownButton and its options.
Edges
A set of edges, as four independent flags — which sides of a box an operation applies to. Used by crate::SafeArea to pick the edges it insets, and by MediaQuery::remove_padding to pick the ones it consumes.
Edit
Edit state of an input field: cursor + selection anchor.
EditSnapshot
A field’s value and where the caret was in it: what one step of undo restores.
EndDrawerButton
The bars that open the panel on the trailing edge.
English
The English table: every method left as the trait wrote it.
ErrorSummary
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 — see is_empty.
ExcludeFocus
Nothing inside can take focus. The subtree is still drawn and still measured; it is simply not somewhere the keyboard can go.
ExcludeFocusTraversal
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.
ExcludeSemantics
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.
ExpansionPanel
One panel of an ExpansionPanelList: a header and what it hides.
ExpansionPanelList
A column of ExpansionPanels drawn as one surface that splits as a panel opens.
ExpansionPanelListTheme
Defaults for ExpansionPanelList.
ExpansionTile
A tile that opens to show more.
FadeTransition
Fades its child by a value the caller owns: 0.0 invisible, 1.0 solid.
FillAxes
The axes a widget asks to fill: on each, it takes the room its parent leaves it rather than shrink-wrapping its children.
FilterContext
A widget: a composable interface element.
FittedBox
Scales its child to fit its own box according to a BoxFit (like CSS object-fit), then centres it. The child is measured at its natural size; the scale factor follows from that — hence the effect on layout (unlike Transform, where the scale is set by hand).
FittedSizes
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, with Expanded as its tight case.
FloatingActionButton
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.
FocusTraversalGroup
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.
FocusTraversalOrder
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.
FocusableActionDetector
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.
FractionalTranslation
Offsets its child by a fraction of the child’s own size, at paint time, without touching layout.
FractionallySizedBox
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.
FrictionSimulation
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. Friction deceleration — scroll and fling momentum — in closed form.
FrusApp
An application: a root component, and how it is dressed.
FutureBuilder
Builds from a future — the reference’s FutureBuilder, over BuildContext::use_future.
GestureDetector
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.
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.
GoRouterState
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.
GradientRamp
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.
GridTile
A cell of an image list: a child, with a strip laid over its top or its bottom.
GridTileBar
The strip of words laid over a GridTile: up to two lines, with a slot at each end.
GridTileBarTheme
Defaults for GridTileBar.
GridView
A grid of columns equal 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.
HeaderState
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.
HeroSpot
A hero seen by the render driver: which tag, which screen of the transition it belongs to, and where it sits.
HoverRegion
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 24 px and the theme’s foreground colour (on_surface).
IconButton
A button holding one glyph.
IconButtonTheme
Defaults for IconButton.
IconData
Which icon — one of the bundled set, or a path of the caller’s own.
IconTheme
Defaults for Icon — the reference’s IconTheme, 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.
IgnoreBaseline
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.
IgnorePointer
Makes its child invisible to input while leaving it laid out and painted.
Image
An image, fitted by fit into whatever box it ends up with.
ImageData
An image’s pixels: 8-bit RGBA, sRGB, row by row from the top-left corner (width * height * 4 bytes). Immutable once built.
ImageFiltered
Applies an ImageFilter to its child: a blur, a dilate, an erode.
ImageIcon
A picture used where an icon would go: a brand mark, a flag, a custom glyph that is artwork rather than a path.
ImagePiece
A picture painted as a background, and the reference’s fitting. One part of a picture drawn somewhere: where, and which part, in 0..1 of 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.
IndexedStack
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 InkWell and Button.
InkWell
A box that splashes when tapped — the reference’s InkWell.
InputState
The input state retained by the runtime, passed to the interface build.
Insets
Insets — padding or margin — per side, in logical pixels.
InsetsDirectional
Directional insets: start/end instead of left/right. In LTR, start is the left; in RTL it is the right. Resolved into concrete Insets at layout time.
InspectorNode
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").
InteractiveView
The retained state of an InteractiveViewer: the scale factor and the translation applied to the child. The screen point q receives the content painted flat at p according to q = scale · p + (tx, ty). The identity (scale = 1, zero translation) places the child as is in the viewport.
InteractiveViewer
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”.
KeepVisible
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.
KeyboardListener
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.
LayerFilter
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_none is the fast path the renderer takes when nothing is asked for, which is nearly always.
LayerShaderMask
A colour blended over a subtree — the ShaderMask widget’s payload.
LayerTransform
What a layer does at compositing, for painting a scene by hand. The transform applied to a layer (Primitive::Layer) at compositing time: an arbitrary Affine (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.
LayoutBuilder
Builds its child from the available size (size → widget).
LayoutCache
The relayout cache, retained in the crate::Runtime from one frame to the next.
LicenseNotice
One licence text, and every package that ships exactly it.
LicensePage
The licences of everything an application links, as a page.
LimitedBox
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_width or max_height; where it has one, the box changes nothing.
LineChart
A line chart: the same (label, value) series as a BarChart, but joined into a polyline (segments + markers) so that a trend can be read.
LinearGradient
A gradient along a line, from begin to end (gradient.dart’s LinearGradient). Unset, from the centre of the left side to the centre of the right.
LinearProgressIndicator
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.
ListBody
A named entry point for the body of a scrollable: the reference’s ListBody.
ListTile
A row of a list: leading, title, subtitle, trailing.
ListView
A virtualised list with a fixed item extent.
ListWheel
A scrolling cylinder of rows, resting on one of them. See the module documentation.
ListenableBuilder
Builds again whenever a Listenable says it changed — the reference’s ListenableBuilder.
Listener
Hears the pointer’s raw events on its child: down, move, up, cancel, and a mouse’s hover — the reference’s Listener.
ListenerEvent
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).
MaterialBanner
A message across the top of the screen with the actions that answer it.
MaterialColor
A colour ramp: one hue in numbered steps, from the palest (50) to the darkest (900), plus the primary step the family is named after.
MediaQuery
The surface an interface is being built for.
MediaScope
Describes the surface for its child and everything under it.
MenuAnchor
A popover: an anchor plus an optional floating panel.
MenuBar
The menus along the top of a window: File, Edit, View.
MenuBarTheme
Defaults for MenuBar: the bar, the words on it, and the menus it opens (milestone 636).
MenuItem
One entry of a PopupMenuButton’s list: an action, or the rule between two groups of them.
MenuPath
Which menu of a MenuBar is 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.
MenuTheme
Defaults for PopupMenuButton and its items.
ModalBarrier
What a subtree is not allowed to contribute to the frame.
MouseRegion
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.
NavigationBar
A navigation bar: a title + an optional back button.
NavigationDestination
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.
NavigationDrawer
A panel of destinations: the navigation’s widest form.
NavigationRail
A vertical navigation rail (tablet / desktop).
Navigator
A screen container with a slide transition.
NoSliderShape
No part at all: the reference’s noThumb, noOverlay and noTickMark, 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. See Container::opacity.
OrientationBuilder
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 OverflowBox hands its child, and where the result sits.
OverflowBar
A row of children that folds into a column when they do not fit on one line.
OverflowBox
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.
OverlayPortal
A portal: an anchor (in the flow) and an optional floating overlay.
OverscrollGlow
The glow on one edge of one scrollable.
OverscrollStretch
The stretch along one axis of one scrollable.
Package
A package, as cargo names it.
Padding
Insets its child by padding on 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.
PagePose
How one page looks at a moment of a transition.
PageSelectorTheme
Defaults for TabPageSelector — the row of dots that says which page of several you are on.
PageSnap
How a scrollable snaps to pages, as the shell and the runtime see it.
PageTransitionsTheme
How the theme’s platform chooses a PageTransitionsBuilder: the reference’s PageTransitionsTheme.
PageView
A scrollable that rests only on page boundaries.
PagedView
The description of a paged view, exposed to the render driver.
Pagination
A controlled page picker; pages are 1-indexed.
PaintCache
The paint cache, retained in the crate::Runtime from 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.
PolynomialFit
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.
PopupMenuButton
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 Positioned pins, in logical pixels from the stack’s edges. None on an edge means “not pinned there”.
RadialGradient
The three gradients and how they tile. A gradient round a centre (gradient.dart’s RadialGradient): the first colour at center, the last on the circle radius round it. With a focal point, the first colour is on the circle focal_radius round that point instead, and the gradient runs between the two circles.
Radio
One radio option, internal to the group. One radio button.
RadioGroup
A single-selection group of radio buttons.
RadioListTile
A row whose whole width chooses one option.
RadioTheme
Defaults for RadioGroup.
RangeSlider
A range slider: two thumbs bounding an interval of min..=max, controlled and draggable — the reference’s RangeSlider.
Rating
A star rating: value out of max.
Rect
An axis-aligned rectangle, in logical pixels.
RectangularSliderValueIndicatorShape
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.
RefreshIndicator
Wraps a scrollable so that pulling it past its top edge asks for fresh data.
RefreshPull
The retained state of one refresh area, held by the crate::Runtime.
RefreshSpec
What a RefreshIndicator widget 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.
RegionPoint
One end of a RegionSelection: a text, and a character boundary in it.
RegionSelection
The selection an area holds: where the press landed, where the pointer is now, and what that makes selected in each text.
ReorderableList
A list whose rows can be dragged into a new order.
ResolvedTextStyle
Type as the renderer receives it, and the framework’s defaults. A TextStyle with every question answered: what to measure with, and what to draw.
Responsive
Selects a subtree from the size class, delegating to whichever is chosen.
RichText
A rich text paragraph. It wraps at the width it is offered, as crate::Text does 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.
RotatedBox
Rotates its child by quarter_turns quarter 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…).
RoundSliderOverlayShape
The reference’s round halo: a disc radius across at full activation, grown from the thumb’s centre.
RoundSliderThumbShape
The reference’s round thumb: a disc radius across 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.
RoundSliderTickMarkShape
The reference’s round tick mark: a dot radius across from its centre, a quarter of the track’s height unless given.
RoundedRectRangeSliderTrackShape
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.
RoundedRectSliderTrackShape
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.
RowOnWheel
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.
SafeArea
Pads its child by the system’s occupied edges.
Scaffold
The screen shell. A fluent builder finished by Scaffold::build.
ScaffoldGuard
Puts back the previous ambient shell when dropped — including while a panic unwinds.
ScaffoldInfo
What the Scaffold around a widget knows about itself.
ScaffoldMessenger
A notification layer anchored in a corner.
ScaffoldScope
A shell for one subtree: the counterpart of MediaScope, one milestone later and for the other thing a shell knows.
ScaleTransition
Scales its child by a value the caller owns, about its centre or a pivot of the caller’s choosing. 1.0 is neutral.
Scene
A 2D scene: the declarative description of what to draw.
ScrollBallistic
The fling in flight on one scroll region: one simulation per axis, and the time elapsed since the finger let go.
ScrollBehavior
How the scrollables under it behave, from the platform it follows.
ScrollBehaviorGuard
Puts the previous behaviour back when dropped.
ScrollConfiguration
Puts a ScrollBehavior in force for a subtree.
ScrollGlows
The four glows of one scrollable region.
ScrollMetrics
The state of one scroll axis, as the physics sees it. All in logical pixels.
ScrollOverlay
A scroll region with something drawn over it that knows where it has got to.
ScrollPhysics
The behaviour of a scrollable: its feel at the edges and after a fling, and whether the user may scroll it.
ScrollPosition
Where a scroll region is, and how much room it has, at the moment it is reported.
ScrollStretch
Both axes of one scrollable’s stretch.
ScrollTo
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).
ScrollbarFade
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.
SearchAnchor
A search bar and the view it opens.
SearchBar
A raised pill holding a search field, with a slot before it and any number after.
SegmentedButton
A single-selection segmented control.
SegmentedTheme
Defaults for SegmentedButton.
SelectionArea
A subtree in which every Text can be selected, and one drag selects across them: a paragraph broken into three texts selects as a paragraph, and copying gives those three lines.
SelectionHandle
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 Semantics widget.
SemanticsProperties
A widget’s resolved semantic annotation, for accessibility.
ShaderMask
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.
SheetArea
One sheet of the frame: where its panel is, what it was built with, and the scroll areas walked inside it.
SheetSpec
What a DraggableScrollableSheet tells the frame about itself. Heights are shares of the box the sheet fills, from 0.0 to 1.0.
SheetState
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.
SimpleDialog
A dialog that offers a choice: a title, and a list of options to pick from.
SimpleDialogOption
One row of a SimpleDialog: a full-width option that answers the question by being chosen.
SingleChildScrollView
A scrollable container.
Size
A 2D size (width × height).
SizeAnimation
How an AnimatedSize moves: 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.
SizeTransition
Reveals its child along one axis by a value the caller owns: the box is that fraction of the child’s size, 0.0 nothing and 1.0 all of it, and the child is cut to it.
SizedBox
A box of a given size — or one that fills what it is given, or one that takes only what its child needs.
SizedOverflowBox
A box of a stated size whose child is laid out at another one, and spills.
Skeleton
An animated loading block.
SlideTransition
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’s Slider.
SliderPaint
What every part is painted with.
SliderPalette
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.
SliderShape
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.
SliderTheme
Defaults for Slider and RangeSlider.
SliderThumb
How a thumb is to be painted this time.
SnackBar
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.
SnackBarQueue
A notification queue — pure, application-side (in the spirit of crate::form::Form).
SnapSimulation
The motion of a sheet to the stop it is settling on: a constant speed — the release’s, or SHEET_SNAP_MIN_SPEED if 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.
SpringDescription
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. The parameters of a damped spring.
SpringSimulation
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. A spring pulling a value from start towards end, started with an initial velocity. The reported position is end + solution(t).
Stack
A container of overlaid layers.
StateContext
What a State is told when it builds and when its lifecycle runs: everything a BuildContext offers (this dereferences to one), and the state’s own handle.
StateHandle
A way to reach a widget’s state from outside its build: from a handler, a listener, a timer. Cheap to clone.
StateStore
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.
StickyHeader
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.
StreamBuilder
Builds from a stream of values — the reference’s StreamBuilder, over BuildContext::use_stream: the work is given a StreamSink and adds its values to it.
StreamSink
Where a stream started by BuildContext::use_stream gives 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.
SubmenuButton
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.
SurfaceGuard
Holds a surface installed — see MediaQuery::install. Dropping it puts back the description and the reader’s font size that were in force before.
SweepGradient
The three gradients and how they tile. A gradient turning round a centre (gradient.dart’s SweepGradient): from start_angle to end_angle, in radians clockwise from the right.
Switch
An on/off switch.
SwitchListTile
A row whose whole width flips a switch. The commonest shape a settings screen has.
SwitchTheme
Defaults for Switch.
SystemBars
Both system bars with every question answered — what the shell hands the platform.
SystemUiOverlayStyle
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.
TabBarTheme
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.
TabPageSelector
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).
Text
A single-line text widget.
TextBlock
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.
TextDecoration
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.
TextEditingController
A text field’s text, and the changes to it.
TextField
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.
TextFieldStyle
Everything a TextField paints, each answer the caller’s, the theme’s, or the framework’s — resolved in that order.
TextFieldTheme
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.
TextScaleGuard
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 before install_text_scale, when dropped — including while a panic unwinds, so one bad frame cannot leave a stale scale installed for every frame after it.
TextSelectionTheme
How a selection in text that is not a field looks — a selectable text’s and a SelectionArea’s.
TextSpan
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.
TextStop
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.
TextStyle
The typographic attributes of a single line of text — every field optional.
TextTheme
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.
ThemeBuilder
Builds its child from the ambient theme (theme → widget).
Themed
Applies a theme to its child and everything under it.
TimePicker
A time picker.
TimeRange
A time range (a start → end slot), the temporal counterpart of the dual calendar (crate::DatePicker::range_dual): two TimePickers labelled “Start” and “End”, side by side. A single on_change(endpoint, field, value) callback receives every change (values always 24-hour); the application decides how to update its state.
Timeline
A vertical chronology.
TitleBar
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.
TitleBarTheme
The colours of a WindowMenuBar’s line (milestone 642), on the title bar’s line or under the system’s.
ToggleButtons
A bank of buttons sharing their edges, any number of which may be on.
ToggleButtonsTheme
Defaults for ToggleButtons.
Tolerance
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. The thresholds below which a simulation counts as “at rest”.
TonalPalette
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.
ToolbarContext
What is true of the field and the clipboard when the bar is asked for: the three conditions the default list is built from.
ToolbarItem
One item of the bar: a built-in editing action, or the application’s own.
ToolbarMark
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.
TransformValues
The numbers a paint-time transform is made of that can sensibly be interpolated: a scale on each axis and a turn.
TransitionFrame
What a transition paints at one moment: the two pages, and what lies between them.
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 through frus_widgets without depending on frus-core directly. Interpolates a value between two bounds, driven by a [0,1] progress value.
TweenSequence
The rest of the animation layer: tweens chained and curved, the scroll simulations and their constants. A run of Animatable segments 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.
UnconstrainedBox
Lets its child be its natural size even where the parent offers less — and says so when that does not fit.
UndoHistory
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. Unlike UseState, 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.
UserAccountsDrawerHeader
A DrawerHeader laid 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.
ValueAnim
Timeline of an implicitly animated value (Widget::anim_target): interpolates from → to according to the widget’s curve and duration. current is the value handed to the paint. A change of target rebases the timeline from the current value (a clean, continuous restart).
ValueListenableBuilder
Builds from a ValueNotifier’s value, and again whenever it changes — the reference’s ValueListenableBuilder.
ValueNotifier
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 through frus_widgets without depending on frus-core directly. A pointer speed, in logical pixels per second.
VelocityEstimate
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. A velocity, with what the tracker knows about how much to trust it.
VelocityTracker
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. A rolling history of pointer positions that can be asked for a velocity.
VerticalDivider
A vertical separator: a thin line, centred in a wider box that gives it room.
VirtualList
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.
VisualDensity
How compact the controls are — the reference’s VisualDensity.
WheelGeometry
The shape of the cylinder rows are laid on.
WidgetId
A widget’s positional identity: a hash of its path in the tree.
WidgetStateProperty
A value chosen by the states a widget is in (widget_state.dart:821).
WidgetStates
The set of states a widget is in, as a byte rather than a hash set.
WidgetThemes
The per-widget defaults carried by a Theme.
WindowInsets
The window insets, split by nature: padding is the area permanently taken by the system (status and navigation bars, the notch — all static), while view_insets is the area covered by transient UI, chiefly the soft keyboard. Avoiding the keyboard means keeping content clear of WindowInsets::safe.
WindowMenuBar
The window’s menu bar, above everything the window shows (milestone 642).
Wrap
A named entry point for a wrapping row (flex-wrap).

Enums§

AlertKind
The nature of an alert box.
Align
How children are aligned on the cross axis.
AlignContent
How a wrapping container’s lines are distributed on the cross axis.
AlignmentGeometry
A resolvable anchor — either physical (Alignment) or directional (AlignmentDirectional). A widget accepts either one, through Into, and resolves it against the reading direction at render time.
AnimationStatus
How far along an animation controller is.
AppIcon
What an application’s icon is.
AutofillHint
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.
AxisConstraint
What a ConstraintsTransformBox does to one axis of the space on offer.
Ballistic
The motion a scrollable follows once the finger has let go.
BlendMode
How a source colour is combined with the destination underneath it.
BlurStyle
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-fit property.
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.
Capitalization
Which letters the software keyboard capitalises on its own.
CaptionButton
One of the window’s three buttons.
CardVariant
Which of the three cards this is.
ChildAxis
What a child is given on one axis by a ChildLayout::layout_child call.
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).
ClipShape
The clip shape of a Primitive::Layer, inscribed in its clip rectangle. Compositing multiplies the layer’s alpha by the shape’s coverage, with antialiased edges. This is the building block of the ClipRRect, ClipOval and ClipPath widgets.
ColorFilter
A function applied to every pixel of a subtree, independently of its neighbours: greyscale, a tint, a contrast curve.
ConnectionState
Where a piece of work that finishes later has got to.
ControlAffinity
Which side the chevron sits on — the reference’s ListTileControlAffinity.
CupertinoUserInterfaceLevelData
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 through frus_widgets without depending on frus-core directly. An easing curve remapping [0,1] → [0,1].
DecorationPosition
Where a DecoratedBoxTransition paints its decoration.
DestinationIcon
What a destination shows above or beside its label: a drawn icon, or a text glyph.
DismissAxis
Which directions an item accepts.
DismissDirection
Which way an item may be swiped, and which way it went.
DismissPhase
Where an item is in its cycle.
DragMode
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.
EditAction
What the shell does to the focused field when a built-in item of the bar is pressed.
EditKind
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.
FillRule
What a layer does at compositing, for painting a scene by hand. Which points a filled path covers, where its contours cross or nest.
FlexDirection
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.
FloatingLabelAlignment
Where a field’s floated label sits along its top (milestone 656) — the reference’s FloatingLabelAlignment.
FloatingLabelBehavior
When a field’s label floats above the value (milestone 656) — the reference’s FloatingLabelBehavior.
FocusDirection
Direction of arrow-key focus navigation.
FontFamily
A font family, as a style names it.
FontWeight
Font weight — a useful subset, mapped onto the CSS/OpenType weights.
FractionalMask
A MaskShader written in fractions of the box it covers — (0, 0) the top-left corner, (1, 1) the bottom-right.
GlowEdge
Which edge of a viewport a glow sits on.
Gradient
The three gradients and how they tile. Any of the three.
HoverEvent
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.
IconAlignment
Which side of the label an icon goes (button_style_button.dart:55).
IconButtonVariant
How much of a surface an icon button brings with it.
IconStyle
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.
ImageFilter
A filter that treats the subtree as an image, so a pixel’s result depends on its neighbours: a blur, a spread, a shrink.
ImagePlaceholder
What stands in for an image while it is on its way.
ImageRepeat
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.
ImageState
Where an Image’s pixels are: here, on their way, or never coming.
InsetsGeometry
Insets that are either physical (Insets) or directional (InsetsDirectional). A widget accepts either one — or one number for all four sides — through Into, and resolves it against the reading direction at layout time.
Interaction
A widget’s visual pointer interaction state.
IntrinsicAxis
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).
KeyboardType
Which keys the software keyboard should offer.
Lifecycle
The application’s lifecycle state. The framework hands it to Application::on_lifecycle at 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.
ListenerEventKind
What happened to the pointer, as a Listener hears it (milestone 586).
MainAxisSize
How much room a Row or Column takes along its own main axis.
MaskShader
What a layer does at compositing, for painting a scene by hand. The colour a ShaderMask blends 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.
OverscrollIndicator
What a scroll area shows when it is pulled past its edge and its physics refuse to move (milestone 591).
PageTransitionsBuilder
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 through Widget::on_pan.
PathGradient
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.
PathVerb
A single drawing command.
Placement
Where to place the overlay relative to its anchor, or to the window.
Primitive
A drawing primitive.
RailLabels
When a navigation widget shows its destinations’ labels.
RampShape
What a layer does at compositing, for painting a scene by hand. Where a GradientRamp’s colours run.
RefreshPhase
Where a refresh area is in its cycle.
RemoteData
The four states of an asynchronously loaded value.
ReorderAxis
Axis along which a reorderable widget moves while dragging: Table columns slide horizontally (the default), Kanban cards vertically. The shell adapts the drag preview (ghost direction, insertion indicator) to this axis.
ReorderGrab
How a row of a ReorderableList is picked up.
Role
An element’s semantic role (a subset aligned on AccessKit/ARIA roles: what a screen reader announces).
ScrollDecelerationRate
How fast a fling’s momentum is taken away — the bouncing family’s second deceleration profile.
ScrollFeel
How a scrollable behaves at its edges and after a fling — what the reference’s bouncing and clamping physics differ by.
ScrollTarget
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).
ShapeBorder
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.
ShortcutKey
A key a shortcut can be bound to — a general vocabulary, unlike Key, which is the one text editing needs.
ShowValueIndicator
When a slider shows its value indicator — the reference’s ShowValueIndicator.
Side
The edge a box’s content ran past.
SizeClass
A display-width band.
SlideFrom
The edge a SlideTransition::from_edge comes in from.
SliderInteraction
What a press and a slide may do to a slider (milestone 650) — the reference’s SliderInteraction.
SnackBarBehavior
Where a snack bar sits, and therefore what it looks like (snack_bar_theme.dart:27).
SnackBarKind
The nature of a notification (its accent color).
SnackBarPosition
The corner the notifications are anchored to.
StackFit
How a stack sizes the layers that are not crate::Positioned — the reference’s StackFit (stack.dart:301).
StateFilter
What a set of states has to look like for one entry of a WidgetStateProperty to answer (widget_state.dart:27).
StrokeCap
How an open line ends — the reference’s StrokeCap (milestone 630).
TabAlignment
Where the tabs sit in a bar with room to spare.
TabBarVariant
Which of the two tab bars this is.
TapTarget
How much room a small control reserves for the finger that works it.
TargetPlatform
The platforms whose conventions a widget can follow.
TextAlign
How the lines of a piece of text are aligned inside the box it was given.
TextDirection
The reading direction of text and layout. An ambient context: in RTL, rows, alignment and directional insets all flip horizontally.
TextFieldVariant
Which of the reference’s two fields this is.
TextInputAction
What the keyboard’s action key does, and what it says.
TextOverflow
What becomes of text that does not fit the box it was given.
ThemeMode
Which of an application’s themes is on display (app.dart:57).
ThumbDrag
A moment of a drag on one of a widget’s thumbs: see Widget::on_thumb_drag.
TileMode
The three gradients and how they tile. What a gradient does past its ends (dart:ui’s TileMode).
TimeField
Which field of a time (TimeRange) is changing.
TitleBarRole
What a part of the title bar’s line is to the system, which acts on it.
ToggleAxis
Which way a bank runs.
Toggled
The checked state of a toggleable control (checkbox, switch, radio).
UserScroll
Whether the user may scroll an area (milestone 649): the reference’s AlwaysScrollableScrollPhysics and NeverScrollableScrollPhysics, 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.
VelocityStrategy
The shared animation layer — physics, curves, driver — see frus_core::animation. Re-exported here so applications can reach it through frus_widgets without depending on frus-core directly. How a VelocityTracker turns a history of positions into a velocity.
VerticalDirection
Which way the vertical axis runs: a column’s main axis, a row’s cross axis.
WidgetState
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 through frus_widgets without depending on frus-core directly. 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::Elevated card. Elevation is a height, not a blur radius: Card::elevation says 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 through frus_widgets without depending on frus-core directly. 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 as 160.0 + 1.0, the + 1 being 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 dense filled 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 outlined field.
FIELD_PADDING_X
Padding either side of the content, both variants.
FIELD_PADDING_Y
Padding above and below the content in a filled field.
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::memory decodes 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::StartOffset leaves 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 reads kMinInteractiveDimension).

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 (an AnimationController producing 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.
IntoCleanup
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 through frus_widgets without depending on frus-core directly. A linearly interpolable value.
Listenable
Something that can be listened to.
Localizations
What the framework says, for one language.
MaybeSend
Send where 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 through frus_widgets without depending on frus-core directly. A motion described as a pure function of time.
SliderOverlayShape
Paints the halo around a hovered, focused or held thumb: the reference’s overlay shape.
SliderThumbShape
Paints a thumb: the reference’s thumb shapes, a slider’s and a range slider’s.
SliderTickMarkShape
Paints a tick mark, one per division: the reference’s SliderTickMarkShape.
SliderTrackShape
Paints a slider’s track: the reference’s SliderTrackShape and RangeSliderTrackShape in one.
SliderValueIndicatorShape
Paints the value indicator over a thumb: the reference’s value indicator shapes.
State
What a StatefulWidget keeps, and how it draws itself from it.
StatefulWidget
A widget whose State outlives the rebuilds. The widget is only the configuration: it is made again on every rebuild, and the state is what is kept.
StatelessWidget
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 by Widget::paint and asked what a click means by Widget::on_click; Msg is 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 input into output by fit — the reference’s applyBoxFit.
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 Ui for 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 bytes to 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 a DecodeSize: the same bytes decoded at two sizes are two entries, and load is the one that decodes at size.
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 when in_the_background says so: Fetched::Loading until the pixels are there, and the frames keep coming meanwhile (images_in_flight counts 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_surface at DISABLED_CONTAINER_OPACITY over 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_surface at DISABLED_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: delta is 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 Scaffold examples 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 a DecodeSize: decode is handed the size along with the bytes.
find_by_key
Identity of the first widget declaring the key key (a hash), or None. It is how the shell resolves a focus-by-key request (Command::focus): the application wraps a field in keyed(k, …), then focuses by k.
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 key names: 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. None when nothing declares the key, or nothing under it is a sheet.
find_widget
The widget of the tree under root that has the identity target, or None if none does. Identities are the ones the walk that built the frame gave, so an id read from a Ui finds 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 before to after sends (milestone 660): each widget whose subtree the focus left hears false, deepest first, then each whose subtree it entered hears true, 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_caches is 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 at point inside viewport — 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.
images_in_flight
The image stores and the two things a host has to name: a decoder is chosen by the images feature, and the fetcher is registered by whoever has a network. See Image::network. How many images are in flight right now.
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’s reorder_index value (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)) is Keyed::new(todo.id, todo_row(todo)).
lerp_rect
Interpolates a rectangle towards another, corner by corner.
nearest_reorder_slot
Which of a list’s slots a carried item lands on when the pointer is over none of them — the index into slots, or None. The list runs along axis.
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 radius centred at centre_x on that edge.
over_surface
on_surface at opacity over surface, resolved to an opaque colour here rather than handed to the GPU as an alpha.
page_count
The number of pages for len rows cut into slices of per_page (at least 1).
page_of
Which page an offset sits on, as a fraction: 1.5 is halfway between the second and the third. extent is the distance from one page to the next.
page_range_label
The “N-M of T” line under the current slice (0 of 0 when empty) — milestone 236.
page_rows
The slice of rows of page current (1-indexed) with a size of per_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 elevation high, with corners radius, behind rect: BoxShadow::for_elevation’s three, each as BoxDecoration paints 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 hover designates 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 prims primitives for the preview, according to the cursor’s abscissa cursor_x. The source column (src, lifted, with lifted_owner its 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 — between anchor and extent, in whichever order they were dragged.
reorder_drop_after
Is a carried item dropped after the slot the pointer is over, rather than before it?
reorder_siblings
The slots a reorderable id can 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’s set, 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 other shape in the reference).
responsive
A responsive selector for a given width, in logical px.
row_matches
true when a cell of row contains query (a case-insensitive substring). An empty or blank query lets everything through. The basis of a DataTable’s filter; reusable outside the widget (a reducer can filter its data the same way).
set_debug_default_target_platform_override
Makes default_target_platform report platform, or, with None, 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 images feature, and the fetcher is registered by whoever has a network. See Image::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 velocity px/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 position moving at velocity — both in the sheet’s own units, growing as it rises. snaps are the positions it may rest at, in increasing order.
sort_rows
Returns a copy of rows sorted by column col (ascending = increasing) through compare_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: grow is how far it went up (negative for down), list_offset how far the list inside is scrolled, size how tall the sheet is, and floor and max how 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 progress towards target, primed by velocity. stiffness/damping set 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 — widget being the widget with that identity — that is [root_id, …descendants], derived by the same positional scheme as collect_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 index of text, as a range of characters — what a double click in a SelectionArea selects.

Type Aliases§

ActionsAlignment
Where the action buttons sit along the bottom row.
BoxedTask
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 Table header, a Table row or a Kanban column 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.
ImageFetcher
The image stores and the two things a host has to name: a decoder is chosen by the images feature, and the fetcher is registered by whoever has a network. See Image::network. Hands the bytes at url to the callback, once, from wherever suits the platform.
ImageHandle
A shared image handle: cheap to clone (reference counted), and stored as-is inside a crate::Primitive::Image.
IntrinsicHeight
A box as tall as its content would like to be. See Intrinsic.
IntrinsicWidth
A box as wide as its content would like to be. See Intrinsic.
LayoutFn
The function that places a CustomMultiChildLayout’s children: its own size, and the children to measure and place.
OverlayBuilder
What an overlay is built by: offset → widget, run once per frame the region moves.
ScrollState
SingleChildScrollView offsets (x, y), per scrollable region.
TaskSpawner
Runs a BoxedTask somewhere, to its end.