Interactivity
Make dashboards explorable with cross-filtering, dashboard filters and controls, and click-to-drill.
Flax dashboards are interactive: viewers filter the whole board, click a chart to narrow the rest, and drill into a mark to see the detail behind it. This page covers all three. Interactivity never widens access — governance and row-access rules are enforced independently in the warehouse, so a filter can only ever show you rows you were already allowed to see.
#Cross-filtering
Click a mark on any chart — a bar, a slice, a point — and the clicked value becomes
a filter applied to the other tiles, which re-run against it. This is
cross-filtering: one chart drives the rest of the board. A "Clear cross-filter"
control removes it. Under the hood, the clicked tile emits a {field, op, values}
selection that subscribing tiles add to their query; re-runs are coalesced so one
click can't storm the warehouse.
#Dashboard filters and controls
A dashboard exposes shared filters and controls that apply across its tiles:
| Control | Behavior |
|---|---|
| Defaults | Seed the viewer's filter bar; viewers can override them. |
| Locked | Always applied and not overridable — use for governance-style scoping. |
| Grain | Switch the time grain across time-based tiles. |
| Parameters | A value control, or a field-swap that changes which dimension a chart groups by, chosen from a defined set of options. |
Viewer filter state lives in the URL, so a filtered view is shareable as a link.
#Drill-down
Clicking a mark can also reveal what's behind an aggregate. Click, right-click and tap all open the same menu at your cursor, headed by the value you clicked — no gesture performs an action by itself. The menu offers what applies on that surface:
| Item | Where |
|---|---|
| Filter dashboard to this | Dashboards only. Becomes Remove this filter when that selection is already applied. |
| Drill to detail | Everywhere. |
| View in sheet | Everywhere — the chart's query narrowed to the clicked value. |
| Ask AI about this | Where the assistant is available; the question is grounded on the narrowed query. |
| Copy value | Everywhere. |
Filtering is the first item, so it takes focus as the menu opens: click then Enter applies it. If you cross-filter constantly, ⌘-click (Ctrl-click on Windows/Linux) applies the filter directly and skips the menu.
#Without a mouse
A chart is a focus stop, and its marks are traversable:
| Key | Does |
|---|---|
| Tab | Move focus to the chart. |
| ← → | Step between marks (↑ ↓ on a horizontal bar chart, where the categories run down the side). |
| ↑ ↓ | Switch series, when the chart has more than one (← → on a horizontal bar chart). |
| Home / End | Jump to the first or last mark. |
| Enter or Space | Open the menu for the focused mark. |
| Esc | Clear the focused mark — or close the menu, if one is open. |
The focused mark is highlighted and shows its tooltip, exactly as hovering does. Closing a mark's menu returns focus to the chart on the same mark, so you can act on several marks in a row without starting over.
Drill-down itself offers two behaviors:
- View detail rows — a modal shows the applied-filter chips and the underlying warehouse rows (capped, with CSV export).
- Drill into a child — when the clicked dimension declares a child (country → city, month → day), rewrite the query in place with a breadcrumb and a way back.
Each dashboard tile drills independently — drill state is tile-local and ephemeral, never saved to the chart. For the full model, see Drill-down.
#Related
- Drill-down — the complete interaction model.
- Dashboards — layout, tabs, and filters.
- Actions — turn a control change into an automation.