pub struct Modifier {Show 73 fields
pub key: Option<u64>,
pub size: Option<Size>,
pub width: Option<f32>,
pub height: Option<f32>,
pub fill_max: bool,
pub fill_max_w: bool,
pub fill_max_h: bool,
pub padding: Option<f32>,
pub padding_values: Option<PaddingValues>,
pub min_width: Option<f32>,
pub min_height: Option<f32>,
pub max_width: Option<f32>,
pub max_height: Option<f32>,
pub background: Option<Brush>,
pub state_colors: Option<StateColors>,
pub state_elevation: Option<StateElevation>,
pub border: Option<Border>,
pub flex_grow: Option<f32>,
pub flex_shrink: Option<f32>,
pub flex_basis: Option<f32>,
pub flex_wrap: Option<FlexWrap>,
pub flex_dir: Option<FlexDirection>,
pub gap: Option<f32>,
pub row_gap: Option<f32>,
pub column_gap: Option<f32>,
pub align_self: Option<AlignSelf>,
pub justify_content: Option<JustifyContent>,
pub align_items_container: Option<AlignItems>,
pub align_content: Option<AlignContent>,
pub clip_rounded: Option<f32>,
pub z_index: f32,
pub render_z_index: Option<f32>,
pub hit_passthrough: bool,
pub input_blocker: bool,
pub repaint_boundary: bool,
pub click: bool,
pub disabled: bool,
pub on_scroll: Option<Rc<dyn Fn(Vec2) -> Vec2>>,
pub on_pointer_down: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_move: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_up: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_enter: Option<Rc<dyn Fn(PointerEvent)>>,
pub on_pointer_leave: Option<Rc<dyn Fn(PointerEvent)>>,
pub semantics: Option<Semantics>,
pub alpha: Option<f32>,
pub graphics_layer: Option<f32>,
pub shadow: Option<ShadowSpec>,
pub transform: Option<Transform>,
pub grid: Option<GridConfig>,
pub grid_col_span: Option<u16>,
pub grid_row_span: Option<u16>,
pub position_type: Option<PositionType>,
pub offset_left: Option<f32>,
pub offset_right: Option<f32>,
pub offset_top: Option<f32>,
pub offset_bottom: Option<f32>,
pub margin_left: Option<f32>,
pub margin_right: Option<f32>,
pub margin_top: Option<f32>,
pub margin_bottom: Option<f32>,
pub aspect_ratio: Option<f32>,
pub painter: Option<Rc<dyn Fn(&mut Scene, Rect)>>,
pub on_drag_start: Option<Rc<dyn Fn(DragStart) -> Option<DragPayload>>>,
pub on_drag_end: Option<Rc<dyn Fn(DragEnd)>>,
pub on_drag_enter: Option<Rc<dyn Fn(DragOver)>>,
pub on_drag_over: Option<Rc<dyn Fn(DragOver)>>,
pub on_drag_leave: Option<Rc<dyn Fn(DragOver)>>,
pub on_drop: Option<Rc<dyn Fn(DropEvent) -> bool>>,
pub on_action: Option<Rc<dyn Fn(Action) -> bool>>,
pub cursor: Option<CursorIcon>,
pub animate_content_size: Option<AnimationSpec>,
pub focus_requester: Option<FocusRequester>,
pub on_focus_changed: Option<Rc<dyn Fn(bool)>>,
}Fields§
§key: Option<u64>Optional stable identity key for this view node.
If set, layout_and_paint will prefer this over child index when assigning stable ViewIds.
This is the “escape hatch” for dynamic lists / conditional UI where index-based identity
would otherwise shift.
size: Option<Size>§width: Option<f32>§height: Option<f32>§fill_max: bool§fill_max_w: bool§fill_max_h: bool§padding: Option<f32>§padding_values: Option<PaddingValues>§min_width: Option<f32>§min_height: Option<f32>§max_width: Option<f32>§max_height: Option<f32>§background: Option<Brush>§state_colors: Option<StateColors>§state_elevation: Option<StateElevation>§border: Option<Border>§flex_grow: Option<f32>§flex_shrink: Option<f32>§flex_basis: Option<f32>§flex_wrap: Option<FlexWrap>§flex_dir: Option<FlexDirection>§gap: Option<f32>§row_gap: Option<f32>§column_gap: Option<f32>§align_self: Option<AlignSelf>§justify_content: Option<JustifyContent>§align_items_container: Option<AlignItems>§align_content: Option<AlignContent>§clip_rounded: Option<f32>§z_index: f32Z-index for hit-testing order (higher = receives events first).
render_z_index: Option<f32>Z-index for render order (higher = painted on top). If None, uses tree order.
hit_passthrough: boolIf true, this view does not create hit regions.
input_blocker: boolIf true, this view blocks pointer/touch input for hits below it.
repaint_boundary: bool§click: bool§disabled: boolWhen true, the component ignores pointer events and appears disabled.
on_scroll: Option<Rc<dyn Fn(Vec2) -> Vec2>>§on_pointer_down: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_move: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_up: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_enter: Option<Rc<dyn Fn(PointerEvent)>>§on_pointer_leave: Option<Rc<dyn Fn(PointerEvent)>>§semantics: Option<Semantics>§alpha: Option<f32>§graphics_layer: Option<f32>§shadow: Option<ShadowSpec>§transform: Option<Transform>§grid: Option<GridConfig>§grid_col_span: Option<u16>§grid_row_span: Option<u16>§position_type: Option<PositionType>§offset_left: Option<f32>§offset_right: Option<f32>§offset_top: Option<f32>§offset_bottom: Option<f32>§margin_left: Option<f32>§margin_right: Option<f32>§margin_top: Option<f32>§margin_bottom: Option<f32>§aspect_ratio: Option<f32>§painter: Option<Rc<dyn Fn(&mut Scene, Rect)>>§on_drag_start: Option<Rc<dyn Fn(DragStart) -> Option<DragPayload>>>§on_drag_end: Option<Rc<dyn Fn(DragEnd)>>§on_drag_enter: Option<Rc<dyn Fn(DragOver)>>§on_drag_over: Option<Rc<dyn Fn(DragOver)>>§on_drag_leave: Option<Rc<dyn Fn(DragOver)>>§on_drop: Option<Rc<dyn Fn(DropEvent) -> bool>>§on_action: Option<Rc<dyn Fn(Action) -> bool>>§cursor: Option<CursorIcon>Cursor icon hint for desktop/web runners.
animate_content_size: Option<AnimationSpec>If set, the size of this node will smoothly animate to its target size whenever content size changes. Uses the provided animation spec.
focus_requester: Option<FocusRequester>A FocusRequester handle that will be associated with this view.
When the requester’s request_focus() is called, keyboard focus will
move to this view.
on_focus_changed: Option<Rc<dyn Fn(bool)>>Called when this view gains or loses focus. The boolean parameter is
true when focused, false when unfocused.
Implementations§
Source§impl Modifier
impl Modifier
pub fn new() -> Self
Sourcepub fn key(self, key: u64) -> Self
pub fn key(self, key: u64) -> Self
Attaches a stable identity key to this view node. Use for dynamic lists / conditional UI where index-based identity can shift.
pub fn size(self, w: f32, h: f32) -> Self
pub fn width(self, w: f32) -> Self
pub fn height(self, h: f32) -> Self
pub fn fill_max_size(self) -> Self
pub fn fill_max_width(self) -> Self
pub fn fill_max_height(self) -> Self
pub fn padding(self, v: f32) -> Self
pub fn padding_values(self, padding: PaddingValues) -> Self
Sourcepub fn ime_padding(self) -> Self
pub fn ime_padding(self) -> Self
Add padding equal to the current IME (soft keyboard) bottom inset.
Combine with system_bars_padding() to handle both system bars and keyboard.
Sourcepub fn system_bars_padding(self) -> Self
pub fn system_bars_padding(self) -> Self
Add padding equal to the current system bar insets (status bar top, nav bar bottom).
Sourcepub fn status_bars_padding(self) -> Self
pub fn status_bars_padding(self) -> Self
Add status bar inset as top padding.
Add navigation bar inset as bottom padding.
pub fn min_size(self, w: f32, h: f32) -> Self
pub fn max_size(self, w: f32, h: f32) -> Self
pub fn min_width(self, w: f32) -> Self
pub fn min_height(self, h: f32) -> Self
pub fn max_width(self, w: f32) -> Self
pub fn max_height(self, h: f32) -> Self
Sourcepub fn background(self, color: Color) -> Self
pub fn background(self, color: Color) -> Self
Set a solid color background.
Sourcepub fn background_brush(self, brush: Brush) -> Self
pub fn background_brush(self, brush: Brush) -> Self
Set a brush (solid, gradient, etc.) background.
pub fn border(self, width: f32, color: Color, radius: f32) -> Self
pub fn flex_grow(self, v: f32) -> Self
pub fn flex_shrink(self, v: f32) -> Self
pub fn flex_basis(self, v: f32) -> Self
pub fn flex_wrap(self, w: FlexWrap) -> Self
pub fn flex_dir(self, d: FlexDirection) -> Self
pub fn gap(self, v: f32) -> Self
pub fn row_gap(self, v: f32) -> Self
pub fn column_gap(self, v: f32) -> Self
pub fn align_self(self, a: AlignSelf) -> Self
pub fn align_self_center(self) -> Self
pub fn justify_content(self, j: JustifyContent) -> Self
pub fn align_items(self, a: AlignItems) -> Self
pub fn align_content(self, a: AlignContent) -> Self
pub fn clip_rounded(self, radius: f32) -> Self
pub fn z_index(self, z: f32) -> Self
Sourcepub fn render_z_index(self, z: f32) -> Self
pub fn render_z_index(self, z: f32) -> Self
Sets the render z-index for this view. Higher values are painted on top.
Unlike z_index (which only affects hit-testing), this affects visual layering.
Sourcepub fn input_blocker(self) -> Self
pub fn input_blocker(self) -> Self
Prevent pointer/touch from reaching lower layers.
pub fn hit_passthrough(self) -> Self
pub fn clickable(self) -> Self
Sourcepub fn state_colors(self, colors: StateColors) -> Self
pub fn state_colors(self, colors: StateColors) -> Self
Set state-driven background colors for hover, press, disabled states. The layout engine automatically selects and animates between these based on interaction.
Sourcepub fn state_elevation(self, elev: StateElevation) -> Self
pub fn state_elevation(self, elev: StateElevation) -> Self
Set state-driven elevation values for hover, press, disabled states.
Sourcepub fn disabled(self) -> Self
pub fn disabled(self) -> Self
Mark this component as disabled - it won’t respond to pointer events.
pub fn on_scroll(self, f: impl Fn(Vec2) -> Vec2 + 'static) -> Self
pub fn on_pointer_down(self, f: impl Fn(PointerEvent) + 'static) -> Self
pub fn on_pointer_move(self, f: impl Fn(PointerEvent) + 'static) -> Self
pub fn on_pointer_up(self, f: impl Fn(PointerEvent) + 'static) -> Self
pub fn on_pointer_enter(self, f: impl Fn(PointerEvent) + 'static) -> Self
pub fn on_pointer_leave(self, f: impl Fn(PointerEvent) + 'static) -> Self
pub fn semantics(self, s: Semantics) -> Self
pub fn alpha(self, a: f32) -> Self
Sourcepub fn graphics_layer(self, alpha: f32) -> Self
pub fn graphics_layer(self, alpha: f32) -> Self
Render this subtree into an offscreen texture, then composite it
back into the parent with the given group alpha (0.0..=1.0).
Allows correct blending when children overlap inside the layer, and
sets up the architecture for future layer effects (shadow, blur, clip).
Sourcepub fn shadow(self, blur_radius: f32, offset_y: f32) -> Self
pub fn shadow(self, blur_radius: f32, offset_y: f32) -> Self
Drop shadow with the given blur_radius (dp) and vertical offset_y (dp).
The shadow color defaults to black with alpha 64 (~25%). Combines with
Modifier::graphics_layer to draw a shadow underneath the layer.
Sourcepub fn shadow_with_color(
self,
blur_radius: f32,
offset_y: f32,
color: Color,
) -> Self
pub fn shadow_with_color( self, blur_radius: f32, offset_y: f32, color: Color, ) -> Self
Drop shadow with a custom color. Alpha 0..=255.
Sourcepub fn elevation(self, level: f32) -> Self
pub fn elevation(self, level: f32) -> Self
Material-style elevation. Auto-scales blur and offset by level (dp)
and uses a default shadow color. Level 0 = no shadow; 4 = subtle;
16 = strong. Requires Modifier::graphics_layer to take effect.
pub fn transform(self, t: Transform) -> Self
pub fn grid(self, columns: usize, row_gap: f32, column_gap: f32) -> Self
pub fn grid_span(self, col_span: u16, row_span: u16) -> Self
pub fn absolute(self) -> Self
pub fn offset( self, left: Option<f32>, top: Option<f32>, right: Option<f32>, bottom: Option<f32>, ) -> Self
pub fn offset_left(self, v: f32) -> Self
pub fn offset_right(self, v: f32) -> Self
pub fn offset_top(self, v: f32) -> Self
pub fn offset_bottom(self, v: f32) -> Self
pub fn margin(self, v: f32) -> Self
pub fn margin_horizontal(self, v: f32) -> Self
pub fn margin_vertical(self, v: f32) -> Self
pub fn aspect_ratio(self, ratio: f32) -> Self
pub fn painter(self, f: impl Fn(&mut Scene, Rect) + 'static) -> Self
pub fn scale(self, s: f32) -> Self
pub fn scale2(self, sx: f32, sy: f32) -> Self
pub fn translate(self, x: f32, y: f32) -> Self
pub fn translate_vec2(self, v: Vec2) -> Self
pub fn rotate(self, radians: f32) -> Self
pub fn weight(self, w: f32) -> Self
Sourcepub fn repaint_boundary(self) -> Self
pub fn repaint_boundary(self) -> Self
Marks this view as a repaint boundary candidate.
The engine may cache its painted output.
pub fn on_action(self, f: impl Fn(Action) -> bool + 'static) -> Self
Sourcepub fn on_drag_start(
self,
f: impl Fn(DragStart) -> Option<DragPayload> + 'static,
) -> Self
pub fn on_drag_start( self, f: impl Fn(DragStart) -> Option<DragPayload> + 'static, ) -> Self
Mark this node as a drag source. Return Some(payload) to start dragging.
Sourcepub fn on_drag_end(self, f: impl Fn(DragEnd) + 'static) -> Self
pub fn on_drag_end(self, f: impl Fn(DragEnd) + 'static) -> Self
Called when a drag ends (drop accepted or canceled/ignored).
Sourcepub fn on_drag_enter(self, f: impl Fn(DragOver) + 'static) -> Self
pub fn on_drag_enter(self, f: impl Fn(DragOver) + 'static) -> Self
Called when a drag first enters this target.
Sourcepub fn on_drag_over(self, f: impl Fn(DragOver) + 'static) -> Self
pub fn on_drag_over(self, f: impl Fn(DragOver) + 'static) -> Self
Called on every pointer move while a drag is over this target.
Sourcepub fn on_drag_leave(self, f: impl Fn(DragOver) + 'static) -> Self
pub fn on_drag_leave(self, f: impl Fn(DragOver) + 'static) -> Self
Called when a drag leaves this target.
Sourcepub fn on_drop(self, f: impl Fn(DropEvent) -> bool + 'static) -> Self
pub fn on_drop(self, f: impl Fn(DropEvent) -> bool + 'static) -> Self
Called on pointer release while a drag is over this target.
Return true to accept the drop.
Sourcepub fn cursor(self, c: CursorIcon) -> Self
pub fn cursor(self, c: CursorIcon) -> Self
Set the cursor icon hint for desktop/web runners.
Sourcepub fn animate_content_size(self, spec: AnimationSpec) -> Self
pub fn animate_content_size(self, spec: AnimationSpec) -> Self
Animate size changes smoothly when the content’s natural size changes.
Uses the provided AnimationSpec for the transition.
The content will be clipped to the animated size during transitions.
Sourcepub fn focus_requester(self, fr: FocusRequester) -> Self
pub fn focus_requester(self, fr: FocusRequester) -> Self
Attach a FocusRequester to this view. The requester will be associated
with the view’s focusable element, allowing programmatic focus requests.
Sourcepub fn on_focus_changed(self, f: impl Fn(bool) + 'static) -> Self
pub fn on_focus_changed(self, f: impl Fn(bool) + 'static) -> Self
Register a callback that fires when this view gains or loses keyboard focus.
The argument is true when the view receives focus, false when it loses it.