UX design#
Warning
Cross-highlighting is planned and under development. This page documents intended UX behavior so it can be implemented consistently across plot types and views.
At a glance#
Audience
Wet lab / beginner: understand what you will be able to do once the feature is enabled.
Computational users: understand how cross-highlighting interacts with filters, multi-view, and persistence.
Developers: use this as the UX contract for implementation.
Time
10–25 minutes
Prerequisites
Familiarity with:
Analysis (Modes, Outputs, Interpretation) (analysis plots)
Highlighting and Selection (Groups, Pages, Tools) (highlights/pages and preview highlight)
Filtering (Visibility, Outliers, and Filter Stacks) (visibility affects what you see)
What you’ll learn
Hover vs click behavior (preview vs selection)
Planned UI affordances (“Save as Page”, “Clear”, view targeting)
How cross-highlighting should avoid interfering with manual selection tools
Design goals (what “good” feels like)#
Cross-highlighting should:
make it effortless to answer “where are the cells behind this plot element?”
feel fast and reversible (no “I clicked something and broke my state”)
integrate with the existing highlight/page system (so users can persist the result)
behave predictably in multi-view layouts (highlights show up where users expect)
Primary interactions (planned)#
Hover → preview highlight (transient)#
Intended behavior:
Hovering a plot element previews the corresponding cells in the embedding.
Moving the mouse away clears the preview.
Constraints:
Preview should be transient and should not modify permanent highlight groups.
Preview should not be triggered for plot types where mapping is unsafe (e.g., sampled scatterplots).
Click → cross-highlight selection (still non-destructive)#
Intended behavior:
Clicking a plot element selects a cell set (cross-highlight selection).
The viewer highlights those cells (typically via the preview highlight path).
A toast/notification appears summarizing the selection.
The toast should include:
a readable message (e.g.,
12,345 cells in "Cluster A")Save as Page (persist into highlight system)
Clear (remove the cross-highlight highlight)
Planned UX flows (step-by-step)#
Flow A: “Find cells behind a bar, then save them”#
Run an analysis that produces a barplot (e.g., category counts).
Click the bar for
Cluster A.Viewer highlights those cells.
Toast appears:
N cells in "Cluster A".Click Save as Page.
A new highlight page/group appears in the Highlighting UI.
You can now:
switch fields, filters, and views, and
reuse that page/group for downstream analyses and sessions.
Flow B: “Use hover to explore, without committing”#
Hover different bins in a histogram.
Watch the highlighted region move in the embedding.
If you find something interesting, click to select and save.
Flow C: “Multi-view: highlight in the correct panel”#
Planned behavior:
By default, cross-highlighting targets the active view (the panel the analysis is associated with).
If you are in grid compare / snapshots, highlights should appear in the intended view, not “randomly everywhere”.
Developer note: this is why the plan introduces viewId propagation and per-view highlight buffers.
Interaction with manual selection tools (avoid conflicts)#
Manual selection tools (lasso/proximity/KNN/annotation) already use:
a selection candidate set, and
a preview highlight while selecting.
Cross-highlighting should not:
wipe out an in-progress manual selection,
“steal” the preview highlight channel in a way that confuses the user.
Planned approach (implementation-level intent):
cross-highlighting routes through the same highlight pipeline, but should be treated as a distinct “mode” or “source” so the UI can communicate what is happening.
User-facing guideline:
Tip
If you are mid-lasso and cross-highlighting appears, cancel/confirm the selection first. Cross-highlighting is meant to be used when you are not actively dragging a selection gesture.
Error/empty states (what users should see)#
When cross-highlighting cannot map safely, the UX should be explicit:
If a plot type is unsupported: show a small warning/toast like “Cross-highlighting unavailable for scatterplots (sampled)”.
If the plot has no cell mapping: “This plot has no per-cell mapping; cannot highlight cells”.
If filters hide all highlighted cells: toast still shows count, but optionally add “(0 visible in this view; check filters)”.
Screenshot placeholders (capture later)#
Cross-highlighting toast after clicking a plot element, showing the planned “Save as Page” action.#