pub fn surface() -> SurfaceBuilderExpand 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.