Dashboard
A product analytics board with KPI cards, a trend chart, and a plugin table.
Usage
Tuff Pulse board
Range, dates, brushing, and the legend recompute the whole board. Sample data.
Loading demo...
Ops wall
A dark, real-time screen for watching rather than working: no filters or table, only the present, and no site theme.
Goes live in view, and cloud sync in Tokyo degrades and recovers; pause it at any time. Sample data.
Loading demo...
Overview
The analytics board a launcher team keeps open; every figure follows one time range, and changing the range, the dates, or the brushed span recomputes the page.
- Switch 7, 30, or 90 days or pick dates: KPI figures roll to new values, compared with the same-length period just before; up to seven days draws by the hour.
- Drag across the trend chart to zoom, and the whole page counts only that span; the Zoomed pill restores the full range.
- Click a legend item to hide or show a platform; sort the plugin table by installs or crash-free rate, and its trend column morphs when the range changes.
- Charts start drawing once in view, and nothing plays by itself; wide (≥ 960px) adds the crash-rate and insight cards, and narrow (< 640px) puts KPIs in two columns and trims the table to three.
- Ops wall: it goes live once in view, and cloud sync in Tokyo degrades at 18 seconds and recovers at 30; it stops updating when scrolled away or in a background tab.
- Ops wall: Live pauses every update, and the pointer on the focus card, sankey, or event list holds that part; reduced motion shows one still snapshot.
- Ops wall: always dark; in the docs column it fills the stage exactly, and narrow (< 640px) is one scrolling column.
Customization
- To swap the data source, replace
daily()with your API's per-day series;total(),average(), andpreviousWindow()already handle an unfinished today and the same-length comparison. - Keep rates out of TxTimeseriesChart, whose y axis always includes 0; chart the counts, or use TxSparkChart with a
domain. - Pixel props such as chart heights or a table's
maxHeightare out of reach of container queries; compute them from the stage size or your own ResizeObserver. - To drill into a row, add
@row-clickto TxDataTable and swap the trend data for that plugin's installs. - Ops wall: a local dark scope needs
data-theme="dark"andcolor-scheme: darkon the root plus the few tokens:rootderives; keep teleported overlays off the wall.
Related components
| Region | Components | Role |
|---|---|---|
| Top bar | TxFlatRadio, TxDatePicker, TxStatusBadge | Time range and degraded notice |
| KPI cards | TxStatCard, TxTextMorph | KPIs against the previous period |
| Trend | TxTimeseriesChart, TxChartLegendItem | Per-platform trend with brush zoom |
| Side rail | TxAllocationBar, TxDotIndicator, TxSignalMeter, TxProgressBar | Share, health, and AI usage |
| Insights (wide) | TxInsightCards, TxSparkChart / TxChartScrubber, TxToastPanel | Pageable, scrubbable insights |
| Top plugins | TxDataTable, TxSparkChart, TxSignalMeter, TxStatusBadge | Sortable plugin table |
| Top bar (Ops wall) | TxModeChip | Live mark and pause switch |
| Big KPIs (Ops wall) | TxTextMorph, TxSparkChart | Rolling figures and trend strips |
| City map (Ops wall) | TxBubbleMap, TxSkeleton | Online bubbles in 14 cities |
| Focus rotation (Ops wall) | TxInsightCards, TxAllocationBar | Focus cards turning every 8 seconds |
| Search flow (Ops wall) | TxSankeyChart | Input → plugin → action |
| Health and events (Ops wall) | TxDotIndicator, TxSignalMeter, TxTransition | Service health and event stream |