let (_ctx, view) = fission::build::current::<ReportsState>();
let spacing = &view.env().theme.tokens.spacing;
let open_report_label = view
.env()
.i18n
.get(&view.env().locale, "reports.open")
.unwrap_or("reports.open")
.to_string();
Pressable::new(Text::new(TextContent::Key("reports.open".into())))
.id(WidgetId::explicit("report.open"))
.semantics_identifier("report.open")
.label(open_report_label)
.role(PressableRole::Button)
.on_press(open_report)
.layout(BoxStyle::default().padding_symmetric(
Length::points(spacing.m),
Length::points(spacing.s),
))
.into()
Field | Meaning |
|---|---|
child | Content displayed inside the interaction surface. |
on_press | Action dispatched for pointer, keyboard, or accessibility activation. |
label | Accessible label. |
semantics_identifier | Stable automation and accessibility identifier. |
role | Button, Link, or MenuItem. |
focus_policy | How pointer activation affects current focus. |
layout | Shared BoxStyle sizing and placement contract. |
style / state styles | Base, hover, pressed, focused, and disabled visual overlays. |