Expand description
Material components. Each module documents the M3 component it
implements and what remains for M3 Expressive (docs/ROADMAP.md).
Structs§
- Assist
Chip - M3 assist chip: a smart or automated action, with an optional primary leading icon.
- Avatar
- A circular avatar. See the module documentation.
- Badge
- An M3 badge.
- Bottom
AppBar - The M3 bottom app bar: actions and an optional trailing FAB.
- Button
Group - Button
Progress Playback - Persistent progress/loading presentation for one logical button.
- Button
Transition Inputs - Controlled presentation inputs for an unmounted logical button.
disabledincludes loading’s disabled presentation. Transient interaction is deliberately absent: sync uses resting hover/focus/pointer state. - Button
Transition Playback - One logical button’s visual transitions, independent of virtual mounting.
Clones share only samples/curves. No focus, pointer, hover, ripple, window,
or queued callback is retained. Forward offscreen controlled input changes
through
sync; call it after updating the Material motion scheme/theme. - Calendar
Day - One day of a calendar grid (
.Building Blocks/Local M3 calendar cell). - Caption
Buttons - The caption buttons over the trailing end of a title bar, above any
dialog, or nothing where the system draws them. Render it once per
window, as a child of the root; a
super::TitleBarrenders its own, so a window with one needs no other. - Caption
Labels - Accessible names of the caption buttons. The kit has no locale of its own, so there is no default: applications pass their translations.
- Card
Surface - Static Material card surface, without implicit padding or full width.
- Carousel
Item - One carousel item: caller content (e.g. an image) masked by the item, with an optional label and supporting text on large items.
- Choice
Group - One single-choice question as connected
ChoiceTiles under a section title: a radio group with roving focus. Tab enters at the selected choice; arrow keys, Home and End move focus among the available choices and select them, as a radio group does. - Choice
Tile - One choice in a connected group of tiles: tonal selection on the secondary container, a leading icon, the label with optional supporting text, a trailing status chip and a radio. An unavailable choice keeps its status chip at full strength.
- Circular
Progress - M3 Expressive circular progress indicator.
- Circular
Progress Frame - A circular arc’s start in clockwise degrees from three o’clock and its fraction.
- Circular
Progress Playback - Caller-owned circular playback that survives virtual unmounting.
- Clock
Dial - The 256dp clock face (
.Building Blocks/Clock face): numbers, the hand and the selector. Interactive over aTimePickerState, or a static specimen oftime. - Connected
Button Group - Date
Picker - An M3 date picker over a
DatePickerState. - Date
Picker Labels - Every caller-supplied string and formatter of a date picker. Nothing user-facing is hard-coded in the component; galleries and apps build this from their locale.
- Date
Picker State - A date picker’s state: selection, displayed month, view, mode and the
keyboard cursor. Create it once per picker with
cx.newand hand it toDatePicker. - Exposed
Dropdown - The M3 exposed dropdown menu: a text field that opens a menu of options.
- Extended
Fab - An extended FAB: icon and visible label.
expanded(false)collapses it to a FAB of the same height, the label clipping away while the padding and icon-label gap close on the default spatial spring (reduced motion jumps). A label-only FAB (ExtendedFab::label_only) has nothing to collapse to and stays extended. - Fab
- A square FAB holding one icon.
labelnames it for assistive technology. - FabMenu
- FabMenu
Item - One action of a FAB menu. Rendered on its own (e.g. a building-block
specimen) it is the open item in its
color; inside a menu it takes the menu’s color. - Feed
Layout - A feed: a grid of items, as many columns as fit.
- Feed
Metrics - How a feed lays out in a given width: use it to virtualize a long feed.
- Filter
Chip - M3 filter chip: a toggle among filter options. Selecting slides a check in before the label (or shows it in place of the leading icon).
- Focus
Ring - Draw the M3 keyboard focus indicator (the button’s 3dp secondary ring, 2dp outside) around a component whose focus handle is internal. The wrapper observes descendants without adding a keyboard stop of its own, and shows the ring only for keyboard focus.
- Icon
Button - An icon-only button.
labelnames it for assistive technology. - Input
Chip - M3 input chip: a piece of information the person entered, with an optional leading icon or avatar and a remove icon.
- Keyline
- One keyline: an item’s left edge and width on screen.
- Keylines
- The keylines of one arrangement plus the number of focal (large) items.
- Linear
Progress - M3 Expressive linear progress indicator.
- List
Item - One M3 list item. Strings come from the caller. Give it
on_clickto make the whole row a button; without one it is static content. - Loading
Frame - A sampled indicator: the shapes being morphed, how far, and the turn.
- Loading
Indicator - M3 Expressive loading indicator.
- Material
Bottom Sheet - An M3 bottom sheet. Standard sheets dock to their parent’s bottom edge and leave the content interactive; modal ones present over the window. Dragging the sheet down past its nearest rest dismisses it; otherwise it snaps to the expanded or partial detent.
- Material
Button - Sized, shaped Material presentation; activation, keyboard and focus stay in Base.
- Material
Card - A Material card that can act and move: the
CardSurfaceof its variant, optionally a GPUI Base button (on_click: hover and press state layers, the kit’s hover elevation, ripple, keyboard activation and the focus ring) and optionally draggable (the dragged state layer and elevation while the pointer carries it; on release it springs back to its place on the default spatial spring, or returns at once under reduced motion). The accessible label names the action. - Material
Carousel - An M3 carousel.
labelnames it for assistive technology. - Material
Checkbox - Controlled tri-state M3 checkbox. Activation reports the next state: unchecked and indeterminate become checked, checked becomes unchecked.
- Material
Dialog - An M3 dialog. Without
MaterialDialog::modalit renders its container in place (a specimen); with it, it is a modal overlay over the window. - Material
Divider - A separator without focus, activation, or intrinsic animation.
- Material
Menu - An M3 menu surface. Use
MenuPopupto open it from a trigger. - Material
Menu Item - One menu item.
- Material
Radio - Controlled M3 radio button. It has no visible label unless
MaterialRadio::visible_labelis set; its label is always its accessible name. - Material
Radio Group - A labelled set of
MaterialRadios with one selection: Tab enters at the selected option; arrow keys, Home and End move focus among the available options and select them. - Material
Side Sheet - An M3 side sheet. By default it is a nonmodal standard sheet docked to
its parent’s trailing edge that leaves the main content interactive;
MaterialSideSheet::modalpresents it over the window instead, andMaterialSideSheet::specimenrenders it in place. Its controlled visibility retargets the spatial spring, including on close. - Material
Slider - Material
Switch - Controlled M3 switch: a 52×32 track whose handle moves and resizes on the fast spatial spring (16dp unselected, 24dp selected or with an icon, 28dp while pressed), with a 40dp state layer, the per-state handle colors and optional check/close icons inside the handle.
- Material
Tabs - M3 tabs over a caller-controlled selection.
- Material
Tooltip - An M3 tooltip. With
MaterialTooltip::triggerit wraps that element and shows on hover and keyboard focus; without one it renders the tooltip container in place (a specimen). - Menu
Group - A run of items; Expressive menus separate groups with a 2dp gap.
- Menu
Popup - A trigger that opens a
MaterialMenuin Kit’s popover overlay. - Naive
Date - ISO 8601 calendar date without timezone. Allows for every proleptic Gregorian date from Jan 1, 262145 BCE to Dec 31, 262143 CE. Also supports the conversion from ISO 8601 ordinal and week date.
- Naive
Time - ISO 8601 time without timezone. Allows for the nanosecond precision and optional leap second representation.
- NavIcon
- A destination icon in its unselected (outlined) and selected (filled) forms. Build it once and keep it: resolving symbol paths allocates.
- NavItem
- One destination: a unique value, the caller’s label and icon, and an optional badge. Cheap to clone; keep a list in view state.
- Navigation
Bar - M3 Expressive flexible navigation bar: 3–5 primary destinations along the bottom of a compact or medium window, on surface-container.
- Navigation
Drawer - An M3 navigation drawer over caller-controlled selection and open state.
- Navigation
Item - One navigation destination as an M3 item: active-indicator pill, filled icon when selected, badge and label. Bars and rails compose these; a gallery may show one alone as a building block.
- Navigation
Rail - M3 Expressive navigation rail: a 96dp column of vertical items that expands to a 220–360dp column of horizontal items, with an optional menu button and FAB above the destinations and, when expanded, section headers. The width moves on the default spatial spring.
- Navigation
Suite - Adaptive navigation around caller-owned content.
- Pane
Destination - One entry of a navigator’s history.
- Pane
Directive - The pane layout a size class calls for.
- Pane
Layout - The panes’ bounds.
- Pane
Layout Input - Everything a pane layout depends on.
- Pane
Navigator - A destination history and the pane value it gives. Own it in an
Entityand hand it to asuper::PaneScaffold, which keeps its directive current. - Pane
Rect - A pane’s bounds in its scaffold.
- Pane
Scaffold - A list-detail or supporting pane layout around caller-owned panes.
- Pane
Transition - Where a pane moves from and to.
- Period
Selector - The AM/PM selector (
.Building Blocks/Period Selector), stacked (52 wide) or side by side (216 wide). - Picker
Dialog - A modal host for pickers: a scrim and a centered dialog over the window, built on GPUI Base’s dialog (focus trap, Escape and outside press dismissal). The surface enters on the default spatial spring.
- Picker
List Item - A docked month or year menu row: a 48dp list item with a leading check on the selection, which rests on a hovered-strength layer.
- Picker
Menu Button - The month/year dropdown trigger (
.Building Blocks/Menu button): a label-large label and an 18dp arrow that points up while its list is open, on a 40dp pill. The arrow turns on the fast spatial spring. - Pull
Arrow - The arrow’s drawing on its canvas at a distance fraction: arc and head, with the rotations Compose applies about the canvas center.
- Pull
Model - A pull’s drag bookkeeping (Compose
PullToRefreshModifierNode), in px. - Pull
ToRefresh - Pull to refresh around caller-owned scrolling content.
- Reveal
Focus - Scrolls
scrollso a newly focused descendant is visible, once per focus change or geometry change, never while the person scrolls by hand. - Ringed
Button - A GPUI Base button that draws the shared M3 keyboard focus ring. It forwards the builder methods callers chain on a button, and resolves its focus handle when it renders.
- Search
Field - The M3 search bar: a 56dp pill on surface-container-high with a leading icon, the query and up to two trailing icons or an avatar.
- Search
Suggestion - One search suggestion: a 64dp row with an optional leading element (icon or 40dp avatar), a label and optional supporting text.
- Search
View - The M3 search view: a search bar that expands into a results surface.
- Sized
Content - An element that fills its parent and builds its content once its size is known, in the same frame.
- Snackbar
- M3 snackbar.
- Split
Button - Suggestion
Chip - M3 suggestion chip: a dynamically generated suggestion, such as a reply.
- TabItem
- One tab: a unique value, the caller’s label (also its accessible name when only the icon shows), an optional icon and badge.
- Text
Field - An M3 text field over a Kit input state.
- Three
Pane Value - The state of all three panes.
- Tile
Group - One section: a quiet title above a connected group of tiles, each
item on its own surface with 24px outer and 6px inner corners and 2px
between tiles, at the group’s
TileScale. - Time
Picker - An M3 time picker over a
TimePickerState. - Time
Picker Labels - Every caller-supplied string of a time picker.
- Time
Picker State - A time picker’s state. Create it with
cx.newand hand it toTimePicker. - Time
Selector - A dial picker’s hour or minute selector (
.Building Blocks/Input): a 96×80 display-large box, primary-container while its unit is on the dial. - Title
Bar - An application-drawn window title bar. Lay out its children with the usual
style methods; it adds the leading and trailing space the platform’s
buttons need and draws
CaptionButtonswhere the platform has none. Open the window withtitle_bar_window_optionsfor the same height. - Toolbar
- A toolbar: caller items in a floating pill or a docked band.
- Toolbar
Button - A toolbar’s icon or label button.
- TopApp
Bar - An M3 Expressive top app bar.
- Window
Size Class - The size class of a window or container.
- Year
Chip - A year in the modal picker’s year grid (
.Building Blocks/Year).
Enums§
- Adapt
Strategy - How a pane adapts when there is no partition for it.
- Avatar
Content - What an avatar shows.
- Back
Navigation Behavior - What “back” pops to.
- Badge
Color - A badge’s container and label roles.
- Badge
Position - The corner of the anchored element a badge sits on.
- Bottom
Sheet Detent - A bottom sheet’s rest position (md3.io’s State).
- Button
Density - Group density: each step below default takes 4dp off the buttons’ height (Figma kit “Segmented button” Density 0, −1, −2).
- Button
Direction - Layout direction for logical icon placement and padding.
- Button
Icon Position - Logical placement of the optional icon, relative to the label.
- Button
Shape - Button
Size - Button
Variant - Caption
- Which caption buttons the window needs from the application.
- Caption
Button - One caption button.
- Card
State - The interaction states of a card, including the drag the shared
InteractionPreviewdoes not cover. - Card
Variant - The three M3 card variants.
- Carousel
Layout - A carousel’s keyline strategy.
- Checkbox
State - The semantic value exposed by an unstyled [
Checkbox]. - Chip
Style - Whether a chip is flat with an outline or raised on a tonal container.
- Date
Input Mode - Calendar or text entry.
- Date
Matcher - Date
Picker Event - Events a picker emits as the person edits it.
- Date
Picker Variant - The M3 date picker presentations.
- Date
Picker View - What the picker body shows.
- Date
Selection - A controlled calendar value.
- DayRange
- Where a day sits in a selected range, for its band.
- Dialog
Action Alignment - Where a dialog’s actions sit in their row (md3.io).
- Dialog
Animation - How a dialog enters and leaves (md3.io). Every animation fades; reduced motion keeps only the fade.
- Dialog
Size - A dialog’s size (md3.io): the basic widths, or a full-screen page.
- Divider
Context - Explicit equivalent of the reference’s ancestor list/card margin rule.
- Divider
Direction - Divider
Orientation - Divider
Variant - Drawer
Position - Which window edge a drawer sits on.
- FabColor
- FAB color styles.
- FabMenu
Align - Which side the items align to: the FAB’s end (a bottom-end FAB) or start (a bottom-start FAB).
- FabMenu
Color - The FAB menu color styles: the closed FAB and the items use the container color, the close button the solid color.
- FabMenu
Presentation - How a FAB menu presents its items.
- FabSize
- FAB container sizes. Extended FABs use the same three heights from
Regularup;Smallextends likeRegular. - Group
Labels - When an option with an icon shows its label.
- Group
Selection - How a connected group selects.
- Icon
Button Variant - Icon button color styles.
- Icon
Button Width - The width of an icon button relative to its height.
- Interaction
Preview - One interaction state a specimen renders without live input.
- List
Density - Vertical density. Standard is the M3 list (56/72/88dp); Compact is the design kit’s −4 density baseline (40/56/72dp, 88dp with an overline over two supporting lines).
- List
Leading - The leading element of a list item.
- List
Lines - How many lines an item’s text occupies, which sets its height and the leading element’s alignment.
- List
Trailing - The trailing element of a list item.
- Loading
Shape - One of the Material shapes the loading indicator morphs between.
- Menu
Density - Baseline menu density: 56, 48 or 40dp items.
- Menu
Style - The menu families of the design kit.
- NavBadge
- An item’s badge, drawn on its icon’s top-trailing corner.
- NavItem
Layout - Which M3 item an item renders as.
- Navigation
Suite Type - Which navigation a suite shows.
- Notice
Kind - The tone of a
notice_banner. - Pane
Adapted Value - What a pane is at the moment.
- Pane
Anchor - A position the drag handle settles at.
- Pane
Motion - How a pane moves when the value changes (Compose
PaneMotion). - Pane
Role - A pane’s role. List-detail: list = secondary, detail = primary. Supporting pane: main = primary, supporting = secondary. Extra is tertiary in both.
- Pane
Rule - How many panes may sit side by side.
- Progress
Shape - The shape of a progress indicator’s active part.
- Pull
ToRefresh Indicator - The indicator a
PullToRefreshshows. - Rail
Alignment - Where a rail’s destinations sit in its height.
- Search
View Layout - Where a search view shows its results.
- Search
View Style - How a search view sets its results apart from the bar (md3.io’s Style).
- Side
Sheet Edge - The edge a side sheet docks to.
- Slider
Appearance - Slider geometry. Classic matches the Google Fonts axis controls; Expressive follows the M3 Expressive thick track and vertical handle presentation.
- Slider
Color - The slider’s accent (md3.io’s Color option). Primary is the M3 default: a primary active track and handle over a secondary-container inactive track. The others use their own family throughout: the role for the active track and handle, its container for the inactive track, and the matching on-roles for stops and icons.
- Slider
Size - The M3 Expressive slider sizes (track thickness 16/24/40/56/96dp).
- Split
Button Part - One segment of a split button.
- Status
Kind - The tone of a
status_chip; text always pairs with its tinted background. - Switch
Icons - Which states show an icon inside the handle.
- Tabs
Variant - The two M3 tab styles.
- Text
Field Density - md3.io’s text field densities. The design kit draws one 56dp field; compact is density −2 (48dp, the M3 density scale’s 4dp steps, as the baseline menu’s compact items), with the filled label and input moved up 4dp each so the floating label keeps its 4dp gap to the input.
- Text
Field Variant - The two M3 text field styles.
- Tile
Scale - The text scale of a tile’s content. Both scales share one composition; settings read one step larger than denser option panels.
- Time
Format - 12-hour (with a period selector) or 24-hour.
- Time
Input Mode - Dial or keyboard input.
- Time
Orientation - The dial picker’s layout.
- Time
Picker Event - Events a picker emits as the person edits it.
- Time
Unit - Which value the dial edits.
- Tint
- A distinct color family for a category icon: a tonal container role and the content role that pairs with it. The names are the families’ usual hues; the exact colors follow the current scheme, so every palette keeps its own ground and contrast.
- Toolbar
Color - Container color scheme.
- Toolbar
Configuration - Where the toolbar sits.
- Toolbar
Orientation - TopApp
BarVariant - The kit’s top app bar configurations.
- Weekday
- The day of week.
- Window
Height Class - A height bucket, smallest first.
- Window
Width Class - A width bucket, smallest first.
Constants§
- AVATAR_
SIZE - The kit’s avatar diameter in design px.
- BADGE_
CONTAINER - The container and label roles of both M3 badges.
- BADGE_
LABEL - BOTTOM_
APP_ BAR_ HEIGHT - Height of the bottom app bar.
- CARD_
PADDING - Compatibility helper padding from the reference’s 16px content examples. The reference card surface itself has no padding.
- CAROUSEL_
ITEM_ RADIUS - Item corners.
- CAROUSEL_
SMALL_ ITEM - The smallest item a keyline strategy shows.
- CHIP_
HEIGHT - M3 chip geometry, in dp: 32 tall, 18dp icons 8 from the label, a 24dp avatar.
- DATE_
INPUT_ PICKER_ WIDTH - DATE_
PICKER_ WIDTH - Widths of the presentations, in dp.
- DAY_
CELL - The day cell’s square and its circular container, in dp.
- DEFAULT_
PANE_ ANCHORS - The Compose sample’s anchors, which m3e uses by default: 0%, 240dp from the start, 50%, 240dp from the end, 100%.
- DIALOG_
WIDTH - The basic dialog’s container width in the design kit; M3 allows 280–560dp.
- DIAL_
SIZE - Radii of the dial’s rings, from the face’s center to a number’s center.
- DRAWER_
WIDTH - The M3 drawer width (360dp maximum).
- EXPANDED_
RATIO - The pressed item’s growth, as a share of its own width.
- FEED_
COLUMN_ MIN_ WIDTH - The narrowest feed column.
- FEED_
GAP - The space between feed items.
- FEED_
MARGIN - The feed’s margins from 600dp.
- FEED_
MARGIN_ COMPACT - The feed’s margins below 600dp of its own width.
- LARGE_
BADGE_ PADDING - Horizontal padding inside a large badge (4dp).
- LARGE_
BADGE_ SIZE - The M3 large badge: at least 16dp square, around label-small text.
- LINEAR_
INDETERMINATE_ MS - The indeterminate loop.
- LIST_
DETAIL_ ORDER - List-detail’s start-to-end order: list, detail, extra.
- LIST_
DETAIL_ STRATEGIES - List-detail panes all hide.
- LIST_
SEGMENT_ GAP - The ground between items of a segmented list.
- LIST_
SEGMENT_ INNER_ RADIUS - Corners between neighbouring items of a segmented list.
- LIST_
SEGMENT_ RADIUS - Outer corners of an Expressive segmented list.
- LOADING_
INDICATOR_ SIZE - The container (48dp), from the Figma kit and Compose’s
LoadingIndicatorTokens. - MEDIUM_
WIDTH - The M3 medium window class starts at 600dp.
- PLAIN_
TOOLTIP_ MAX_ WIDTH - The plain tooltip’s maximum width before it wraps.
- PROGRESS_
THICKNESS - The default and thick track/indicator thickness.
- PROGRESS_
THICK_ THICKNESS - PULL_
TO_ REFRESH_ DRAG_ MULTIPLIER - The drag distance counts half (Compose
DragMultiplier). - PULL_
TO_ REFRESH_ INDICATOR_ SIZE - The default indicator’s container (Compose
SpinnerContainerSize), in dp. - PULL_
TO_ REFRESH_ LOADING_ INDICATOR_ SIZE - The loading indicator variant’s container, in dp.
- PULL_
TO_ REFRESH_ MAX_ DISTANCE - How far the indicator travels at a fraction of 1 (Compose
IndicatorMaxDistance), in dp. - PULL_
TO_ REFRESH_ MIN_ ALPHA - The arrow’s alpha below the threshold (Compose
MinAlpha); it is 1 from it. - PULL_
TO_ REFRESH_ SPINNER_ SIZE - The arrow’s canvas and the spinner’s size (Compose
SpinnerSize), in dp. - PULL_
TO_ REFRESH_ THRESHOLD - How far (dp, after the drag multiplier) a pull must pass to refresh
(Compose
PositionalThreshold). - RAIL_
COLLAPSED_ WIDTH - The collapsed rail’s width.
- RAIL_
EXPANDED_ WIDTH - The expanded rail’s default width (M3: 220–360dp).
- RICH_
TOOLTIP_ WIDTH - The rich tooltip’s width in the design kit (M3 allows up to 320dp).
- SCRIM_
OPACITY - The scrim’s opacity over the content behind a modal surface.
- SEARCH_
BAR_ HEIGHT - Search bar height.
- SEARCH_
SUGGESTION_ HEIGHT - One suggestion row (a middle-aligned two-line list item).
- SMALL_
BADGE_ SIZE - The M3 small badge: a 6dp dot. It carries no text, so it does not follow the text scale.
- SNACKBAR_
CLOSE_ ICON - The close affordance: a 24dp icon in a 40dp target inside a 48dp box.
- SUITE_
PRIMARY_ ACTION_ PADDING - The primary action’s inset above a bar (Compose
PrimaryActionContentPadding, through m3e), in dp. - SUPPORTING_
PANE_ ORDER - Supporting pane’s start-to-end order: main, supporting, extra.
- SUPPORTING_
PANE_ STRATEGIES - The supporting pane reflows under the main pane; the others hide.
- TEXT_
FIELD_ HEIGHT - Container height of a single-line field.
- TEXT_
FIELD_ WIDTH - The default specimen width of the design kit.
- TOOLBAR_
FAB_ GAP - Space between a floating toolbar and its paired FAB.
- TOOLBAR_
MARGIN - Space between a floating toolbar and the edge it hides past.
- TOOLBAR_
SIZE - Toolbar container height (horizontal) or width (vertical).
- TOP_
APP_ BAR_ HEIGHT - Height of a single-row (and of a collapsed flexible) top app bar.
Traits§
- Datelike
- The common set of methods for date component.
- Timelike
- The common set of methods for time component.
Functions§
- accessible_
text - Text on a leaf element with a label role. GPUI’s accessibility bridge
does not expose plain
Divtext, and keeping labels on leaves stops an ancestor from replacing its controls’ accessibility. - add_
months datemoved bymonths, clamped to the end of shorter months.- badge
Deprecated - A status label; same as
status_chip, kept under its earlier name. - badge_
label - The text a large badge shows for
labelwith at mostmaxas a count: a number abovemaxreads “max+”; other labels pass through. - card
- Compatibility appearance helper: full width and 16dp example padding.
Returns
CardSurfaceinstead of the earlierDiv; Styled and ParentElement chains remain supported. UseCardSurface::newfor the reference’s unpadded surface, then supply caller-owned content spacing. - card_
surface - Elevated compatibility helper, retaining full width and example padding.
- chip
- The container of an M3 assist chip: its geometry, small corners and
outline-variant edge. Callers give it their label color and size; prefer
AssistChip, which adds the label role, state layers and focus. - choice_
radio - The M3 radio of a choice: an outlined ring, filled with a dot when selected. A static indicator for controls that are themselves the radio (e.g. a choice tile).
- circular_
indeterminate_ frame - The reference’s six-second growing arc, including four eased rotation kicks.
- circular_
progress - Paint a sampled circular frame in a caller-sized box, using the reference’s 24-unit canvas and 2-unit stroke. Pass a 20×24 rem box for xs/s button slots, or 24×24 for larger buttons. The parent owns the surrounding icon slot.
- circular_
progress_ size - The indicator box for a shape and thickness, in dp.
- closest_
pane_ anchor - The anchor position closest to
position. - collapsed_
title_ alpha - The collapsed title’s alpha at collapse fraction
f: hidden over the first half, then fading in on an ease-in-out so it arrives as the large title leaves. - contain_
scroll - A scroll area inside a scrolling page keeps the wheel while it has content to scroll, so the page does not move with it. Its own scroll listener runs first, then this one stops the event before it reaches the page.
- disclosure_
chevron - The chevron of an in-place disclosure; it turns over when open.
- error_
text - Failure feedback as one accessible alert form. Callers chain their own size and wrapping.
- feed_
metrics - The feed’s layout at a measured width in px, given the px of a design px at the current text scale: one column below 600dp, then as many as fit.
- first_
of_ month - The first day of
month(1-based) inyear; months outside 1..=12 carry into adjacent years. - icon_
spinner - A spinner standing in an icon column, at that column’s icon size.
- icon_
spinner_ with_ playback - Icon-sized variant of
spinner_with_playbackwith the same clock policy. - indeterminate_
circular_ progress - Animate a bounded circular indicator while its box intersects the viewport and ancestor clip. Its original clock continues offscreen, so scrolling back does not restart playback. Reduced motion retains the sampler’s stop policy.
- indeterminate_
circular_ progress_ with_ playback - Draw with a caller-owned clock, retaining phase across virtual unmounts.
Frame requests remain limited to visible paint. The owner must forward
offscreen reduced-motion changes to
CircularProgressPlayback::observe_reduced_motion. - indeterminate_
linear_ progress_ with_ playback - Indeterminate progress with custom thickness/color and a persistent clock.
The caller-supplied
labelnames the indicator for assistive technology. - indeterminate_
progress - Unmeasured work uses motion, never a fabricated completion percentage.
- indeterminate_
progress_ with_ label indeterminate_progressnamed by the caller’slabelfor assistive technology.- indeterminate_
progress_ with_ playback - Indeterminate progress with a caller-owned clock; see
spinner_with_playbackfor unmounting and reduced-motion semantics. - info_
callout - Standalone guidance with its own low-emphasis boundary. Inside an item,
use
supporting_info. - large_
badge - M3 large badge: a count or short label on an error pill, label-small on on-error, at least 16dp square and full-round. The caller positions it (12dp across and 14dp down from the icon’s top-trailing corner) and supplies its text, e.g. “3” or “999+”.
- linear_
indeterminate_ lines - The two indeterminate lines
elapsed_msinto the loop, each as (tail, head) fractions of the track. A line is visible while its head leads its tail. Compose’s keyframes: the first line’s head runs over 0-1000ms and tail over 250-1250ms; the second’s head over 650-1500ms and tail over 900-1750ms, each on its own cubic easing. - linear_
progress - Material 3 linear progress: the active indicator, a 4px gap, the track
and a stop dot at the track’s end. Only a measured fraction draws it;
Noneshows the indeterminate indicator at the same thickness. A paused or stopping process (muted) keeps its fraction in the outline color. The caller-suppliedlabelnames the indicator for assistive technology. - list_
subheader - A list subheader: title-small on-surface-variant text heading a group of items, aligned with their 16dp padding, 48dp tall.
- list_
tile - The tile at
indexof a vertical connected list ofcounttiles. - loading_
indicator_ frame - The indeterminate indicator
elapsed_msinto its loop. - material_
button - Convenience constructor with caller-supplied content and activation.
- monogram_
initials - The initials a monogram draws: at most two characters, uppercased.
- month_
weeks - The weeks shown for
year/monthstarting onfirst_day: alwaysGRID_WEEKS(six) rows of seven dates, padded with adjacent-month days. - navigation_
scrim - The scrim behind a modal expanded rail: scrim at 32%, fading in. Its click dismisses the rail.
- navigation_
suite_ type - The navigation for a size class: a bar below 600dp, or when the window is
under 480dp tall; a collapsed rail from 600dp;
expanded_typefromexpanded_from.Noneforexpanded_fromnever expands. - next_
pane_ anchor - The first anchor position right of
position, wrapping to the leftmost. - notice_
banner - A page-level notice: tinted surface, status icon and wrapping text. Callers append the notice’s actions, which wrap below the text when narrow.
- outlined_
badge Deprecated - An outlined status label; same as
outlined_status_chip, kept under its earlier name. - outlined_
status_ chip - A fact beside a label in the status chip’s size, outlined rather than filled: e.g. the engine a tile uses.
- page_
heading - A page title: text alone in the regular-weight headline role. A title longer than its column wraps rather than running past the edge.
- pane_
directive - The directive for a size class (Compose
PaneScaffoldDirective.kt). - pane_
motions - The motion of each role, in
PaneRole::ALLorder, for a change of value. - pane_
transitions - The transition of each role, in
PaneRole::ALLorder.originholds the bounds before the change andtargetthose after it. - previous_
pane_ anchor - The first anchor position left of
position, wrapping to the rightmost. - progress
- A measured fraction as Material 3 linear progress, 4px thick.
- progress_
with_ label progressnamed by the caller’slabelfor assistive technology.- pull_
arrow - The arrow for a distance fraction at
densitypx per dp. - pull_
loading_ rotation - The loading indicator variant’s extra turn past the threshold, in degrees.
- pull_
vertical_ offset - The indicator offset for an adjusted distance pulled: linear to the threshold, then on the tension curve, at most twice the threshold.
- sample_
circular_ progress - Sample independently of painting so a hidden indicator keeps its phase.
- section_
heading - A section title with a leading icon.
- section_
title - An M3 list section title: a quiet medium-weight label above the group it names, on the group’s text inset.
- segmented_
list - An Expressive segmented list: each item on its own surface, 2dp apart, with 16dp outer and 4dp inner corners.
- semantic_
label - An icon column and a medium-weight text column. The slot also takes a live spinner, keeping state changes on the same axis.
- sized_
content - Build content from the bounds this element is given. See
SizedContent. - small_
badge - M3 small badge: a full-round error dot that marks new content on an icon. The caller positions it (6dp from the icon’s top-trailing corner).
- spinner
- A small accent spinner (16px), announced as indeterminate progress
named by the caller’s
label. - spinner_
with_ playback - A spinner whose caller-owned clock survives virtual unmounting.
- standard_
group_ gap - The gap between items of a standard group of
sizebuttons. - status_
chip - A status label chip: a tinted pill with an optional status icon. Icon,
padding and label belong to one container; callers append the label.
For the M3 notification badge, see
small_badgeandlarge_badge. - supporting_
info - Short supporting text inside an existing item boundary. The item supplies the surface; a second frame would compete with it. The info icon sits in a label’s icon slot, so the text starts on the label ruler.
- three_
pane_ layout - Place the panes (Compose
ThreePaneContentMeasurePolicy, without hinges). - three_
pane_ value - Which panes get a partition: the latest destination first, then earlier ones, then the rest by priority. With one partition and room for two stacked panes, the first pane that reflows goes under its expanded anchor.
- tile
- One tile of a connected group: the surface with
tile_corners. - tile_
chevron - The trailing chevron of a tile that opens something.
- tile_
info - An explanation inside a tile: the information icon and supporting text.
- tinted_
icon - A category or resource icon in a round tonal container. Give the size in rems where the circle shares a ruler with text, so both follow the text scale.
- title_
bar_ control - Makes a control inside a title bar take the press itself. The whole bar is a drag area: on Windows a press there arrives as a caption press, and one no element stops goes on to the system’s move-window loop (and maximizes on a double click). Empty bar space still moves the window.
- title_
bar_ leading - Where the bar’s own content starts: after the macOS traffic lights, or a 16px inset where the platform puts its buttons at the trailing edge.
- title_
bar_ window_ options - Window options for a window whose content draws a
TitleBarheighttall, centred on the main display atwindow_size. Extend them with struct update syntax for anything else the window needs. - today
- Today’s date on the local clock, for a picker’s today marker.
- traffic_
light_ position - Where the traffic lights go in a bar
heighttall: centred vertically, and as far from the leading edge as from the top, up to 20px. - week_
days - The weekdays of a grid row starting at
first_day.
Type Aliases§
- Adapt
Strategies - The adapt strategy of each role, in
PaneRole::ALLorder. - Badge
Kind Deprecated - Former name of
StatusKind: these are status labels, not M3 badges.