Interaction

The Interaction family contains 20 renderer-backed chart variants. Use this page as the entry point for choosing the right variant, then open the variant page for the screenshot, data shape, Rust API notes, and example code.
The chart family is still ordinary Fission UI. Each variant is constructed from typed Rust data, participates in layout and theme decisions, and can be driven by app state, reducers, resources, jobs, or services just like any other widget.
Analysis toolbox screenshot

Variants

Chart
Data shape
Use when
Chart data with explicit utility actions.
Use it when analysis actions belong close to the chart.
Chart data with a typed text callout.
Use it for guided dashboards and reports.
Series data with axis-oriented tooltip intent.
Use it when the whole axis position is the hover target.
Line values with highlighted breach band.
Use it when unsafe ranges need visible boundaries.
Point data with visible brush preview.
Use it for exploratory selection.
Scatter points plus brush rectangle configuration.
Use it when users select data before drilling in.
Period labels with changing chart state.
Use it for capacity changes across time.
Ordered data with a selected zoom range.
Use it for long series where one window is active.
Trend data with event mark points.
Use it when specific moments explain the data.
Chart data with restore, brush, zoom, and save actions.
Use it when chart controls need a consistent built-in place.
Chart plus typed rect, text, and line graphics.
Use it for callouts and shaded product ranges.
Trend line with typed graphic overlay.
Use it to add explanations without leaving the chart model.
Grouped series with tooltip intent.
Use it when comparison needs hover detail.
Series data with item-level tooltip intent.
Use it when individual marks carry detail.
Trend data plus mark lines and shaded bands.
Use it to keep thresholds in the chart instead of external notes.
Chart data with reset action included.
Use it when user exploration needs a safe reset.
Scatter points with selection configuration.
Use it when users inspect clusters interactively.
Long ordered telemetry values with zoom.
Use it for monitoring and investigation.
Chart data with release timeline options.
Use it for versioned or period-based views.
Chart data with a timeline control.
Use it when the same view switches between periods.

Choosing within this family

Start with the user's question, not the visual effect. Pick the simplest variant that makes the answer clear, add interaction only when it reduces work for the user, and keep animation purposeful enough that it explains a change rather than decorating the page.

Authoring from a Fission component

Use this reference page as the chart expression inside ordinary Fission component conversion. The chart is a Widget, so it can sit inside a Card, Grid, Scroll, responsive page section, or any other layout container.
use fission::prelude::*;
use fission::charts::{Axis, Chart, LineSeries};

pub struct InteractionChart;

impl From<InteractionChart> for Widget {
    fn from(_: InteractionChart) -> Widget {
        Chart::new()
            .title("Interaction")
            .x_axis(Axis::category(vec!["A", "B", "C"]))
            .y_axis(Axis::value())
            .series(vec![LineSeries::new("Series").data(vec![1.0, 2.0, 3.0]).into()])
            .into()
    }
}
Keep expensive data loading outside component conversion. A reducer, job, service, or server route should prepare the typed chart data, then the component should read that state and construct the chart deterministically.

Options, accessibility, and diagnostics

Area
What to decide
How to verify
Data shape
Keep source rows in typed Rust structs, then map them into the series type shown in the example.
Unit test the mapping separately from rendering.
Options
Choose axes, legends, labels, animation, and interaction based on the user's task.
Add a screenshot test when changing visual behavior.
Accessibility
Provide a clear title and adjacent summary text for important trends or outliers.
Inspect the generated semantics and make sure the chart is understandable without color alone.
Failure handling
Render an empty, loading, or error state before constructing the chart if data is unavailable.
Test empty data, partial data, and failed fetches.
Performance
Prefer summarized or windowed data for very large datasets; keep full raw history in the data layer.
Profile frame time and interaction latency with representative data volumes.
Fission
A cross-platform, GPU-accelerated user interface framework for Rust. MIT licensed.
Copyright (c) 2026 Fission
Ready to use today. Widget APIs are expected to remain stable; some runtime and shell APIs may change before 1.0.0.
Fission 0.7.0