Skip to main content

surface

Function surface 

Source
pub fn surface() -> SurfaceBuilder
Expand description

§surface

Renders a styled container for content with optional interaction.

§Usage

Wrap content to provide a visual background, shape, and optional click handling with a ripple effect.

§Parameters

  • modifier — optional modifier chain applied to the surface subtree.
  • style — optional visual style of the surface.
  • shape — optional geometric outline of the surface.
  • clip_content — clip the surface and its descendants to the shape while preserving the outer shadow.
  • elevation — optional shadow elevation.
  • tonal_elevation — optional tonal elevation tint for theme surfaces.
  • content_color — optional explicit content color override.
  • content_alignment — optional child alignment within the surface bounds.
  • enabled — optional interactive enabled flag.
  • on_long_click — optional stationary long-press action; also available through the context-menu key, Shift+F10, and accessibility context action. A successful long press suppresses the release click.
  • on_click — optional click callback.
  • ripple_color — optional ripple color.
  • ripple_bounded — optional bounded-ripple flag.
  • ripple_radius — optional explicit ripple radius.
  • interaction_state — optional shared interaction state.
  • presentation_state — optional visual interaction; live input and disabled styling take precedence.
  • presentation_ripple — optional static circular ripple for an idle pressed presentation.
  • show_focus_indicator — show a 3dp focus outline with a 2dp gap; defaults to false.
  • show_state_layer — optional state-layer visibility flag.
  • show_ripple — optional ripple visibility flag.
  • ripple_state — optional shared ripple state.
  • block_input — optional input-blocking flag.
  • accessibility_toggled — optional selection state for toggle controls.
  • accessibility_role — optional accessibility role.
  • accessibility_label — optional accessibility label.
  • accessibility_description — optional accessibility description.
  • accessibility_focusable — optional accessibility focusable flag.
  • focus_requester — optional externally managed focus requester.
  • focus_properties — optional focus properties.
  • child — optional child render slot.

§Examples

use tessera_components::{
    modifier::{ModifierExt, Padding},
    surface::surface,
    text::text,
};
use tessera_ui::{Dp, LayoutResult, Modifier};

surface()
    .modifier(Modifier::new().padding(Padding::all(Dp(16.0))))
    .on_click(|| println!("Surface was clicked!"))
    .child(|| {
        text("Click me");
    });

Renders a styled surface container.