Link
Link is the text-style action widget.
Use it when the interaction should read like inline navigation or a secondary action rather than a full button. Good examples are "Learn more", "Open settings", and contextual route changes inside help text or compact panels.
Example
use fission::prelude::*;
let widget: Widget = Link {
text: "Open billing settings".into(),
on_click: Some(open_billing_settings_action),
}
.into();
Field table
| | | |
|---|
| | | |
| | Action fired when the link is pressed. | |
What kind of link this is
The checked-in widget is built from a ghost Button plus underlined text. That means it behaves like an explicit action inside Fission's state loop, not like a browser-native anchor tag with an href.
In practice that is often what you want: the action can navigate within your app, open a settings view, or ask the reducer to emit an OPEN_URL capability. Just remember that the widget itself does not know about URLs.
Specific advice
Use link styling for low-emphasis actions. If the choice is primary, destructive, or touch-critical, a real button is usually clearer and more accessible.
Production checklist
For Link, review the fields that change behavior before treating the widget as finished: text, on_click. The goal is to make the product rule visible in state and actions, not hidden inside ad-hoc construction code.
Bind on_click to explicit reducer actions and test that the reducer handles unavailable, duplicate, or invalid input safely.
Check the semantics tree for the user-facing label or role that makes this widget understandable without relying only on pixels.
Add at least one component or harness test that confirms the visible text, semantic role, action dispatch, and layout constraint that matter for this widget in context.
If a screen starts repeating the same Link setup, extract a named component around this widget. That keeps the reference API small while making product code easier to read and safer for generated code to copy.
Button, Breadcrumb, Text, and Resources and async.