Design system

Analysis Report UI

Neutral surfaces, grid page background, and an eight-color chart system. IBM Plex Mono for numbers, DM Sans for copy. Charts use Apache ECharts — click chart elements to open tooltips.

Foundations

Tokens in theme.css
--page-bg
--surface
--surface-subtle

Primary text, muted meta, and borders stay neutral so charts carry color.

Token Role Example
--chart-1Sky · coolestIndex 82
--chart-2Teal · links & focus use this slotΔ +4.1%
--chart-3VioletRisk tier
--chart-4PlumHighlight
--chart-5SageBin peak
--chart-6YellowStage C
--chart-7AmberOrganic mix
--chart-8Coral · warmestClosed-won

Soft fills use --chart-N-soft for tags and shaded regions. Multi-series charts cycle 1→8 in this cool-to-warm order.

DM Sans — headings, body, labels. Keep measure near 60 characters for dense paragraphs.

IBM Plex Mono · 0123456789 · 1,284,009 · +14.2%

The report column (.ds-page) is capped at --ds-content-max. Each .ds-showcase-section stacks children with a uniform vertical gap; section titles align to the same left edge as bordered surfaces. Single charts, tables, and tabs use width:100% so they fill that column.

Token Role
--ds-content-maxMax width of the main report column (matches .ds-page).
--ds-page-padding-x · --ds-page-padding-yHorizontal and vertical padding for .ds-page (narrow viewports use smaller vertical padding via media rules).
--ds-space-section-gapSpace between sections (.ds-showcase-section margin-bottom).
--ds-space-component-gapSpace between block-level items inside a section (flex gap on .ds-showcase-section).
--ds-inset-surface-x · --ds-inset-surface-y · --ds-inset-surface-y-tightPadding inside bordered surfaces (.ds-chart bottom uses the tight value).

Use .ds-section-lead for a short line under a section title; stack dense rows with .ds-stack--dense. Centered pies in a split layout: add .ds-echarts--pie-contained.

Report chrome

Quarterly snapshot

North America funnel

April 1 – April 28, 2026 · excludes internal test accounts

Generated for stakeholders · not for redistribution Ref · ANA-2026-04

01Text block

Use .ds-prose inside a bordered surface for methodology, caveats, or definitions. One idea per paragraph; lead with the implication, then the method.

This component uses the same border and radius as figures so the page rhythm stays even.

02Executive summary

Executive summary

Activation improved week-over-week

  1. North led volume (56K sessions) while West had the highest conversion (6.1%).
  2. Latency p95 dropped 18% after the cache rollout (see histogram).
  3. Risk: partner-led traffic is flat; Social needs creative refresh.

03Key insights

Same pattern as the paywall dashboard — label, headline, stats row, narrative body.

Top segment

Organic search

Acquisition · branded & non-brand

Users
52.4K
Conv.
5.02%
Δ WoW
+0.4pp

Branded queries recovered after the homepage experiment shipped; non-brand still trails plan by ~8%.

Biggest gap

Paid social

Remarketing · prospecting

Spend
$84K
CPA
$62
CTR
0.9%

CTR is down Creatives 2–4; test winner from week 3 has not been scaled to full budget yet.

Operational

API latency

Edge · origin

p50
118ms
p95
340ms
Errors
0.02%

p95 improved sharply after cache warming; monitor origin during peak EU hours.

04Metric tiles

Wide tiles with neutral chrome; pair metrics to chart series via tags or legends — not left stripes.

Sessions
128.4K
↑ 3.1% vs prior · peak Tue
Conversion
4.26%
Median time 2m 14s · NA 41%
CPA target
$54
Under plan $6 · Social +8% vs plan
Opportunity
+920
Users at target CR 5.5%
ARPU
$42
Blended · new $38 · expand $61
Churn
2.1%
Voluntary 62% · involuntary 38%
NPS
+34
Rolling 90d · 2.8K responses
Payback
11mo
Sensitivity band 9–14 mo

05Table

Region Channel tag Users Conv.
North AmericaSky52,3905.02%
EuropeTeal38,1204.41%
APACViolet29,0043.95%
LATAMPlum14,2203.12%
UKISage11,0904.88%
MEAYellow8,4402.67%
GCAmber6,1023.55%
OtherCoral3,8811.98%

Legend

Channel tagSemantic hues — quick scanning; Users/Conv. use tabular figures.

06Progress

Tracks map to chart colors 1–4; click underlined labels for targets.

· North72%
Rollout · EU58%
Quality score41%
Uptime88%

07Bar chart

Regional revenue index · click a bar for rank & value

Color legend

BarColorIndex
NA--chart-182
EU--chart-271
APAC--chart-391
LATAM--chart-456
Remaining regions cycle --chart-5…8 in order.

08Line chart

Weekly trend · four series · click a week

Series ↔ palette

North--chart-1
South--chart-2
East--chart-3
West--chart-4

09Pie chart

Eight-way mix · click a slice

Slices ↔ tokens

Segments α–θ map to --chart-1 through --chart-8 in series order.

10Histogram

Latency distribution (ms) · one color per bin

Bin colors

Bins cycle chart-1…8; height encodes count (click a bin).

11Stacked bar

Weekly composition · four stacks · click axis

Stack legend

New--chart-1Top segment
Returning--chart-2Core
Partner--chart-3Referral
Other--chart-4Long tail

12Stacked area

Cumulative layers · click week

Layers

A–D--chart-1 … --chart-4 · stacked contribution to total height.

13Venn (schematic)

Two-set overlap · click chart for counts

Graphic ellipses use --chart-1 / --chart-2 strokes and soft fills.

14Sankey

Acquisition funnel · click links or nodes

Flow legend

StageTokenFlow
Paid → Hubchart-136
Organic → Hubchart-232
Email → Hubchart-320
Social → Hubchart-512
Hub → Qualifiedchart-6100
Qualified → Opp.chart-744
Qualified → Closedchart-856

15Tags & tooltips

Semantic tags mirror chart hues. Click underlined terms (click-dismiss).

Sky Teal Violet Plum Sage Yellow Amber Coral Positive Risk Filter Optional

vs — click each term to toggle.

16Tabbed views

Same slice as a grid — swap markup only.

West · Users 41.2K · Conv. 6.1%

Use DsCharts.chartPalette() so series colors track tokens.

Assumptions and caveats belong here so the executive summary stays tight.

Example reports

Pages built with this design system