Skip to content

UX Catalogue

Every component below is rendered from real Dazzle DSL through the real render pipeline — the same code that produces a running app's HTML. Each card shows the live component and the DSL that produced it.

List

The workhorse table. Here it carries the outlier_on decorator — the latency_ms cell flags the statistical outlier (⚠ high) vs the displayed rows.

NameTeamStatusLatency MsError RateTarget Ms
alphaplatformhealthy420.150
bravoplatformhealthy380.250
charliepaymentsdegraded441.450
deltapaymentshealthy400.350
echogrowthhealthy460.250
foxtrotdatacritical
380⚠ high
7.250
cat_list:
  source: Box
  display: list
  sort: name asc
  outlier_on: latency_ms
  outlier_method: iqr
  empty: "No boxes"

Metrics

KPI tiles — scalar aggregates over the scoped set.

Total
42
Critical
7
Avg Latency
41
cat_metrics:
  source: Box
  display: metrics
  aggregate:
    total: count(Box)
    critical: count(Box where status = critical)
    avg_latency: avg(latency_ms)

Bar Chart

Distribution by a category — one bar per group. One scope-aware GROUP BY.

Platform
8
Payments
8
Growth
8
Data
8
cat_bar_chart:
  source: Box
  display: bar_chart
  group_by: team
  aggregate:
    count: count(Box)
  empty: "No boxes"

Comparison

Ranked league — rows ranked by a metric with inline bars + automatic outlier flag.

1. platform
12
2. payments
11
3. growth
10
4. data
9
5. infra
9
6. ml
1

6 rows0–12

cat_comparison:
  source: Box
  display: comparison
  group_by: team
  aggregate:
    total: count(Box)
  rank_by: total
  order: desc
  outlier_method: iqr
  empty: "No boxes"

Pivot Table

Cross-tab — counts across two dimensions (team × status).

TeamStatusCount
PlatformHealthy8
PlatformCritical1
PaymentsHealthy6
PaymentsDegraded2

4 rows

cat_pivot:
  source: Box
  display: pivot_table
  group_by: [team, status]
  aggregate:
    count: count(Box)
  empty: "No boxes"

Kanban

Board view — boxes grouped into status columns.

Healthy4

alpha

Team: platform

Latency Ms: 42

Error Rate: 0.1

Target Ms: 50

bravo

Team: platform

Latency Ms: 38

Error Rate: 0.2

Target Ms: 50

delta

Team: payments

Latency Ms: 40

Error Rate: 0.3

Target Ms: 50

echo

Team: growth

Latency Ms: 46

Error Rate: 0.2

Target Ms: 50

Degraded1

charlie

Team: payments

Latency Ms: 44

Error Rate: 1.4

Target Ms: 50

Critical1

foxtrot

Team: data

Latency Ms: 380

Error Rate: 7.2

Target Ms: 50

cat_kanban:
  source: Box
  display: kanban
  group_by: status
  empty: "No boxes"

Insight Summary

A grounded, deterministic narrative — scale + leader + outlier — over a grouped aggregate, with the underlying values cited so every claim is verifiable. No LLM (that's Slice 2).

Alert volume is concentrated in Platform, with ML unusually quiet — worth checking whether ML's pipeline is reporting.Based on: platform 20 · payments 19 · growth 18 · data 17 · infra 16 · ml 1confidence: mediumacross all teams · as of 2026-06-25 14:00 UTC
cat_insight:
  source: Box
  display: insight_summary
  group_by: team
  aggregate:
    count: count(Box)

List

Fixed-band RAG decorator — error_rate cells are coloured green/amber/red against author thresholds (WCAG-safe tone + icon + label). The deterministic sibling of the outlier decorator.

NameTeamStatusLatency MsError RateTarget Ms
alphaplatformhealthy42
0.1● good
50
bravoplatformhealthy38
0.2● good
50
charliepaymentsdegraded44
1.4● watch
50
deltapaymentshealthy40
0.3● good
50
echogrowthhealthy46
0.2● good
50
foxtrotdatacritical380
7.2● critical
50
cat_rag:
  source: Box
  display: list
  rag_on: error_rate
  tone_bands:
    - at: 5
      tone: destructive
    - at: 1
      tone: warning
    - at: 0
      tone: positive

Line Chart

Time series — daily box volume. One date_trunc('day') GROUP BY.

2026-06-21: 32026-06-22: 52026-06-23: 42026-06-24: 82026-06-25: 62026-06-212026-06-222026-06-232026-06-242026-06-25

5 buckets · peak 8

cat_line:
  source: Box
  display: line_chart
  group_by: bucket(opened_at, day)
  aggregate:
    count: count(Box)
  empty: "No boxes"

Radar

Polar profile — one spoke per team, value = box count for that team.

Platform value: 12Payments value: 7Growth value: 4Data value: 9PlatformPaymentsGrowthData

4 spokes · 1 series · peak 12

cat_radar:
  source: Box
  display: radar
  group_by: team
  aggregate:
    count: count(Box)
  empty: "No boxes"